Re[22]: Кроссплатформа - состояние на конец 2022
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.12.22 19:52
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

M>>Стало поприятнее

S>Ну, как я и ожидал — чудес не бывает.

Особо ничего не поменялось, просто отображение шрифтов стало более приятным глазу


S>>>Это, конечно, здорово, вот только размеры шрифта в десятки пикселов не очень интересны. Там более-менее любой растеризатор справится.

S>>>Попробуйте взять реалистичные размеры для чтения текста с экрана — ну, там, 6-7-8-9-10-11-12pt. И посмотрим, насколько линейно меняется ширина текста.

M>>Размер шрифта у меня float, пересчитывается в пиксели по курсу какой укажу


M>>Скачки есть, но фатального ничего не вижу

S>И очень зря. Одно дело, когда вы выводите одну отдельную строку (скажем, в заголовке окна). Тогда то, что она удлиняется неравномерно при росте зума — незначительное неудобство.
S>Иное дело, когда вы выводите на экран целую страницу, которая свёрстана определённым образом.
S>И когда вы делаете ей зум-фактор 80%, то пользователь ожидает, что все строчки станут короче на 20%, а не так, что кто-то — на 15%, а кто-то — на 22%.
M>>Померял у себя на экране — размер 4 — 56 мм, размер 2.047 (по двойку только) — 28 мм
S>Двукратное изменение размеров — нетрудное упражнение. Всегда сложнее сделать 95% так, чтобы это было именно 95%.

Я просто напомню:

S>Ну как бы PDF требует выводить текст не абы как, а WYSIWYG. И если вы показываете страничку в 50% зуме, то ожидается, что у неё границы слов будут там же, где и в 100%, а не как в TextOut, где ширина текста 24 кеглем не связана сколь-нибудь приемлемой формулой с шириной текста 12 кеглем.
S>Поэтому рассуждения о том, что можно рендерить PDF просто выплёвывая строчки в TextOut отдают, ммм, неполным профессионализмом.



Слушай, мне, если честно, хотелось спросить, что ты съешь — галстук или шляпу, но я не стал обострять, думал, до тебя дойдёт и ты сам признаешься в своей неправоте. Хотя бы и не публично, а для себя. Но ты сам полез в залупу.

            // Выбираем из масштабной сетки (подсмотрел в гугл хроме)

            std::array<unsigned, 14> scales = { 500, 250, 175, 150, 125, 110, 100, 90, 80, 75, 67, 50, 33, 25 };

            textoutTestFontParams.height = 6; // 2.7

            for(auto scale : scales)
            {
                auto tmpFontParams = textoutTestFontParams;
                tmpFontParams.height = scale*textoutTestFontParams.height / 100;
            
                std::string text;
                umba::StringRefCharWriter writter = text;
                umba::SimpleFormatter uss(&writter);
           
                uss << textoutTestFontParams.fontFace << ": " << scale; // textoutTestFontParams.height;

                int fontId = pDc->selectNewFont( tmpFontParams );
                pDc->textOut( textoutTestPos, fontId, ColorRef{32,32,32}, text );
                textoutTestPos.y += tmpFontParams.height;
            }


  Для 6ки


  Для 2.7 — выбирал, чтобы не особо было кратно 6ке


Посиди с линейкой перед экраном, поизмеряй, посчитай-посравнивай.


S>Почитайте классику: http://rastertragedy.com/

S>Именно поэтому Adobe рендерят текст сами, без помощи системы.

Тебе никто не обещал, что GDI выдаст тебе в любом масштабе абсолютно идентичную картинку.
Но на GDI можно сделать рендерер PDF, и 99 процентов пользователей ничего не заметит по сравнению с адобовским.

S>Ну как бы PDF требует выводить текст не абы как, а WYSIWYG. И если вы показываете страничку в 50% зуме, то ожидается, что у неё границы слов будут там же, где и в 100%, а не как в TextOut, где ширина текста 24 кеглем не связана сколь-нибудь приемлемой формулой с шириной текста 12 кеглем.
S>Поэтому рассуждения о том, что можно рендерить PDF просто выплёвывая строчки в TextOut отдают, ммм, неполным профессионализмом.


S>Двукратное изменение размеров — нетрудное упражнение. Всегда сложнее сделать 95% так, чтобы это было именно 95%.



ЗЫ Понимаю, что требовать съесть шляпу от тебя — бесполезно
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.