Added testnative to the Makefile and fixed building on Mac OS X
This commit is contained in:
parent
d0375e624c
commit
e9cad496a6
3 changed files with 35 additions and 26 deletions
|
@ -39,6 +39,7 @@ TARGETS = \
|
||||||
testloadso$(EXE) \
|
testloadso$(EXE) \
|
||||||
testlock$(EXE) \
|
testlock$(EXE) \
|
||||||
testmultiaudio$(EXE) \
|
testmultiaudio$(EXE) \
|
||||||
|
testnative$(EXE) \
|
||||||
testoverlay$(EXE) \
|
testoverlay$(EXE) \
|
||||||
testoverlay2$(EXE) \
|
testoverlay2$(EXE) \
|
||||||
testplatform$(EXE) \
|
testplatform$(EXE) \
|
||||||
|
@ -162,6 +163,12 @@ testloadso$(EXE): $(srcdir)/testloadso.c
|
||||||
testlock$(EXE): $(srcdir)/testlock.c
|
testlock$(EXE): $(srcdir)/testlock.c
|
||||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||||
|
|
||||||
|
testnative$(EXE): $(srcdir)/testnative.c \
|
||||||
|
$(srcdir)/testnativecocoa.m \
|
||||||
|
$(srcdir)/testnativew32.c \
|
||||||
|
$(srcdir)/testnativex11.c
|
||||||
|
$(CC) -o $@ $? $(CFLAGS) $(LIBS) -L/usr/X11/lib -lX11 -framework Cocoa
|
||||||
|
|
||||||
testoverlay2$(EXE): $(srcdir)/testoverlay2.c
|
testoverlay2$(EXE): $(srcdir)/testoverlay2.c
|
||||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||||
|
|
||||||
|
|
|
@ -359,6 +359,10 @@ CommonArg(CommonState * state, int index)
|
||||||
/* Print the usage message */
|
/* Print the usage message */
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (SDL_strcmp(argv[index], "-NSDocumentRevisionsDebugMode") == 0) {
|
||||||
|
/* Debug flag sent by Xcode */
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ quit(int rc)
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_Texture *
|
SDL_Texture *
|
||||||
LoadSprite(SDL_Window * window, char *file)
|
LoadSprite(SDL_Renderer *renderer, char *file)
|
||||||
{
|
{
|
||||||
SDL_Surface *temp;
|
SDL_Surface *temp;
|
||||||
SDL_Texture *sprite;
|
SDL_Texture *sprite;
|
||||||
|
@ -66,8 +66,7 @@ LoadSprite(SDL_Window * window, char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create textures from the image */
|
/* Create textures from the image */
|
||||||
SDL_SelectRenderer(window);
|
sprite = SDL_CreateTextureFromSurface(renderer, temp);
|
||||||
sprite = SDL_CreateTextureFromSurface(0, temp);
|
|
||||||
if (!sprite) {
|
if (!sprite) {
|
||||||
fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError());
|
fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError());
|
||||||
SDL_FreeSurface(temp);
|
SDL_FreeSurface(temp);
|
||||||
|
@ -80,43 +79,42 @@ LoadSprite(SDL_Window * window, char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MoveSprites(SDL_Window * window, SDL_Texture * sprite)
|
MoveSprites(SDL_Renderer * renderer, SDL_Texture * sprite)
|
||||||
{
|
{
|
||||||
int i, n;
|
|
||||||
int window_w, window_h;
|
|
||||||
int sprite_w, sprite_h;
|
int sprite_w, sprite_h;
|
||||||
|
int i;
|
||||||
|
SDL_Rect viewport;
|
||||||
SDL_Rect *position, *velocity;
|
SDL_Rect *position, *velocity;
|
||||||
|
|
||||||
SDL_SelectRenderer(window);
|
|
||||||
|
|
||||||
/* Query the sizes */
|
/* Query the sizes */
|
||||||
SDL_GetWindowSize(window, &window_w, &window_h);
|
SDL_RenderGetViewport(renderer, &viewport);
|
||||||
SDL_QueryTexture(sprite, NULL, NULL, &sprite_w, &sprite_h);
|
SDL_QueryTexture(sprite, NULL, NULL, &sprite_w, &sprite_h);
|
||||||
|
|
||||||
|
/* Draw a gray background */
|
||||||
|
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
/* Move the sprite, bounce at the wall, and draw */
|
/* Move the sprite, bounce at the wall, and draw */
|
||||||
n = 0;
|
|
||||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
|
||||||
SDL_RenderClear();
|
|
||||||
for (i = 0; i < NUM_SPRITES; ++i) {
|
for (i = 0; i < NUM_SPRITES; ++i) {
|
||||||
position = &positions[i];
|
position = &positions[i];
|
||||||
velocity = &velocities[i];
|
velocity = &velocities[i];
|
||||||
position->x += velocity->x;
|
position->x += velocity->x;
|
||||||
if ((position->x < 0) || (position->x >= (window_w - sprite_w))) {
|
if ((position->x < 0) || (position->x >= (viewport.w - sprite_w))) {
|
||||||
velocity->x = -velocity->x;
|
velocity->x = -velocity->x;
|
||||||
position->x += velocity->x;
|
position->x += velocity->x;
|
||||||
}
|
}
|
||||||
position->y += velocity->y;
|
position->y += velocity->y;
|
||||||
if ((position->y < 0) || (position->y >= (window_h - sprite_h))) {
|
if ((position->y < 0) || (position->y >= (viewport.h - sprite_h))) {
|
||||||
velocity->y = -velocity->y;
|
velocity->y = -velocity->y;
|
||||||
position->y += velocity->y;
|
position->y += velocity->y;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Blit the sprite onto the screen */
|
/* Blit the sprite onto the screen */
|
||||||
SDL_RenderCopy(sprite, NULL, position);
|
SDL_RenderCopy(renderer, sprite, NULL, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the screen! */
|
/* Update the screen! */
|
||||||
SDL_RenderPresent();
|
SDL_RenderPresent(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -125,12 +123,13 @@ main(int argc, char *argv[])
|
||||||
int i, done;
|
int i, done;
|
||||||
const char *driver;
|
const char *driver;
|
||||||
SDL_Window *window;
|
SDL_Window *window;
|
||||||
|
SDL_Renderer *renderer;
|
||||||
SDL_Texture *sprite;
|
SDL_Texture *sprite;
|
||||||
int window_w, window_h;
|
int window_w, window_h;
|
||||||
int sprite_w, sprite_h;
|
int sprite_w, sprite_h;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
|
|
||||||
if (SDL_VideoInit(NULL, 0) < 0) {
|
if (SDL_VideoInit(NULL) < 0) {
|
||||||
fprintf(stderr, "Couldn't initialize SDL video: %s\n",
|
fprintf(stderr, "Couldn't initialize SDL video: %s\n",
|
||||||
SDL_GetError());
|
SDL_GetError());
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -163,17 +162,17 @@ main(int argc, char *argv[])
|
||||||
SDL_SetWindowTitle(window, "SDL Native Window Test");
|
SDL_SetWindowTitle(window, "SDL Native Window Test");
|
||||||
|
|
||||||
/* Create the renderer */
|
/* Create the renderer */
|
||||||
if (SDL_CreateRenderer(window, -1, 0) < 0) {
|
renderer = SDL_CreateRenderer(window, -1, 0);
|
||||||
|
if (!renderer) {
|
||||||
fprintf(stderr, "Couldn't create renderer: %s\n", SDL_GetError());
|
fprintf(stderr, "Couldn't create renderer: %s\n", SDL_GetError());
|
||||||
quit(5);
|
quit(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear the window, load the sprite and go! */
|
/* Clear the window, load the sprite and go! */
|
||||||
SDL_SelectRenderer(window);
|
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
||||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
SDL_RenderClear(renderer);
|
||||||
SDL_RenderClear();
|
|
||||||
|
|
||||||
sprite = LoadSprite(window, "icon.bmp");
|
sprite = LoadSprite(renderer, "icon.bmp");
|
||||||
if (!sprite) {
|
if (!sprite) {
|
||||||
quit(6);
|
quit(6);
|
||||||
}
|
}
|
||||||
|
@ -210,9 +209,8 @@ main(int argc, char *argv[])
|
||||||
case SDL_WINDOWEVENT:
|
case SDL_WINDOWEVENT:
|
||||||
switch (event.window.event) {
|
switch (event.window.event) {
|
||||||
case SDL_WINDOWEVENT_EXPOSED:
|
case SDL_WINDOWEVENT_EXPOSED:
|
||||||
SDL_SelectRenderer(event.window.windowID);
|
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
||||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
SDL_RenderClear(renderer);
|
||||||
SDL_RenderClear();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -223,7 +221,7 @@ main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MoveSprites(window, sprite);
|
MoveSprites(renderer, sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
quit(0);
|
quit(0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue