Прежде, чем речь пойдет об нововведениях в элементах управления, предлагаю вам рассмотреть изменения, что были сделаны на базовом уровне для элементов управления.
Прошлые статьи по теме:
Отрисовка
Отрисовка всех элементов управления теперь происходит в три этапа: сначала рисуется фон, затем содержимое, и финальным этапом является отрисовка так называемой “крышки”. Несмотря на введение этого подхода на базовом уровне, часть элементов могут не поддерживать тот или иной этап, а отрисовка “крышки” является опциональным этапом даже для тех элементов, что его поддерживают.
Отражение
Часть элементов обзавелись возможностью отражать свое содержимое по вертикали и горизонтали относительно центра элемента. К таким элементам относятся: TASEAnimator, TASECoverArtDisplay, TASEDigitsDisplay, TASEGauge, TASERunningLine, TASESpectrumDisplay, TASETextDisplay, TASETimeDisplay.
Отражение позволит делать скины более интересными, а так же сэкономить на ресурсах (об этом поговорим чуть позже).
Текстуры
Для всех без исключения свойств-текстур появилась возможность отключить динамическое изменение оттенка. Оттенок скина может быть изменен пользователем в настройках интерфейса в самой программы, без модификации исходного скина.
Главная текстура
Основная масса изменений коснулась главной текстуры элемента (свойство Skin) и, конечно же, редактора текстур:
Как вы видите на скриншоте, редактор сильно изменился – появилась целая группа новых свойств. Итак, обо всем по порядку:
Слой-маска
Это поле позволяет указать номер кадра, который будет использоваться как маска при отрисовке элемента. У маски есть два режима наложения – ко всему элементу, к его содержимому. В первом случае маска применяется ко всем трём этапам отрисовки, во-втором – только ко второму. По использованию системных ресурсов оба режима одинаковы.
Слой-крышка
Как было сказано чуть выше, заключительным этапом является отрисовка “крышки” элемента. Это поле позволяет указать, какой кадр текстуры будет выступать в роли этой самой “крышки”.
Отступы от краёв
Новое свойство позволяет указать зону, за которую не должно вылезать содержимое элемента. На текущий момент это свойство используется далеко не во всех элементах.
Рассмотрим работу новых свойств на примере TASECoverArtDisplay:
А вот так выглядит наша текстура и настройки ее отображения:
Первые два кадра отвечают за фон дисплея без / при наличии изображения. Третьим кадром идет слой-крышка, которая рисуется поверх всего, а четвертым – слой-маска для содержимого элемента, т.е. для изображения обложки альбома.
А какое преимущество дает “слой-крышка” перед эффектом в графическом редакторе?
Если контент у элемента статичный, например, кнопка с картинкой – никакого, даже наоборот, будет впустую расходоваться процессорное время. А вот если контент динамичный – как в примере выше – обложка альбома меняется, соответственно, заранее просчитать, как эффект стекла будет ложиться поверх обложки альбома, нельзя. Вот в этом случае единственным вариантом будет накладывать “стекло” поверх контента “на лету”.
То есть исключительно задел на повышение производительности?
Возможно, я неточно выразился: крышка, позволяет сделать крышку. Рисовать крышку сразу на текстуре в графическом редакторе – это более оптимальный способ, нежели накладывать ее на лету, но этот способ не применим, если в элементе между фоном и крышкой размещается контент, который меняется и зависит от внешних факторов.
Запретить динамическое изменение оттенка-звучит волшебно,как-же этого не хватало.Жду с нетерпением.Пожелания насчёт цвета:1-ввести второй канал динамического изменения оттенка,2-расширить диапазон оттенков -от чёрного до белого с основным цветом в середине.
1) второй – всмысле? что он будет делать?
2) это уже по сути яркость, я когда-то пробовал делать и был не очень доволен результатом, поэтому так и не выпустил ничего подобного
1)то есть изменять оттенок специально отмеченных текстур отдельным регулятором.Это было-бы круче,чем в винампе ведь там ограниченное кол-во цветовых схем ,а у нас БЕСКОНЕЧНО
2)пусть будет для разнообразия.Особенно это будет актуально при запрете динамического изменения оттенка или лучше с вторым каналом изменения оттенка.
1) А почему именно два, а не три / пять? На самом деле этот регулятор дает весьма посредственное качество, будь даже 10 регуляторов – сделать из исходной обложки оригинальный скин с хорошо подобранными цветами вряд ли не получится.
2) Не очень понял, чем новая опция оправдывает появление регулятора яркости?
Ну извините за бред,я просто думал о цветовых парах типа:жёлтый-синий,голубой-серебристый,красный-зелёный и т.д.Больше двух не надо.
И вообще не отвлекайтесь на разные блоги,пилите новый редактор,итак нововведений выше крыши.Большое вам спасибо за работу.