SDL绘制渐变背景的最佳方法

时间:2018-08-28 10:28:15

标签: c++ sdl

我正在尝试绘制渐变(水平和垂直)背景,问题是这会导致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);
    }

有解决这个问题的更好方法吗?

0 个答案:

没有答案