SDL_Window
SDL_Window
is the struct that holds all info about the Window itself: size, position, full screen, borders etc.SDL_Renderer
SDL_Renderer
is a struct that handles all rendering. It is tied to aSDL_Window
so it can only render within thatSDL_Window
. It also keeps track the settings related to the rendering. There are several important functions tied to theSDL_Renderer
SDL_SetRenderDrawColor(renderer, r, g, b, a);
This sets the color you clear the screen to ( see below )
SDL_RenderClear(renderer);
This clears the rendering target with the draw color set above
SDL_RenderCopy(
This is probably the function you'll be using the most, it's used for rendering aSDL_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,
The part of the texture you want to render, NULL if you want to render the entire textureconst SDL_Rect* dstrect)
Where you want to render the texture in the window. If the width and height of thisSDL_Rect
is smaller or larger than the dimensions of the texture itself, the texture will be stretched according to thisSDL_Rect
SDL_RenderPresent(renderer);
The other SDL_Render* functions draws to a hidden target. This function will take all of that and draw it in the window tied to the renderer.SDL_Textures and SDL_Surface
The
SDL_Renderer
rendersSDL_Texture
, which stores the pixel information of one element. It's the new version ofSDL_Surface
which is much the same. The difference is mostly thatSDL_Surface
is just astruct
containing pixel information, whileSDL_Texture
is an efficient, driver-specific representation of pixel data.You can convert an SDL_Surface* to SDL_Texture using
SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface* surface)
After this, the SDL_Surface should be freed using
SDL_FreeSurface( SDL_Surface* surface )
Another important difference is that
SDL_Surface
uses software rendering (via CPU) whileSDL_Texture
uses hardware rendering (via GPU).SDL_Rect
The simplest struct in SDL. It contains only four shorts.
x, y
which holds the position andw, h
which holds width and height.It's important to note that
0, 0
is the upper-left corner in SDL. So a highery
-value means lower, and the bottom-right corner will have the coordinatex + w, y + h
SDL2.0 一些名词解释
最新推荐文章于 2024-04-10 17:21:33 发布