comparison test/testintersections.c @ 3536:0267b8b1595c

Added interfaces for batch drawing of points, lines and rects: SDL_DrawPoints() SDL_BlendPoints() SDL_BlendLines() SDL_DrawLines() SDL_FillRects() SDL_BlendRects() SDL_RenderPoints() SDL_RenderLines() SDL_RenderRects() Renamed SDL_RenderFill() to SDL_RenderRect()
author Sam Lantinga <slouken@libsdl.org>
date Wed, 09 Dec 2009 15:56:56 +0000
parents 438ba87e9578
children f638ded38b8a
comparison
equal deleted inserted replaced
3535:b403f790df65 3536:0267b8b1595c
148 SDL_GetWindowSize(window, &window_w, &window_h); 148 SDL_GetWindowSize(window, &window_w, &window_h);
149 149
150 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE); 150 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
151 for (i = 0; i < num_rects; ++i) { 151 for (i = 0; i < num_rects; ++i) {
152 SDL_SetRenderDrawColor(255, 127, 0, 255); 152 SDL_SetRenderDrawColor(255, 127, 0, 255);
153 SDL_RenderFill(&rects[i]); 153 SDL_RenderRect(&rects[i]);
154 } 154 }
155 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE); 155 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
156 } 156 }
157 157
158 static void 158 static void
195 for (i = 0; i < num_rects; i++) 195 for (i = 0; i < num_rects; i++)
196 for (j = i + 1; j < num_rects; j++) { 196 for (j = i + 1; j < num_rects; j++) {
197 SDL_Rect r; 197 SDL_Rect r;
198 if (SDL_IntersectRect(&rects[i], &rects[j], &r)) { 198 if (SDL_IntersectRect(&rects[i], &rects[j], &r)) {
199 SDL_SetRenderDrawColor(255, 200, 0, 255); 199 SDL_SetRenderDrawColor(255, 200, 0, 255);
200 SDL_RenderFill(&r); 200 SDL_RenderRect(&r);
201 } 201 }
202 } 202 }
203 203
204 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE); 204 SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
205 } 205 }
270 270
271 /* Create the windows and initialize the renderers */ 271 /* Create the windows and initialize the renderers */
272 for (i = 0; i < state->num_windows; ++i) { 272 for (i = 0; i < state->num_windows; ++i) {
273 SDL_SelectRenderer(state->windows[i]); 273 SDL_SelectRenderer(state->windows[i]);
274 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); 274 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
275 SDL_RenderFill(NULL); 275 SDL_RenderRect(NULL);
276 } 276 }
277 277
278 srand(time(NULL)); 278 srand(time(NULL));
279 279
280 /* Main render loop */ 280 /* Main render loop */
324 case SDL_WINDOWEVENT: 324 case SDL_WINDOWEVENT:
325 switch (event.window.event) { 325 switch (event.window.event) {
326 case SDL_WINDOWEVENT_EXPOSED: 326 case SDL_WINDOWEVENT_EXPOSED:
327 SDL_SelectRenderer(event.window.windowID); 327 SDL_SelectRenderer(event.window.windowID);
328 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); 328 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
329 SDL_RenderFill(NULL); 329 SDL_RenderRect(NULL);
330 break; 330 break;
331 } 331 }
332 break; 332 break;
333 default: 333 default:
334 break; 334 break;
335 } 335 }
336 } 336 }
337 for (i = 0; i < state->num_windows; ++i) { 337 for (i = 0; i < state->num_windows; ++i) {
338 SDL_SelectRenderer(state->windows[i]); 338 SDL_SelectRenderer(state->windows[i]);
339 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); 339 SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
340 SDL_RenderFill(NULL); 340 SDL_RenderRect(NULL);
341 341
342 DrawRects(state->windows[i]); 342 DrawRects(state->windows[i]);
343 DrawPoints(state->windows[i]); 343 DrawPoints(state->windows[i]);
344 DrawRectRectIntersections(state->windows[i]); 344 DrawRectRectIntersections(state->windows[i]);
345 DrawLines(state->windows[i]); 345 DrawLines(state->windows[i]);