Mercurial > sdl-ios-xcode
comparison src/video/dummy/SDL_nullrender.c @ 3685:64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 21 Jan 2010 06:21:52 +0000 |
parents | f638ded38b8a |
children | f7b03b6838cb |
comparison
equal
deleted
inserted
replaced
3684:cc564f08884f | 3685:64ce267332c6 |
---|---|
72 } SDL_DUMMY_RenderData; | 72 } SDL_DUMMY_RenderData; |
73 | 73 |
74 SDL_Renderer * | 74 SDL_Renderer * |
75 SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags) | 75 SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags) |
76 { | 76 { |
77 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); | 77 SDL_VideoDisplay *display = window->display; |
78 SDL_DisplayMode *displayMode = &display->current_mode; | 78 SDL_DisplayMode *displayMode = &display->current_mode; |
79 SDL_Renderer *renderer; | 79 SDL_Renderer *renderer; |
80 SDL_DUMMY_RenderData *data; | 80 SDL_DUMMY_RenderData *data; |
81 int i, n; | 81 int i, n; |
82 int bpp; | 82 int bpp; |
111 renderer->RenderWritePixels = SDL_DUMMY_RenderWritePixels; | 111 renderer->RenderWritePixels = SDL_DUMMY_RenderWritePixels; |
112 renderer->RenderPresent = SDL_DUMMY_RenderPresent; | 112 renderer->RenderPresent = SDL_DUMMY_RenderPresent; |
113 renderer->DestroyRenderer = SDL_DUMMY_DestroyRenderer; | 113 renderer->DestroyRenderer = SDL_DUMMY_DestroyRenderer; |
114 renderer->info.name = SDL_DUMMY_RenderDriver.info.name; | 114 renderer->info.name = SDL_DUMMY_RenderDriver.info.name; |
115 renderer->info.flags = 0; | 115 renderer->info.flags = 0; |
116 renderer->window = window->id; | 116 renderer->window = window; |
117 renderer->driverdata = data; | 117 renderer->driverdata = data; |
118 Setup_SoftwareRenderer(renderer); | 118 Setup_SoftwareRenderer(renderer); |
119 | 119 |
120 if (flags & SDL_RENDERER_PRESENTFLIP2) { | 120 if (flags & SDL_RENDERER_PRESENTFLIP2) { |
121 renderer->info.flags |= SDL_RENDERER_PRESENTFLIP2; | 121 renderer->info.flags |= SDL_RENDERER_PRESENTFLIP2; |
236 SDL_DUMMY_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, | 236 SDL_DUMMY_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, |
237 const SDL_Rect * srcrect, const SDL_Rect * dstrect) | 237 const SDL_Rect * srcrect, const SDL_Rect * dstrect) |
238 { | 238 { |
239 SDL_DUMMY_RenderData *data = | 239 SDL_DUMMY_RenderData *data = |
240 (SDL_DUMMY_RenderData *) renderer->driverdata; | 240 (SDL_DUMMY_RenderData *) renderer->driverdata; |
241 SDL_Window *window = SDL_GetWindowFromID(renderer->window); | 241 SDL_Window *window = renderer->window; |
242 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); | 242 SDL_VideoDisplay *display = window->display; |
243 | 243 |
244 if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) { | 244 if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) { |
245 SDL_Surface *target = data->screens[data->current_screen]; | 245 SDL_Surface *target = data->screens[data->current_screen]; |
246 void *pixels = | 246 void *pixels = |
247 (Uint8 *) target->pixels + dstrect->y * target->pitch + | 247 (Uint8 *) target->pixels + dstrect->y * target->pitch + |
264 SDL_DUMMY_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect, | 264 SDL_DUMMY_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect, |
265 Uint32 format, void * pixels, int pitch) | 265 Uint32 format, void * pixels, int pitch) |
266 { | 266 { |
267 SDL_DUMMY_RenderData *data = | 267 SDL_DUMMY_RenderData *data = |
268 (SDL_DUMMY_RenderData *) renderer->driverdata; | 268 (SDL_DUMMY_RenderData *) renderer->driverdata; |
269 SDL_Window *window = SDL_GetWindowFromID(renderer->window); | 269 SDL_Window *window = renderer->window; |
270 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); | 270 SDL_VideoDisplay *display = window->display; |
271 SDL_Surface *screen = data->screens[data->current_screen]; | 271 SDL_Surface *screen = data->screens[data->current_screen]; |
272 Uint32 screen_format = display->current_mode.format; | 272 Uint32 screen_format = display->current_mode.format; |
273 Uint8 *screen_pixels = (Uint8 *) screen->pixels + | 273 Uint8 *screen_pixels = (Uint8 *) screen->pixels + |
274 rect->y * screen->pitch + | 274 rect->y * screen->pitch + |
275 rect->x * screen->format->BytesPerPixel; | 275 rect->x * screen->format->BytesPerPixel; |
284 SDL_DUMMY_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect, | 284 SDL_DUMMY_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect, |
285 Uint32 format, const void * pixels, int pitch) | 285 Uint32 format, const void * pixels, int pitch) |
286 { | 286 { |
287 SDL_DUMMY_RenderData *data = | 287 SDL_DUMMY_RenderData *data = |
288 (SDL_DUMMY_RenderData *) renderer->driverdata; | 288 (SDL_DUMMY_RenderData *) renderer->driverdata; |
289 SDL_Window *window = SDL_GetWindowFromID(renderer->window); | 289 SDL_Window *window = renderer->window; |
290 SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); | 290 SDL_VideoDisplay *display = window->display; |
291 SDL_Surface *screen = data->screens[data->current_screen]; | 291 SDL_Surface *screen = data->screens[data->current_screen]; |
292 Uint32 screen_format = display->current_mode.format; | 292 Uint32 screen_format = display->current_mode.format; |
293 Uint8 *screen_pixels = (Uint8 *) screen->pixels + | 293 Uint8 *screen_pixels = (Uint8 *) screen->pixels + |
294 rect->y * screen->pitch + | 294 rect->y * screen->pitch + |
295 rect->x * screen->format->BytesPerPixel; | 295 rect->x * screen->format->BytesPerPixel; |
309 | 309 |
310 /* Send the data to the display */ | 310 /* Send the data to the display */ |
311 if (SDL_getenv("SDL_VIDEO_DUMMY_SAVE_FRAMES")) { | 311 if (SDL_getenv("SDL_VIDEO_DUMMY_SAVE_FRAMES")) { |
312 char file[128]; | 312 char file[128]; |
313 SDL_snprintf(file, sizeof(file), "SDL_window%d-%8.8d.bmp", | 313 SDL_snprintf(file, sizeof(file), "SDL_window%d-%8.8d.bmp", |
314 renderer->window, ++frame_number); | 314 renderer->window->id, ++frame_number); |
315 SDL_SaveBMP(data->screens[data->current_screen], file); | 315 SDL_SaveBMP(data->screens[data->current_screen], file); |
316 } | 316 } |
317 | 317 |
318 /* Update the flipping chain, if any */ | 318 /* Update the flipping chain, if any */ |
319 if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP2) { | 319 if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP2) { |