SDL  2.0
testrelative.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "SDL_test_common.h"
+ Include dependency graph for testrelative.c:

Go to the source code of this file.

Functions

static void DrawRects (SDL_Renderer *renderer, SDL_Rect *rect)
static void loop ()
int main (int argc, char *argv[])

Variables

static SDLTest_CommonStatestate
int i
int done
SDL_Rect rect
SDL_Event event

Function Documentation

static void DrawRects ( SDL_Renderer renderer,
SDL_Rect rect 
)
static

Definition at line 31 of file testrelative.c.

References SDL_RenderFillRect, and SDL_SetRenderDrawColor.

{
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderFillRect(renderer, rect);
}
static void loop ( )
static

Definition at line 38 of file testrelative.c.

References done, DrawRects(), SDL_Rect::h, i, NULL, SDLTest_CommonState::num_windows, renderer, SDLTest_CommonState::renderers, SDL_MOUSEMOTION, SDL_PollEvent, SDL_RenderClear, SDL_RenderGetViewport, SDL_RenderPresent, SDL_SetRenderDrawColor, SDLTest_CommonEvent(), SDL_Event::type, viewport, SDL_Rect::w, SDLTest_CommonState::windows, SDL_Rect::x, and SDL_Rect::y.

{
/* Check for events */
while (SDL_PollEvent(&event)) {
switch(event.type) {
{
rect.x += event.motion.xrel;
rect.y += event.motion.yrel;
}
break;
}
}
for (i = 0; i < state->num_windows; ++i) {
SDL_Renderer *renderer = state->renderers[i];
if (state->windows[i] == NULL)
continue;
SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0x00, 0xFF);
SDL_RenderClear(renderer);
/* Wrap the cursor rectangle at the screen edges to keep it visible */
SDL_RenderGetViewport(renderer, &viewport);
if (rect.x < viewport.x) rect.x += viewport.w;
if (rect.y < viewport.y) rect.y += viewport.h;
if (rect.x > viewport.x + viewport.w) rect.x -= viewport.w;
if (rect.y > viewport.y + viewport.h) rect.y -= viewport.h;
DrawRects(renderer, &rect);
SDL_RenderPresent(renderer);
}
#ifdef __EMSCRIPTEN__
if (done) {
emscripten_cancel_main_loop();
}
#endif
}
int main ( int  argc,
char *  argv[] 
)

Definition at line 78 of file testrelative.c.

References DEFAULT_WINDOW_HEIGHT, DEFAULT_WINDOW_WIDTH, done, SDL_Rect::h, i, loop(), NULL, SDLTest_CommonState::num_windows, renderer, SDLTest_CommonState::renderers, SDL_BLENDMODE_NONE, SDL_INIT_VIDEO, SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, SDL_LogSetPriority, SDL_RenderClear, SDL_SetRelativeMouseMode, SDL_SetRenderDrawBlendMode, SDL_SetRenderDrawColor, SDL_TRUE, SDLTest_CommonArg(), SDLTest_CommonCreateState(), SDLTest_CommonInit(), SDLTest_CommonQuit(), SDL_Rect::w, SDL_Rect::x, and SDL_Rect::y.

{
/* Enable standard application logging */
/* Initialize test framework */
if (!state) {
return 1;
}
for (i = 1; i < argc; ++i) {
}
return 2;
}
/* Create the windows and initialize the renderers */
for (i = 0; i < state->num_windows; ++i) {
SDL_Renderer *renderer = state->renderers[i];
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
SDL_RenderClear(renderer);
}
srand((unsigned int)time(NULL));
return 3;
};
rect.w = 10;
rect.h = 10;
/* Main render loop */
done = 0;
#ifdef __EMSCRIPTEN__
emscripten_set_main_loop(loop, 0, 1);
#else
while (!done) {
loop();
}
#endif
return 0;
}

Variable Documentation

int done

Definition at line 26 of file testrelative.c.

Definition at line 28 of file testrelative.c.

int i

Definition at line 26 of file testrelative.c.

SDLTest_CommonState* state
static

Definition at line 25 of file testrelative.c.