How to draw a rectangle in SDL 2 and what exactly is a renderer
我的问题集中在SDL 2
我不太清楚什么是渲染器。我可以有多个渲染器,还是总是只有一个?
例如,如何使用渲染器在具有不同颜色的背景上绘制具有特定颜色的矩形?
我相信答案在于以下功能:
就像我说的那样,问题是我不了解渲染。我知道曲面和发白的工作原理,但我不知道渲染器确切地象征着什么。
如果有人可以告诉我该怎么做,我想我会理解渲染的工作原理。
到目前为止,我有这个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <SDL.h> int main(int argc, char* argv[]) { //Initialization SDL_Init(SDL_INIT_EVERYTHING); //Window SDL_Window *MainWindow = SDL_CreateWindow("My Game Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN ); //Renderer SDL_Renderer *Background = SDL_CreateRenderer(MainWindow, -1, 0); SDL_SetRenderDrawColor(Background, 255, 255, 255, 255); SDL_RenderClear(Background); SDL_Delay(3000); //Clean up SDL_DestroyWindow(MainWindow); SDL_Quit(); return 0; } |
对于问题的第一部分,请参阅此SO问题。
关于您的代码为什么不做很多事情:
您正确地需要使用
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ... //Renderer SDL_Renderer* renderer = SDL_CreateRenderer(MainWindow, -1, 0); SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); SDL_RenderClear(renderer); // fill the scene with white SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); // the rect color (solid red) SDL_Rect rect(0, 0, 100, 50); // the rectangle SDL_RenderFillRect(renderer, &rect); SDL_RenderPresent(renderer); // copy to screen SDL_Delay(3000); ... |