|
Size: 1154
Comment: content changed
|
← Revision 33 as of 2014-11-11 02:06:24 ⇥
Size: 2297
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.
Contents
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.
