AIMP4: Skin Engine — элементы управления. Часть 1

Прежде, чем речь пойдет об нововведениях в элементах управления, предлагаю вам рассмотреть изменения, что были сделаны на базовом уровне для элементов управления.

Прошлые статьи по теме:

  1. AIMP4: Skin Engine

Отрисовка

Отрисовка всех элементов управления теперь происходит в три этапа: сначала рисуется фон, затем содержимое, и финальным этапом является отрисовка так называемой «крышки». Несмотря на введение этого подхода на базовом уровне, часть элементов могут не поддерживать тот или иной этап, а отрисовка «крышки» является опциональным этапом даже для тех элементов, что его поддерживают.

Отражение

Часть элементов обзавелись возможностью отражать свое содержимое по вертикали и горизонтали относительно центра элемента. К таким элементам относятся: TASEAnimator, TASECoverArtDisplay, TASEDigitsDisplay,  TASEGauge, TASERunningLine, TASESpectrumDisplay, TASETextDisplay, TASETimeDisplay.

Отражение позволит делать скины более интересными, а так же сэкономить на ресурсах (об этом поговорим чуть позже).

Текстуры

Для всех без исключения свойств-текстур появилась возможность отключить динамическое изменение оттенка. Оттенок скина может быть изменен пользователем в настройках интерфейса в самой программы, без модификации исходного скина.

Главная текстура

Основная масса изменений коснулась главной текстуры элемента (свойство Skin) и, конечно же, редактора текстур:

skinimage property editor

Как вы видите на скриншоте, редактор сильно изменился — появилась целая группа новых свойств. Итак, обо всем по порядку:

Слой-маска

Это поле позволяет указать номер кадра, который будет использоваться как маска при отрисовке элемента. У маски есть два режима наложения — ко всему элементу, к его содержимому. В первом случае маска применяется ко всем трём этапам отрисовки, во-втором — только ко второму. По использованию системных ресурсов оба режима одинаковы.

Слой-крышка

Как было сказано чуть выше, заключительным этапом является отрисовка «крышки» элемента. Это поле позволяет указать, какой кадр текстуры будет выступать в роли этой самой «крышки».

Отступы от краёв

Новое свойство позволяет указать зону, за которую не должно вылезать содержимое элемента. На текущий момент это свойство используется далеко не во всех элементах.

Рассмотрим работу новых свойств на примере TASECoverArtDisplay:

albumart demo

А вот так выглядит наша текстура и настройки ее отображения:

properties for albumart demo

Первые два кадра отвечают за фон дисплея без / при наличии изображения. Третьим кадром идет слой-крышка, которая рисуется поверх всего, а четвертым — слой-маска для содержимого элемента, т.е. для изображения обложки альбома.

AIMP4: Skin Engine — элементы управления. Часть 1: 9 комментариев

    1. Artem Автор записи

      Если контент у элемента статичный, например, кнопка с картинкой — никакого, даже наоборот, будет впустую расходоваться процессорное время. А вот если контент динамичный — как в примере выше — обложка альбома меняется, соответственно, заранее просчитать, как эффект стекла будет ложиться поверх обложки альбома, нельзя. Вот в этом случае единственным вариантом будет накладывать «стекло» поверх контента «на лету».

        1. Artem Автор записи

          Возможно, я неточно выразился: крышка, позволяет сделать крышку. Рисовать крышку сразу на текстуре в графическом редакторе — это более оптимальный способ, нежели накладывать ее на лету, но этот способ не применим, если в элементе между фоном и крышкой размещается контент, который меняется и зависит от внешних факторов.

  1. samiximas

    Запретить динамическое изменение оттенка-звучит волшебно,как-же этого не хватало.Жду с нетерпением.Пожелания насчёт цвета:1-ввести второй канал динамического изменения оттенка,2-расширить диапазон оттенков -от чёрного до белого с основным цветом в середине.

    1. Artem Автор записи

      1) второй — всмысле? что он будет делать?
      2) это уже по сути яркость, я когда-то пробовал делать и был не очень доволен результатом, поэтому так и не выпустил ничего подобного

      1. samiximas

        1)то есть изменять оттенок специально отмеченных текстур отдельным регулятором.Это было-бы круче,чем в винампе ведь там ограниченное кол-во цветовых схем ,а у нас БЕСКОНЕЧНО
        2)пусть будет для разнообразия.Особенно это будет актуально при запрете динамического изменения оттенка или лучше с вторым каналом изменения оттенка.

        1. Artem Автор записи

          1) А почему именно два, а не три / пять? На самом деле этот регулятор дает весьма посредственное качество, будь даже 10 регуляторов — сделать из исходной обложки оригинальный скин с хорошо подобранными цветами вряд ли не получится.
          2) Не очень понял, чем новая опция оправдывает появление регулятора яркости?

          1. samiximas

            Ну извините за бред,я просто думал о цветовых парах типа:жёлтый-синий,голубой-серебристый,красный-зелёный и т.д.Больше двух не надо.
            И вообще не отвлекайтесь на разные блоги,пилите новый редактор,итак нововведений выше крыши.Большое вам спасибо за работу.

Добавить комментарий