Wiki Page Content

Differences between revisions 11 and 12
Revision 11 as of 2014-11-28 18:41:21
Size: 1659
Editor: RyanGordon
Comment: Moved some text to the Remarks section.
Revision 12 as of 2015-02-19 20:26:23
Size: 1658
Comment: Moved text into Remarks section.
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:

SDL's rendering functions operate on a backbuffer; that is, calling a rendering function such as [[SDL_RenderDrawLine]]() does not directly put a line on the screen, but rather updates the backbuffer. As such, you compose your entire scene and ''present'' the composed backbuffer to the screen as a complete picture.

Therefore, when using SDL's rendering API, one does all drawing intended for the frame, and then calls this function once per frame to present the final drawing to the user.
Line 25: Line 21:
SDL's rendering functions operate on a backbuffer; that is, calling a rendering function such as [[SDL_RenderDrawLine]]() does not directly put a line on the screen, but rather updates the backbuffer. As such, you compose your entire scene and ''present'' the composed backbuffer to the screen as a complete picture.

Therefore, when using SDL's rendering API, one does all drawing intended for the frame, and then calls this function once per frame to present the final drawing to the user.
Line 28: Line 28:
 .[[SDL_RenderClear]]   .[[SDL_RenderClear]]

SDL_RenderPresent

Use this function to update the screen with any rendering performed since the previous call.

Syntax

void SDL_RenderPresent(SDL_Renderer* renderer)

Function Parameters

renderer

the rendering context

Code Examples

#include "SDL.h"

int main(int argc, char* argv[])
{
        SDL_Window* window;
        SDL_Renderer* renderer;

        // Initialize SDL.
        if (SDL_Init(SDL_INIT_VIDEO) < 0)
                return 1;

        // Create the window where we will draw.
        window = SDL_CreateWindow("SDL_RenderClear",
                        SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
                        512, 512,
                        0);

        // We must call SDL_CreateRenderer in order for draw calls to affect this window.
        renderer = SDL_CreateRenderer(window, -1, 0);

        // Select the color for drawing. It is set to red here.
        SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);

        // Clear the entire screen to our selected color.
        SDL_RenderClear(renderer);

        // Up until now everything was drawn behind the scenes.
        // This will show the new, red contents of the window.
        SDL_RenderPresent(renderer);

        // Give us time to see the window.
        SDL_Delay(5000);

        // Always be sure to clean up
        SDL_Quit();
        return 0;
}

Remarks

SDL's rendering functions operate on a backbuffer; that is, calling a rendering function such as SDL_RenderDrawLine() does not directly put a line on the screen, but rather updates the backbuffer. As such, you compose your entire scene and present the composed backbuffer to the screen as a complete picture.

Therefore, when using SDL's rendering API, one does all drawing intended for the frame, and then calls this function once per frame to present the final drawing to the user.

The backbuffer should be considered invalidated after each present; do not assume that previous contents will exist between frames. You are strongly encouraged to call SDL_RenderClear() to initialize the backbuffer before starting each new frame's drawing, even if you plan to overwrite every pixel.


CategoryAPI, CategoryRender

None: SDL_RenderPresent (last edited 2015-02-19 20:26:23 by PhilippWiesemann)

Feedback
Please include your contact information if you'd like to receive a reply.
Submit