SDL лучший способ рисовать градиентный фон - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь нарисовать градиентный фон (горизонтальный и вертикальный), проблема в том, что это приводит к высокой загрузке процессора. Размер градиентной краски - 32767x32767, но, конечно, я рисую только на основе ширины / высоты экрана и смещения (начальная точка рисования). Насколько я знаю, я не могу поместить такую ​​большую картину в память, чтобы краска создавалась динамически. Я использую этот код прямо сейчас (на 1600x900 он использует 10-20% процессора, без градиентной краски (зацикливание 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);
    }

Есть ли лучший способ решить эту проблему?

...