所以这段代码取自Cannot draw a filled circle with SDL2 gfx:
SDL_RenderClear(renderer);
Sint16 circleR = 100;
Sint16 circleX = 300;
Sint16 circleY = 300;
int result = filledCircleColor(renderer, circleX, circleY, circleR, 0xFF0000FF);
//std::cout << "drawing the circle r " << circleR << " x " << circleX << " y " << circleY << " circleColour " << circleColour << std::endl;
std::cout << "draw circle result " << result << std::endl;
SDL_RenderPresent(renderer);
只运行一次,正确绘制一个圆圈。但是,如果它循环并在第二个时间执行,则屏幕会填充颜色的圆圈,在这种情况下为红色。所有其他功能都会产生同样的效果。如何确保在多个循环上绘制正确的圆,而不是一个充满颜色的窗口?
答案 0 :(得分:2)
在致电SDL_SetRenderDrawColor
之前,您需要使用SDL_RenderClear
设置清晰颜色。否则,在绘制圆圈时设置的颜色仍然是活动的绘制颜色,并且您将使用它填充整个渲染区域。