| 199 | } |
| 200 | |
| 201 | void |
| 202 | loop() |
| 203 | { |
| 204 | int i; |
| 205 | SDL_Event event; |
| 206 | |
| 207 | /* Check for events */ |
| 208 | while (SDL_PollEvent(&event)) { |
| 209 | SDLTest_CommonEvent(state, &event, &done); |
| 210 | switch (event.type) { |
| 211 | case SDL_MOUSEBUTTONDOWN: |
| 212 | mouse_begin_x = event.button.x; |
| 213 | mouse_begin_y = event.button.y; |
| 214 | break; |
| 215 | case SDL_MOUSEBUTTONUP: |
| 216 | if (event.button.button == 3) |
| 217 | add_line(mouse_begin_x, mouse_begin_y, event.button.x, |
| 218 | event.button.y); |
| 219 | if (event.button.button == 1) |
| 220 | add_rect(mouse_begin_x, mouse_begin_y, event.button.x, |
| 221 | event.button.y); |
| 222 | break; |
| 223 | case SDL_KEYDOWN: |
| 224 | switch (event.key.keysym.sym) { |
| 225 | case 'l': |
| 226 | if (event.key.keysym.mod & KMOD_SHIFT) |
| 227 | num_lines = 0; |
| 228 | else |
| 229 | add_line(rand() % 640, rand() % 480, rand() % 640, |
| 230 | rand() % 480); |
| 231 | break; |
| 232 | case 'r': |
| 233 | if (event.key.keysym.mod & KMOD_SHIFT) |
| 234 | num_rects = 0; |
| 235 | else |
| 236 | add_rect(rand() % 640, rand() % 480, rand() % 640, |
| 237 | rand() % 480); |
| 238 | break; |
| 239 | } |
| 240 | break; |
| 241 | default: |
| 242 | break; |
| 243 | } |
| 244 | } |
| 245 | for (i = 0; i < state->num_windows; ++i) { |
| 246 | SDL_Renderer *renderer = state->renderers[i]; |
| 247 | if (state->windows[i] == NULL) |
| 248 | continue; |
| 249 | SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); |
| 250 | SDL_RenderClear(renderer); |
| 251 | |
| 252 | DrawRects(renderer); |
| 253 | DrawPoints(renderer); |
| 254 | DrawRectRectIntersections(renderer); |
| 255 | DrawLines(renderer); |
| 256 | DrawRectLineIntersections(renderer); |
| 257 | |
| 258 | SDL_RenderPresent(renderer); |
no test coverage detected