SDL_Window
SDL_Window is a structure that contains all the information about the window itself: size, position, full screen, borders, etc.
SDL_Renderer
SDL_Renderer is a structure that handles all rendering. It is bound to SDL_Window , so it can only display inside SDL_Window . It also keeps track of settings related to rendering. There are several important functions related to SDL_Renderer
SDL_SetRenderDrawColor(renderer, r, g, b, a);
This sets the color to which you clear the screen (see below).
SDL_RenderClear(renderer);
This clears the render target with the drawing level set above.
SDL_RenderCopy(
This is probably the function that you will use the most, it is used to render SDL_Texture and has the following parameters:
SDL_Renderer* renderer,
The renderer you want to use for rendering.SDL_Texture* texture,
The texture you want to render.const SDL_Rect* srcrect, part of the texture you want to render is NULL if you want to display the entire textureconst SDL_Rect* dstrect)
Where do you want to visualize the texture in the window. If the width and height of this SDL_Rect smaller or larger than the size of the texture itself, the texture will be stretched in accordance with this SDL_Rect
SDL_RenderPresent(renderer);
Other functions of SDL_Render * refer to a hidden target. These functions will take it all and draw in the window associated with the renderer.
SDL_Textures and SDL_Surface
SDL_Renderer , displays the SDL_Texture . SDL_Texture is the pixel information of one element. This is the new version of SDL_Surface , which is almost the same. The main difference is that SDL_Surface is just a struct containing pixel information, while SDL_Texture is an efficient, driver-specific representation of the pixel data.
You can convert SDL_Surface * to SDL_Texture using
SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface* surface)
After that, SDL_Surface should be freed using
SDL_FreeSurface( SDL_Surface* surface )
SDL_Rect
The simplest structure in SDL. It contains only four shorts. x, y , which holds the position, and w, h , which has a width and height.
It is important to note that 0, 0 is the upper left corner in the SDL. Thus, a higher y value means a lower value, and the lower right corner will have the coordinate x + w, y + h
Read more about SDL2 on the blog.
olevegard Jan 08 '14 at 9:59 a.m. 2014-01-08 21:59
source share