Горизонтальный градиент в GUI

Версия Minecraft
1.12.2
API
Forge
5
1
0
Всем привет! Мне нужно нарисовать горизонтальный градиент (как на картинке) в GUI. Я пытался сделать что то с помощью GL, но я за него не очень шарю и у меня ниче не получилось. метод drawGradientRect не подходит т.к. он рисует вертикальный градиент. Если сможете, прошу дать код.
 

Вложения

  • btb.png
    btb.png
    6.1 KB · Просмотры: 24
Решение
Я чуть изучил opengl и наговнокодил отдельный метод, мб кому понадобится :
OpenGL horizontal gui gradient:
public static void drawGradientRect(int x, int y, int width, int height, int startColor, int endColor) {
        float startX = (startColor >> 16 & 255) / 255.0F;
        float startY = (startColor >> 8 & 255) / 255.0F;
        float startZ = (startColor & 255) / 255.0F;
        float startAlpha = (startColor >> 24 & 255) / 255.0F;

        float endX = (endColor >> 16 & 255) / 255.0F;
        float endY = (endColor >> 8 & 255) / 255.0F;
        float endZ = (endColor & 255) / 255.0F;
        float endAlpha = (endColor >> 24 & 255) / 255.0F;

        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_BLEND)...

will0376

Токсичная личность
2,075
55
584
вертикальный градиент
Ну так возьми вертикаль оттуда и преврати в горизонталь...
Либо вот тебе еще вариант - делаешь вертикальный градиент и трансформируешь картинку поворотом на 90грд
 
5
1
0
Я чуть изучил opengl и наговнокодил отдельный метод, мб кому понадобится :
OpenGL horizontal gui gradient:
public static void drawGradientRect(int x, int y, int width, int height, int startColor, int endColor) {
        float startX = (startColor >> 16 & 255) / 255.0F;
        float startY = (startColor >> 8 & 255) / 255.0F;
        float startZ = (startColor & 255) / 255.0F;
        float startAlpha = (startColor >> 24 & 255) / 255.0F;

        float endX = (endColor >> 16 & 255) / 255.0F;
        float endY = (endColor >> 8 & 255) / 255.0F;
        float endZ = (endColor & 255) / 255.0F;
        float endAlpha = (endColor >> 24 & 255) / 255.0F;

        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        GL11.glShadeModel(GL11.GL_SMOOTH);

        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(startX, startY, startZ, startAlpha);
        GL11.glVertex2f(x, y);
        GL11.glColor4f(startX, startY, startZ, startAlpha);
        GL11.glVertex2f(x, y + height);
        GL11.glColor4f(endX, endY, endZ, endAlpha);
        GL11.glVertex2f(x + width, y + height);
        GL11.glColor4f(endX, endY, endZ, endAlpha);
        GL11.glVertex2f(x + width, y);
        GL11.glEnd();

        GL11.glShadeModel(GL11.GL_FLAT);
        GL11.glDisable(GL11.GL_BLEND);
        GL11.glEnable(GL11.GL_TEXTURE_2D);
    }
}
 
Последнее редактирование:
Сверху