AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Ошибки и замечания / Bugs => Topic started by: gr-e on March 16, 2022, 20:44:43

Title: [+] [2366] Неправильное применение маски с полупрозрачностью
Post by: gr-e on March 16, 2022, 20:44:43
При использовании полупрозрачной маски под некоторыми элементами просвечиваются нижележащие слои.

Например, в прикрепленном примере под панелью просвечивается красный фон контейнера (левое окно), но если вместо панели использовать другой контейнер, маска работает корректно (правое окно):
(https://i.imgur.com/TA23W9k.png)

В скине по умолчанию используются контейнеры, но проблема всё равно проявляется (просвечивается темный/светлый фон на скруглении):
(https://i.imgur.com/DYVRnkp.png)
Title: Re: [2366] Неправильное применение маски с полупрозрачностью
Post by: Black_AVP_Bim on March 16, 2022, 22:21:57
ИМХО, наоборот, с панелью получается более корректно, маска, ведь, действует на все дочерние элементы LayoutTexture.

Кстати, слой "Крышка" тоже по-разному работает для панели и контейнера.
Title: Re: [2366] Неправильное применение маски с полупрозрачностью
Post by: Artem on March 20, 2022, 12:51:46
Разница между элементами фона и элементами управления в том, что первые рисуют ФОН, а вторые - КОНТЕНТ.

Смотрите, что происходит, когда рисуется UI:
Шаг 1: движок проходит по всем элементам фона и просит их нарисоваться. Таким образом строится общий "фон" окна.
Шаг 2: движок проходит по всем элементам управления и просит их нарисоваться. При этом элементы управления рисуются ПОВЕРХ уже отрендеренного фона.

Панель - это элемент управления, она не участвует в генерации фона, отсюда и возникает просвечивание красного цвета.
Title: Re: [+] [2366] Неправильное применение маски с полупрозрачностью
Post by: Artem on March 20, 2022, 12:53:16
В скине по умолчанию используются контейнеры, но проблема всё равно проявляется (просвечивается темный/светлый фон на скруглении):

Там оно просвечивает из-за неравномерной полупрозрачности маски на скруглениях. Когда-нибудь поправлю
Title: Re: [+] [2366] Неправильное применение маски с полупрозрачностью
Post by: gr-e on March 20, 2022, 14:41:23
Смотрите, что происходит, когда рисуется UI:
Шаг 1: движок проходит по всем элементам фона и просит их нарисоваться. Таким образом строится общий "фон" окна.
Шаг 2: движок проходит по всем элементам управления и просит их нарисоваться. При этом элементы управления рисуются ПОВЕРХ уже отрендеренного фона.
Понял.
Я пока вижу только одно решение - делать элементы фона прозрачными и вместо них задавать цвет фона панелями.
Убирать полупрозрачность на маске не вариант, т.к. будут "ступеньки" на скруглениях.