aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--effect-pad.c13
2 files changed, 15 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index a639132..2e336a7 100644
--- a/Makefile
+++ b/Makefile
@@ -6,9 +6,12 @@ SDL_LDFLAGS := $(shell sdl-config --libs)
SDL_IMAGE_CFLAGS := $(shell pkg-config SDL_image --cflags)
SDL_IMAGE_LDFLAGS := $(shell pkg-config SDL_image --libs)
+SDL_GFX_CFLAGS := $(shell pkg-config SDL_gfx --cflags)
+SDL_GFX_LDFLAGS := $(shell pkg-config SDL_gfx --libs)
+
CFLAGS := -std=c99 -Wall -g -O0 \
- $(SDL_CFLAGS) $(SDL_IMAGE_CFLAGS)
-LDFLAGS := $(SDL_LDFLAGS) $(SDL_IMAGE_LDFLAGS)
+ $(SDL_CFLAGS) $(SDL_IMAGE_CFLAGS) $(SDL_GFX_CFLAGS)
+LDFLAGS := $(SDL_LDFLAGS) $(SDL_IMAGE_LDFLAGS) $(SDL_GFX_LDFLAGS)
all : effect-pad
diff --git a/effect-pad.c b/effect-pad.c
index 0911701..b942bdc 100644
--- a/effect-pad.c
+++ b/effect-pad.c
@@ -5,6 +5,7 @@
#include <SDL.h>
#include <SDL_image.h>
+#include <SDL_framerate.h>
//#define EFFECT_FIRE_COLORKEYED
@@ -33,6 +34,7 @@
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
+#define FRAMERATE 20 /* Hz */
static SDL_Surface *screen;
@@ -257,8 +259,10 @@ process_events(void)
int
main(int argc, char **argv)
{
- SDL_Surface *fire_surface;
- SDL_Surface *image_surface;
+ FPSmanager fpsm;
+
+ SDL_Surface *fire_surface;
+ SDL_Surface *image_surface;
if (SDL_Init(SDL_INIT_VIDEO)) {
SDL_ERROR("SDL_Init");
@@ -275,6 +279,9 @@ main(int argc, char **argv)
return EXIT_FAILURE;
}
+ SDL_initFramerate(&fpsm);
+ SDL_setFramerate(&fpsm, FRAMERATE);
+
image_surface = IMG_Load("image_1.jpg");
if (image_surface == NULL) {
SDL_IMAGE_ERROR("IMG_Load");
@@ -296,7 +303,7 @@ main(int argc, char **argv)
SDL_BlitSurface(fire_surface, NULL, screen, NULL);
SDL_Flip(screen);
- SDL_Delay(1000/20);
+ SDL_framerateDelay(&fpsm);
}
/* never reached */