我正在尝试绘制渐变(水平和垂直)背景,问题是这会导致cpu使用率很高。渐变绘画的大小是32767x32767,但我当然只是根据屏幕的宽度/高度和偏移量(绘画的起点)进行绘画。据我所知,我不能将这么大的画画存储在内存中,所以画图应该动态创建。我现在正在使用此代码(在1600x900上,它使用10%至20%的cpu,没有渐变绘制(循环SDL_RenderDrawLine)仅为0%):
SDL_SetRenderDrawColor(Renderer, 59, 156, 156, 255);
SDL_RenderClear(Renderer);
for (int X = 0; X < Width; X++)
{
SDL_SetRenderDrawColor(Renderer, 75, 0, 130, X * 255 / 0xfff);
SDL_RenderDrawLine(Renderer, X, 0, X, Height);
}
for (int Y = 0; Y < Height; Y++)
{
SDL_SetRenderDrawColor(Renderer, 75, 0, 130, Y * 255 / 0xfff);
SDL_RenderDrawLine(Renderer, 0, Y, Width, Y);
}
有解决这个问题的更好方法吗?