Wiki Page Content

Differences between revisions 12 and 33 (spanning 21 versions)
Revision 12 as of 2009-11-24 22:04:59
Size: 1154
Editor: SheenaSmith
Comment: content changed
Revision 33 as of 2014-11-11 02:06:24
Size: 2297
Editor: RyanGordon
Comment: Added SDL_Init()/SDL_Quit() per feedback form request.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Use this function to create and make active a 2D rendering context for a window. Use this function to create a 2D rendering context for a window.
Line 11: Line 11:
int SDL_CreateRenderer(SDL_WindowID windowID,
                       int   index,
                       Uint32   flags)
SDL_Renderer* SDL_CreateRenderer(SDL_Window* window,
           int     index,
                                 Uint32 flags)
Line 17: Line 17:
||'''windowID'''||the type of the window|| ||'''window'''||the window where rendering is displayed||
Line 19: Line 19:
||'''flags'''||0, or one or more [[SDL_RendererFlags]] OR'd together; see [[#Remarks|Remarks]] for details|| ||'''flags'''||0, or one or more [[SDL_RendererFlags]] OR'd together; see [[#flags|Remarks]] for details||
Line 22: Line 22:
0 on success, -1 if there was an error creating the renderer Returns a valid rendering context or NULL if there was an error; call [[SDL_GetError]]() for more information.
Line 26: Line 26:
You can add your code example here #include "SDL.h"

int main(int argc, char *argv[]) {
    SDL_Window *win = NULL;
    SDL_Renderer *renderer = NULL;
    SDL_Texture *bitmapTex = NULL;
    SDL_Surface *bitmapSurface = NULL;
    int posX = 100, posY = 100, width = 320, height = 240;

    SDL_Init(SDL_INIT_VIDEO);

    win = SDL_CreateWindow("Hello World", posX, posY, width, height, 0);

    renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);

    bitmapSurface = SDL_LoadBMP("img/hello.bmp");
    bitmapTex = SDL_CreateTextureFromSurface(renderer, bitmapSurface);
    SDL_FreeSurface(bitmapSurface);

    while (1) {
        SDL_Event e;
        if (SDL_PollEvent(&e)) {
            if (e.type == SDL_QUIT) {
                break;
            }
        }

        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer, bitmapTex, NULL, NULL);
        SDL_RenderPresent(renderer);
    }

    SDL_DestroyTexture(bitmapTex);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(win);

    SDL_Quit();

    return 0;
}
Line 30: Line 69:
'''flags''' can have any number of these values OR'd in: <<Anchor(flags)>> '''flags''' may be any of the following OR'd together:
Line 34: Line 73:
 .[[SDL_CreateSoftwareRenderer]]
Line 35: Line 75:
 .[[SDL_GetNumRenderDrivers]]
Line 36: Line 77:
 .[[SDL_SelectRenderer]]
Line 39: Line 79:
[[CategoryAPI]], [[CategoryVideo]] [[CategoryAPI]], [[CategoryRender]]

SDL_CreateRenderer

Use this function to create a 2D rendering context for a window.

Syntax

SDL_Renderer* SDL_CreateRenderer(SDL_Window* window,
                                 int         index,
                                 Uint32      flags)

Function Parameters

window

the window where rendering is displayed

index

the index of the rendering driver to initialize, or -1 to initialize the first one supporting the requested flags

flags

0, or one or more SDL_RendererFlags OR'd together; see Remarks for details

Return Value

Returns a valid rendering context or NULL if there was an error; call SDL_GetError() for more information.

Code Examples

#include "SDL.h"

int main(int argc, char *argv[]) {
    SDL_Window *win = NULL;
    SDL_Renderer *renderer = NULL;
    SDL_Texture *bitmapTex = NULL;
    SDL_Surface *bitmapSurface = NULL;
    int posX = 100, posY = 100, width = 320, height = 240;

    SDL_Init(SDL_INIT_VIDEO);

    win = SDL_CreateWindow("Hello World", posX, posY, width, height, 0);

    renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);

    bitmapSurface = SDL_LoadBMP("img/hello.bmp");
    bitmapTex = SDL_CreateTextureFromSurface(renderer, bitmapSurface);
    SDL_FreeSurface(bitmapSurface);

    while (1) {
        SDL_Event e;
        if (SDL_PollEvent(&e)) {
            if (e.type == SDL_QUIT) {
                break;
            }
        }

        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer, bitmapTex, NULL, NULL);
        SDL_RenderPresent(renderer);
    }

    SDL_DestroyTexture(bitmapTex);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(win);

    SDL_Quit();

    return 0;
}

Remarks

flags may be any of the following OR'd together:

SDL_RENDERER_SOFTWARE

the renderer is a software fallback

SDL_RENDERER_ACCELERATED

the renderer uses hardware acceleration

SDL_RENDERER_PRESENTVSYNC

present is synchronized with the refresh rate

SDL_RENDERER_TARGETTEXTURE

the renderer supports rendering to texture

Note that providing no flags gives priority to available SDL_RENDERER_ACCELERATED renderers.


CategoryAPI, CategoryRender

None: SDL_CreateRenderer (last edited 2014-11-11 02:06:24 by RyanGordon)

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