SDL2 无法正确绘制矩形
Posted
技术标签:
【中文标题】SDL2 无法正确绘制矩形【英文标题】:SDL2 Wont draw Rectangles Correctly 【发布时间】:2018-09-25 05:07:10 【问题描述】:我正在创建一个窗口并绘制一个框,但由于某种原因,我没有绘制一个框,而是将屏幕更改为该颜色。我附上了窗口外观的照片,我将附上源代码。
#include <iostream>
#include <SDL.h>
#undef main
using namespace std;
int SCREEN_WIDTH = 650;
int SCREEN_HEIGHT = 650;
int main()
if (SDL_Init(SDL_INIT_VIDEO) != 0)
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
SDL_Window *window = SDL_CreateWindow("Cells", 100, 100, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (window == nullptr)
std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
SDL_Quit();
return 1;
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (renderer == nullptr)
std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
SDL_DestroyWindow(window);
SDL_Quit();
return 1;
SDL_Event event;
bool quit = false;
while (!quit)
while (SDL_PollEvent(&event))
if (event.type == SDL_QUIT)
quit = true;
SDL_RenderClear(renderer);
// renderTextures
SDL_Rect fillRect = 122, 122, 122, 122;
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderFillRect(renderer, &fillRect);
SDL_RenderPresent(renderer);
return 0;
Doesn't Draw Correctly
【问题讨论】:
【参考方案1】:SDL_RenderClear 使用您修改的当前绘制颜色,因此您的清晰和矩形颜色是相同的。使用例如设置不同的清晰颜色(您想要的背景颜色),例如
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
// now draw your rectangles with different col
【讨论】:
以上是关于SDL2 无法正确绘制矩形的主要内容,如果未能解决你的问题,请参考以下文章
CMake 无法找到 SDL2_ttf,我正在尝试以与 SDL2 相同的方式链接它,并且两者都正确安装在 Ubuntu 18.04 上