#pragma section-numbers off #pragma camelcase off = SDL_GetWindowSurface = Use this function to get the SDL surface associated with the window. <> == Syntax == {{{#!highlight cpp SDL_Surface* SDL_GetWindowSurface(SDL_Window* window) }}} == Function Parameters == ||'''window'''||the window to query|| == Return Value == Returns the surface associated with the window, or NULL on failure; call [[SDL_GetError]]() for more information. == Code Examples == {{{#!highlight cpp #include "SDL.h" // include SDL header int main(int argc, char* argv[]) { SDL_Surface *screen; // even with SDL2, we can still bring ancient code back SDL_Window *window; SDL_Surface *image; SDL_Init(SDL_INIT_VIDEO); // init video // create the window like normal window = SDL_CreateWindow("SDL2 Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0); // but instead of creating a renderer, we can draw directly to the screen screen = SDL_GetWindowSurface(window); // let's just show some classic code for reference image = SDL_LoadBMP("box.bmp"); // loads image SDL_BlitSurface(image, NULL, screen, NULL); // blit it to the screen SDL_FreeSurface(image); // this works just like SDL_Flip() in SDL 1.2 SDL_UpdateWindowSurface(window); // show image for 2 seconds SDL_Delay(2000); SDL_DestroyWindow(window); SDL_Quit(); return 0; } }}} == Remarks == A new surface will be created with the optimal format for the window, if necessary. This surface will be freed when the window is destroyed. Do not free this surface. This surface will be invalidated if the window is resized. After resizing a window this function must be called again to return a valid surface. You may not combine this with 3D or the rendering API on this window. This function is affected by [[SDL_HINT_FRAMEBUFFER_ACCELERATION]]. == Related Functions == .[[SDL_UpdateWindowSurface]] .[[SDL_UpdateWindowSurfaceRects]] ---- [[CategoryAPI]], [[CategoryVideo]]