Сегодня решил вкратце рассказать еще об одной глобальной “фиче”, которая запланирована на ближайшую мажорную версию – новая версия скин-движка – v3.
О новых свойствах скин-элементов сейчас говорить не буду, это менее интересно, на мой взгляд, да и не все еще добавлены.
Сейчас хотелось бы остановиться именно на этой фиче – полупрозрачности окон. Если раньше прозрачность регулировалась окна целиком, то теперь, она зависит только от текстуры – наконец-то можно будет сделать нормальные закругления у формы, тень или просто стеклянный интерфейс.
Эта картинка, по большей части, издевательство над скином, однако демонстрирует описанную возможность.
Естественно, фича сказалась на производительности, но не так сильно, как ожидалось 🙂 Скорость отрисовки скина без полупрозрачностых элементов осталась приблизительно такой же, как и раньше. А вот объем потребляемой памяти немножко вырос – на размер буфера для окна. Например, окно у нас размером 350×600 – размер буфера будет равен 820 Кбайт.
А теперь несколько немного о грустном, из-за проблем с производительностью два скин-элемента не поддерживают полупрозрачность – дисплей визуализаций и плейлист.
Можно вопрос? Какой смысл в такой реализации прозрачности? В итоге это не только не выглядит красиво, но и привносит визуальный шум в окно плеера, мешая воспринимать выводимую в окне информацию. Приведенный вами скриншот очень хорошо это иллюстрирует. Конечно, понятно что это просто тестовый скин, но так или иначе от этого будет страдать любой скин если вдруг под ним окажется не фон рабочего стола, а страничка с текстом. А размывка того что попадает под окно плеера при такой реализации станет страшным ударом по производительности.
Другое дело нативная поддержка прозрачности в Vista/7 которая не только выглядит гораздо красивее, не внося шума в окно, но является гораздо более производительным решением. Я также уже писал что это позволит лучше интегрировать скин с темой оформления windows.
Еще хотел спросить появится ли поддержка нескольких цветовых схем для скина, как это было реализовано в Winamp? Текущая реализация хоть и позволяет задать окну плеера любой оттенок, но на подавляющем большинстве скинов это выглядит ужасно. Не знаю как это сейчас реализовано, но при выборе другого цвета для скина он теряет контрастность, если не планируется добавление цветовых схем, было бы неплохо хотя бы поправить алгоритм замены цвета.
Хотя, пожалуй, это только кажущаяся потеря контрастности.
Это уже будет вопрос к авторам скинов – как они захотят это сделать. Например, в стандартном скине теперь будут нормальные закругленные края (не “рваные”)
Такого точно не будет.
В этой версии – нет.
а плэйлист ваще небудет поддерживать прозрачность? а то как в нём то углы нормально закруглить…
Конечно, сами окна будут поддерживать полупрозрачность.
Понимаю, что вопрос не совсем уместен, но все же… можно ли узнать, почему такая реализация не подходит…?
“Другое дело нативная поддержка прозрачности в Vista/7 которая не только выглядит гораздо красивее, не внося шума в окно, но является гораздо более производительным решением.
Такого точно не будет.”
Потому, что затачиваться под “скины” системы – дело гиблое, учитывая, что половину элементов там просто нет
Вы меня неправильно поняли, я имел ввиду способ реализации прозрачности… то как она реализована у вас и в Vista/7..
А чем моя реализация отличается от системной? На самом деле – ничем, разве что винда рисует еще красивую рамку окна. К тому же, не полагаясь на систему, я получаю еще один бонус – работает на WinXP.
Разница в отсутствии размывки… и в виндовой реализации, при “прозрачности” больших объектов или анимации, я особой прибавки нагрузки на систему не заметил….
З.Ы,
Не могли бы Вы сказать, насколько сильна потеря производительности при ее реализации для “дисплей визуализаций и плейлист”…
Какой толк от размывки? Если перекрывать “виндовую отрисовку”, то размытие само собой уйдет. А сделать так, чтобы было и то, и то – не получится.
Плейлист начинает рисоваться в 5 раз медленнее. дисплей, из-за частой перерисовки – грузит процессор на +1% (Core2Duo 1.86).
С дисплеем, я думаю, к релизу вопрос будет решен, а вот в плейлисте пока поддержку прозрачности делать и не планирую.
для плеилиста можно использовать контеинер, т.е. сделать отрисовку рамки отдельно а само содержание плеилиста отдельно, т.е. сам лист не будет прозрачен, в отличие от рамки
Собственно сейчас так и есть
2 Artem
я использую как минимум два “стеклянных” приложения и каких то существенных тормозов я не заметил и это при допотопном Пентиуме 4. В чем причина столь долгой прорисовки Плейлиста?
http://s005.radikal.ru/i210/1004/75/76f8e106b7d9.jpg
ИМХО: будет не красиво если одна часть плеера будет прозрачно, а другая нет (плейлист, эквалайзер и т.д.). Быть может, в Опциях надо ввести настройку, которая бы позволила вообще (или с плейлиста) убрать прозрачность на старых компах и ставить ее на более производительных системах.
И еще, когда примерно ждать версию плеера с прозрачностью?
Ну и конечно же огромное спасибо тебе за создание и поддержку АИМПа. Это лучший плеер на сегодняшний день, пользуюсь уже давно + знакомым ставлю 🙂
Ваш скриншот очень ярко иллюстрирует зачем нужна размывка…. текст “под” окном мешает… и как бы так сказать….лишает окно объемности…делает его приклеенным к “подложке”
З.Ы.
Я не очень силен в написании подобных вещей…. но не решит ли проблемы с плейлистом двойная буферизация окна?
как решениен можно сделать сплошную матовую подложку, многослоиность исправит проблемы с произодительностью
Из-за кол-ва мелких элементов + необходимостью рендеринга / рассчета размеров текста через GDI+.
Видимо, я плохо изложил суть, я имею в виду не окно плейлиста в целом, а только тот скин-элемент (он и имеет название “плейлист”), который содержимое отображает. К тому же, это на данный момент, к релизу ситуация может поменяться =).
Думаю, к концу года что-то вроде бета-версии появится.
Повторюсь еще раз, это грубая иллюстрация, все будет зависеть от конкретного скина и задумки автора. В данном случае, я просто выставиль определенное значение альфа-канал одной из текстур.
В данном случае, нет.
Отличная новость!
Я считаю, что лучше сделать галочку для включения прозрачности для визуалки и галочку для включения прозрачности для плейлиста (ну, это если вообще есть возможность убирать альфа-канал, и если всё это будет нормально выглядеть).
А как на счёт реализации опционального размытия для “задних” текстур?
С плейлистом проблема именно в переводе его на GDI+, а две версии я делать не планирую.
Пока не планирую
С давних пор у меня имеется вопросик. Каждое виндовое приложени сигнализирует своим заголовком о том что, оно сейчас активно или нет. Т.е. если у окна серый заголовок, то оно не активно, и не имеет фокуса. Вопрос: будет ли такое реализованно в следующих версиях скин-движка AIMPа?
Возможно, но в ближайшем будущем не планирую.
просто кому то лень этим заниматься.
вот например прозрачность и не тормозит: http://s40.radikal.ru/i089/1004/54/7938b0ecd0ff.jpg
2 urahara
скачал тот плеер, в нем кроме прозрачности больше ни чего нет 😀 . Функциональности – ноль, плэйлист – без вкладок, даже настроек нет (хотя справедливости ради отмечу, что на нем стоит статус БЕТА)
вот страничка на гугле
https://sites.google.com/site/xaudioplayer/historyx
забавный проект, ценен правда только “прозрачностью”….
Эффект прозрачности а ля WinVista/7 (Aero Glass) создаёт эффект объёмного стекла, а обычный альфа-блендинг создаёт эффект тонкой плёночки. Поэтому первый всё же гораздо приятнее на глаз. Игра со значениями альфа-канала и текстурами тут не поможет, т. к. изображение всё равно не получится сделать размытым, оно будет просто слабее просвещаться, но его контуры будут такими же чёткими. “Отклеить” AIMP от странички можно с помощью тени, но тогда получится всё та же плёночка, только висящая в воздухе.
Читал, что в Delphi 2007 Aero Glass для приложения включается параметром SheetOfGlass, но на этом мои познания данной функции заканчиваются, ибо не программист. 🙂
Надеюсь, вы всё же рассмотрите возможность внедрения поддержки данного эффекта.
А по моему не стОит особо зацикливаться на таких мелочах как Aero эффекты. На некоторых версиях виндовс эти эффекты вообще нативно недоступны. Во второй версии AIMP, на мой взгляд, всего хватает, чтобы настроить внешний вид (даже прозрачность) и скины есть неплохие. Из недостатков поддержки скинов в AIMP2 только “рваные” закругления, ну и неотключаемый “спектранализатор” (я не знаю как его отключить), который вообще хорошо бы исключить, т.к. только место занимает.