Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Surface render gradient line

  • Автор темы Автор темы KlareoN
  • Дата начала Дата начала
C++:
Expand Collapse Copy
void Drawing::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;


    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));

        Drawing::DrawRect(x, y + i, width, 1, colGradient);
    }
}



void Drawing::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;


    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        Drawing::DrawRect(x + i, y, 1, height, colGradient);
    }
}

DrawRect = rect filled
 
C++:
Expand Collapse Copy
void Drawing::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;


    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));

        Drawing::DrawRect(x, y + i, width, 1, colGradient);
    }
}



void Drawing::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;


    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        Drawing::DrawRect(x + i, y, 1, height, colGradient);
    }
}
I have a feeling that my fps will be 10
 
Пожалуйста, авторизуйтесь для просмотра ссылки.
DrawFilledRectFade

две штуки просто рендеришь и все
1636299998926.png
сделал вот так, но ему похуй.
 
Пожалуйста, авторизуйтесь для просмотра ссылки.
no work
Ты уверен(а) что у тебя панель, координаты и все остальное правильно? На луа у меня оно у меня рендерило нормально месяцок назад
Ну да, всё вроде как указал правильно.
C++:
Expand Collapse Copy
void Drawing::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;


    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));

        Drawing::DrawRect(x, y + i, width, 1, colGradient);
    }
}



void Drawing::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;


    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        Drawing::DrawRect(x + i, y, 1, height, colGradient);
    }
}

DrawRect = rect filled
works, but damn it is done through crutches :/
 
Назад
Сверху Снизу