| 35 | } |
| 36 | |
| 37 | static void |
| 38 | loop(){ |
| 39 | /* Check for events */ |
| 40 | while (SDL_PollEvent(&event)) { |
| 41 | SDLTest_CommonEvent(state, &event, &done); |
| 42 | switch(event.type) { |
| 43 | case SDL_MOUSEMOTION: |
| 44 | { |
| 45 | rect.x += event.motion.xrel; |
| 46 | rect.y += event.motion.yrel; |
| 47 | } |
| 48 | break; |
| 49 | } |
| 50 | } |
| 51 | for (i = 0; i < state->num_windows; ++i) { |
| 52 | SDL_Rect viewport; |
| 53 | SDL_Renderer *renderer = state->renderers[i]; |
| 54 | if (state->windows[i] == NULL) |
| 55 | continue; |
| 56 | SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0x00, 0xFF); |
| 57 | SDL_RenderClear(renderer); |
| 58 | |
| 59 | /* Wrap the cursor rectangle at the screen edges to keep it visible */ |
| 60 | SDL_RenderGetViewport(renderer, &viewport); |
| 61 | if (rect.x < viewport.x) rect.x += viewport.w; |
| 62 | if (rect.y < viewport.y) rect.y += viewport.h; |
| 63 | if (rect.x > viewport.x + viewport.w) rect.x -= viewport.w; |
| 64 | if (rect.y > viewport.y + viewport.h) rect.y -= viewport.h; |
| 65 | |
| 66 | DrawRects(renderer, &rect); |
| 67 | |
| 68 | SDL_RenderPresent(renderer); |
| 69 | } |
| 70 | #ifdef __EMSCRIPTEN__ |
| 71 | if (done) { |
| 72 | emscripten_cancel_main_loop(); |
| 73 | } |
| 74 | #endif |
| 75 | } |
| 76 | |
| 77 | int |
| 78 | main(int argc, char *argv[]) |
no test coverage detected