Палитра-виджет

Версия Minecraft
1.20+
API
Forge
342
33
54
HI

Такой вот виджет в левой части которого код rgb.


color_picker.png
А в правой, белый квадрат должен красится в текущий цвет, также при нажатии на него должна открываться палитра ↓

Снимок экрана 2024-11-16 183413.png
При нажатии на крестик выбранный на ней цвет сохраняется.
Как это можно реализовать(хотя бы выбор цветов через палитру)?

Заранее спасибо.
 
Например использовать HSV. Цвет у кнопки это обычный Rect, который красится через RGBA, HSV можно в RGBA легко перевести. Касаемо градиента на втором скрине, тут есть три варианта:
1. Использовать GL_QUAD_STRIP or GL_TRIANGLE_STRIP
2. Использовать заготовленную текстуру
3. Использовать самописный шейдер

Поскольку у тебя 1.20+, то третий вариант будет самым оптимальным и простым, в отличии от 1 и 2(имхо)
 
3. Использовать самописный шейдер
Как я понял мне нужно с помощью BufferBuilder нарисовать квадрат, а затем RenderSystem.setShader
Я нашёл как зарегать новый ShaderInstance, но хз вообще как написать шейдер на радиальный градиент...
 
Назад
Сверху