SDL2_gfx 屏幕在第二次循环后填满
SDL2_gfx screen filled after second loop
所以当这段代码取自 :
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);
只运行一次,它正确地画了一个圆。但是,如果它循环并执行一秒钟,屏幕将充满颜色的圆圈,在本例中为红色。同样的效果发生在所有其他功能上。如何确保在多个循环中绘制正确的圆而不是 window 充满颜色?
您需要在调用SDL_RenderClear
之前使用SDL_SetRenderDrawColor
设置清晰颜色。否则,您在绘制圆圈时设置的颜色仍将是活动绘制颜色,您将用它填充整个渲染区域。
所以当这段代码取自
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);
只运行一次,它正确地画了一个圆。但是,如果它循环并执行一秒钟,屏幕将充满颜色的圆圈,在本例中为红色。同样的效果发生在所有其他功能上。如何确保在多个循环中绘制正确的圆而不是 window 充满颜色?
您需要在调用SDL_RenderClear
之前使用SDL_SetRenderDrawColor
设置清晰颜色。否则,您在绘制圆圈时设置的颜色仍将是活动绘制颜色,您将用它填充整个渲染区域。