AIMP Forum
AIMP for Android => Skin Editor, Skin Engine => Предложения / Suggestions => Topic started by: Xaker_Two on September 17, 2023, 22:14:11
-
Иногда есть необходимость сделать плавный переход из одного цвета в другой и сейчас это можно сделать лишь через задание текстуры двумя способами
- прямоугольник 4х4 или 3х4 пикселя с 2-4 нужными цветами для линейного градиента(абъюз смуза)
- запекание градиента нужной формы в текстуру целиком/нужного размера
Проблем тут несколько, особенно при сведении двух не произвольных цветов(т.е. градиент не просто фантазия автора, а переход между областями разных цветов)
- при изменении сводимых цветов надо будет либо обновлять пиксели либо целиком перезапекать градиент
- при залитии фона простым цветом а не текстурой это доп геморой с обновлением текстур
- запеченый градиент может пикселизироваться на бОльших разрешениях
- гарадиенту надо место = увеличение размера текстуры х количество тем = кратное увеличение размера скина
Предложение в том чтобы дать возможность задавать градиенты для мест где это применимо, в частности для свойства Skins.
В идеале сделать поддержку
- простейших форм градиента(линейного, радиального и возможно конического)
- любого количества цветов
- позиций цветов
- угла направления/старта градиента
- позиций центра смешения цветов
Но это в идеале и в будущем.
А конкретно сейчас мне пришлась бы очень кстати линейка на два/три цвета с возможностью выбора направления (вертикаль/горизонталь) и позиции цветов.
Проблемы - рантайм, а точнее то что градиентная часть скина будет считаться прямо на устройстве при каждой перерисовке
Возможное решение - сделать кеш для подобных динамических текстур и считать его сразу после применения скина в максимально возможном для данного устройства масштабе и для всех макетов. Хотя это потребует дополнительного места для хранения текстур(ы).
p.s. спотовые градиенты... ну эт былоб неплохо но если желания хватит и будет необходимость