SDL_FillRect()
is used to draw a rectangle on the current back buffer in SDL. Here’s how to use it effectively in double buffering context:
#include <SDL.h>
int main(int argc, char** argv) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow(
"Fill Rect Example",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
SDL_Surface* surface = SDL_GetWindowSurface(
window);
while (true) {
// Define rectangle size and position
SDL_Rect rect = {10, 10, 200, 200};
// Fill rectangle with red
SDL_FillRect(surface, &rect, SDL_MapRGB(
surface->format, 0xFF, 0x00, 0x00));
// Update the front buffer with the back
// buffer content
SDL_UpdateWindowSurface(window);
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Answers to questions are automatically generated and may not have been reviewed.
Learn the essentials of double buffering in C++ with practical examples and SDL2 specifics to improve your graphics projects