Здравствуйте, c-smile, Вы писали:
МР>>>Еще раз четко сформулирую вопросы: МР>>>1) Изменились ли принципы работы графической системы в современных версиях Windows по сравнению с Windows 98, Windows XP?
U>>нет
CS>Ты про WM_DPICHANGED message случаем не забыл? А про OpenType шрифты? Чем ты их рендерить предлагаешь если "нет"? CS>А про то что GDI alpha канал как не знал ничего так и не знает? Как ты предлагаешь делать что либо близкое к start menu / action center?
"рюшечки" как рисовались всякими костылями, так и рисуются, ничего не изменилось
WM_DPICHANGED это отдельная тема, в большинстве случаев не нужная, клинических случаев использования мониторов с разными настройками dpi я думаю можно насчитать по пальцам.
а теперь смотрим на картинку в моём другом сообщении и отвечаем на вопрос топикстартера в начале этого сообщения.
Re[4]: Принципы работы графической системы Windows остаются?
Здравствуйте, uuuser, Вы писали:
U>WM_DPICHANGED это отдельная тема, в большинстве случаев не нужная, клинических случаев использования мониторов с разными настройками dpi я думаю можно насчитать по пальцам.
ЩИТО?
Самый тупой случай — ноутбук с HiDPI и десктопный монитор с обычным DPI, но большим размером. Окно перетаскивают с одного монитора на другой. Всё.
Sapienti sat!
Re[5]: Принципы работы графической системы Windows остаются?
Здравствуйте, dmitry_npi, Вы писали:
_>Здравствуйте, c-smile,
_>Mr.Delphist, видимо, неправильно выразился: нужно было сказать не WPF, а XAML. WPF, UWP, Silverlight, Xamarin — XAML-фреймворки.
XAML как и HTML это markup languages.
Какое отношение это имеет к вопросу "Изменились ли принципы работы графической системы в современных версиях Windows по сравнению с Windows 98, Windows XP?" ?
Или имеется ввиду ответ типа "Забей, пиши UI в HTML"? Ну дык я лично согласен.
Здравствуйте, uuuser, Вы писали:
U>Здравствуйте, c-smile, Вы писали:
МР>>>>Еще раз четко сформулирую вопросы: МР>>>>1) Изменились ли принципы работы графической системы в современных версиях Windows по сравнению с Windows 98, Windows XP?
U>U>>нет
CS>>Ты про WM_DPICHANGED message случаем не забыл? А про OpenType шрифты? Чем ты их рендерить предлагаешь если "нет"? CS>>А про то что GDI alpha канал как не знал ничего так и не знает? Как ты предлагаешь делать что либо близкое к start menu / action center?
U>"рюшечки" как рисовались всякими костылями, так и рисуются, ничего не изменилось
300dpi — это в девять раз больше пикселей на экране по сравнению с 96dpi.
У тебя производительность процессора выросла в 9 раз? За для нарисовать "рюшечки" на том экране?
В GDI фактически только одна hardware accelerated функция.
BitBlt называется.
Много ты ей нарисуешь? Скажем что-то типа масштабируемого SVG с antialiased primitives и всё такое...
U>WM_DPICHANGED это отдельная тема, в большинстве случаев не нужная, клинических случаев использования мониторов с разными настройками dpi я думаю можно насчитать по пальцам.
U>а теперь смотрим на картинку в моём другом сообщении и отвечаем на вопрос топикстартера в начале этого сообщения.
Ты вообще современной UI разработкой занимался ли? А notebook современный видел?
Такое впечатление что "нет" в обоих случаях.
Re: Принципы работы графической системы Windows остаются?
МР>1) Изменились ли принципы работы графической системы в современных версиях Windows по сравнению с Windows 98, Windows XP?
Разучились попадать в пикселы (чёрные буквы на белом фоне расплываются на +-3 пиксела радужным разблуриванием).
Разучились отображать иконки из >2 цветов одновременно. МР>2) Если не изменились, то в обозримом будущем какие-то изменения предвидятся?
Windows11-приложения будут чёрными квадратами Малевича с 5 дрыгающимися рекламными баннерами, за 99.9$
Здравствуйте, c-smile, Вы писали:
CS>На кнопку в about box глянь. Там бордюры в три раза тоньше того что нужно.
кому нужно?
это стандартный виндовый пушбаттон, как он выглядит решает винда в зависимости от версии винды и настроек dpi.
CS>Даже вот такое простое действо вызывает проблемы.
у кого?
CS>Например вот флагман векторной графики так сказать: CS>Это я еще настройки подкрутил. Ибо в настройках по умолчанию работать невозможно.
что это, зачем это, и какое это отношение имеет к принципам работы графической системы ?
Re[5]: Принципы работы графической системы Windows остаются?
Здравствуйте, Cyberax, Вы писали:
U>>WM_DPICHANGED это отдельная тема, в большинстве случаев не нужная, клинических случаев использования мониторов с разными настройками dpi я думаю можно насчитать по пальцам. C>ЩИТО?
C>Самый тупой случай — ноутбук с HiDPI и десктопный монитор с обычным DPI, но большим размером. Окно перетаскивают с одного монитора на другой. Всё.
хммм, на самом деле интересная тема, странно что до сих пор никто из клиентов на это не пожаловался...
Re[5]: Принципы работы графической системы Windows остаются?
Здравствуйте, c-smile, Вы писали:
CS>300dpi — это в девять раз больше пикселей на экране по сравнению с 96dpi. CS>У тебя производительность процессора выросла в 9 раз? За для нарисовать "рюшечки" на том экране?
производительность процессора ... dpi
CS>В GDI фактически только одна hardware accelerated функция. CS>BitBlt называется. CS>Много ты ей нарисуешь? Скажем что-то типа масштабируемого SVG с antialiased primitives и всё такое...
для начала вопрос, а оно мне и ТС надо?
если бы ТС интресовали WPF, XAML, QT, итд, то он бы наверное конкретно про них спросил, а не про "Принципы работы графической системы Windows" которые не поменялись ни на грамм, вообще, и будут жить ещё долго, наверное дольше ваших любимых костылей которые приходят и уходят.
U>>а теперь смотрим на картинку в моём другом сообщении и отвечаем на вопрос топикстартера в начале этого сообщения. CS>Ты вообще современной UI разработкой занимался ли? А notebook современный видел?
ещё раз читаем первое сообщение тописктартера и не тупим,
GetMessage(), DispatchMessage() это не про "рюшечки".
CS>Такое впечатление что "нет" в обоих случаях.
да, костыли меня не интересуют, я пилю интерфейс на голых виндовых контролах, с dpi aware, работает нормально налюбом хламе и при при любом масштабе, ЧЯДНТ?
Re[6]: Принципы работы графической системы Windows остаются?
Здравствуйте, uuuser, Вы писали:
U>если бы ТС интресовали WPF, XAML, QT, итд, то он бы наверное конкретно про них спросил, а не про "Принципы работы графической системы Windows" которые не поменялись ни на грамм, вообще, и будут жить ещё долго, наверное дольше ваших любимых костылей которые приходят и уходят.
Вообще-то, поменялись. Direct*-вещи работают не через GDI.
Sapienti sat!
Re[6]: Принципы работы графической системы Windows остаются?
Здравствуйте, uuuser, Вы писали:
U>я пилю интерфейс на голых виндовых контролах, с dpi aware, работает нормально налюбом хламе и при при любом масштабе
Справедливости ради нужно отметить, что реально нормально будет только начиная с Creators Update, в котором появится DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2.
Re[5]: Принципы работы графической системы Windows остаются?
Здравствуйте, c-smile, Вы писали:
CS>В GDI фактически только одна hardware accelerated функция.
CS>BitBlt называется.
CS>Много ты ей нарисуешь? Скажем что-то типа масштабируемого SVG с antialiased primitives и всё такое...
Всё верно, но современный GDI зачастую актуален лишь для работы с окном как контейнером, блиттинг ему нужен лишь при перетаскивании за шапку тудым-сюдым. Внутренности окна и их рендеринг — это уже windowless-контролы, которые в том же WPF могут рисоваться через GPU acceleration (а значит, с антиалиасингом и всем таким). Как-то так.
Re[6]: Принципы работы графической системы Windows остаются?
Здравствуйте, c-smile, Вы писали:
CS>Что-то мне говорит что MS трудится над Electron с Edge engine внутри.
И тем не менее — текущий веб — просто импотент для представления "нормальных" интерфейсов.
Т.е. веб на самом деле универсальнее всех на сегодня (проще но и нехилые недостатки есть). Не хватает иметь расширений навроде твоих.
Но имхо — нихера подобного в стандарте не будет. Флексы толком не вошли в жизнь, а всё равно ущербные они как ни крути. Увы.
Re[6]: Принципы работы графической системы Windows остаются?
Без возможности привязки (snap) к device pixels — за виртуальные нужно отрывать ноги с руками и ногами. Тут вы господа афаик все едины. Разве что в твоём sciter можно сказать snap borders to pixels. Можно?
Re[7]: Принципы работы графической системы Windows остаются?
Здравствуйте, Mystic Artifact, Вы писали:
CS>>Что-то мне говорит что MS трудится над Electron с Edge engine внутри. MA> И тем не менее — текущий веб — просто импотент для представления "нормальных" интерфейсов. MA> Т.е. веб на самом деле универсальнее всех на сегодня
Тоже мне открытие, это было известно ещё до QT с его qml.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: Принципы работы графической системы Windows остаются?
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, c-smile, Вы писали:
MA>Без возможности привязки (snap) к device pixels — за виртуальные нужно отрывать ноги с руками и ногами. Тут вы господа афаик все едины. Разве что в твоём sciter можно сказать snap borders to pixels. Можно?
В Sciter px и dip это разные length units.
px это физический пиксел т.е. border:1px solid; будет именно 1 пиксел на данном физическом экране.
Тогда как border:1dip solid; будет 1 пиксел на 96dpi мониторе и 2 пиксела на 200dpi мониторе.
Т.е. 1dip это логический device independent pixel == 1/96in.
В web 1px это то что в sciter 1dip. Т.е. в browsers и Atom/Electron соответственно невозможно нарисовать линию в строго один физический пиксел.
Т.е. на web платформе нет физических length units, только logical ones: 1px = 1/96in, 1pt = 1/72in, etc.
Почему так — науке не известно.
Re[4]: Принципы работы графической системы Windows остаются?
PTC Mathcad — полностью сделан на WPF. Работает шустро.
Я думаю что большого количества приложений , доступных для покупки простым людям, сделанных не то что на WPF, а просто на .Net не так много. Другое дело всякие корпоративные приложения, о которых мы ничего не знаем.
А когда я читаю о том, что интерфейсу _антивируса_ нужно аппаратное ускорение для от рисовки, мне становится немного стремно.
Ты на самом деле не до оцениваешь шустрость GDI, который начинал свое существование в Windows 1.0 на 8086 процессоре и 128 килобайтах памяти. И уже тогда он прекрасно справлялся с рисованием всего, что нужно. А уж на 386/486 процессорах с парой мегабайт памяти через него прекрасно рисовали все что нужно всякие Автокады (они, правда и в ДОС с рисованием проблем не испытывали), Ворды, Эксели, Визио и куча прочего софта. GDI+ отлично справлялся с рисованием красивостей интерфейса в Windows XP. Ну и т.д.
Re[5]: Принципы работы графической системы Windows остаются?
Здравствуйте, aloch, Вы писали:
A>Ты на самом деле не до оцениваешь шустрость GDI, который начинал свое существование в Windows 1.0 на 8086 процессоре и 128 килобайтах памяти. И уже тогда он прекрасно справлялся с рисованием всего, что нужно. А уж на 386/486 процессорах с парой мегабайт памяти через него прекрасно рисовали все что нужно всякие Автокады (они, правда и в ДОС с рисованием проблем не испытывали), Ворды, Эксели, Визио и куча прочего софта. GDI+ отлично справлялся с рисованием красивостей интерфейса в Windows XP. Ну и т.д.
GDI это CPU drawing. Без antialiasing и без альфаканала. На экране в 800*600 или 1024*768 пикселей проблем не было если не нужно было antialiasing и альфаканал. Т.е. W10 start menu GDI нарисовать уже не сможет в принципе.
Но и то для того чтобы рисовать видео например GDI не справлялся — требовалось DirectDraw — т.е. запись напрямую в видео память минуя этот самый GDI.
Средний high-DPI монитор это 3840*2160 — т.е. количеств пикселей в 200 раз выросло.
Современные же процессоры недалеко ушли от тех на которых работала XP — раза в два/три быстрее.
Понятно что рисовать чисто CPU уже нельзя.
Re[8]: Принципы работы графической системы Windows остаются?
Здравствуйте, c-smile, Вы писали:
MA>>Без возможности привязки (snap) к device pixels — за виртуальные нужно отрывать ноги с руками и ногами. Тут вы господа афаик все едины. Разве что в твоём sciter можно сказать snap borders to pixels. Можно? CS>В Sciter px и dip это разные length units.
Да-да, я знаю что у тебя по взрослому. Но я говорил немножечко о другом: вот у нас допустим в тексте встречается inline-block и мы хотим что-бы весь блок был привязан к пикселам (т.е. что бы однопиксельные бордюры не размывались). Ну или даже 1dip бордюры которые пусть будут 1.5px, но хотим что-бы left-top и right-bottom были привязаны к пикселам, а не так как получится в зависимости от того куда попал блок и его ширины (опять таки жестко не заданной). Ну или классическая таблица — что-бы разделители колонок не "плыли" от звёзд. Т.е. безусловно то, что есть разные lenght unit — это правильно. Но в непредсказуемом flow именно нужны какие-то хитрые привязки / позиционирования.
В общем-то я больше даже сетую на отсутствие вменяемых механизмов сделать две линии одинаковыми.
А в вебе px — это dip, имхо, только потому, что умные дяди посчитали, что они умнее всех. Их наверное понять можно, но с трудом.