Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
Я бы не рассчитывал.
У нас тут один и тот же шрифт, на одной и той же машине, но с разными ОпенГЛ драйверами отличается на пиксель по высоте.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
По логике библиотека алгоритмов выводящая шрифт тоже должна совпадать как и её настройки.
Здравствуйте, velkin, Вы писали:
V>По логике библиотека алгоритмов выводящая шрифт тоже должна совпадать как и её настройки.
Думаю, это только в случае рисования шрифта через заполнение битового массива ручками. Но если рисование шрифта использует хотя бы Line(from, to) то все будет упираться в разность драйверов, как сказал ответивший выше.
Хотя даже в этом случае вывод на экран битового массива все равно будет происходить через драйверы — так что ничего не гарантировано
Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
Нет. Потому что разные системы могут даже разные алгоритмы для отображения использовать. И даже для одинакового алгоритма их настройки могут быть разными.
Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
С масштабированием шрифтов и картинок в разных ОС натолкнулся однажды на одну любопытную особенность. Делал я как-то десктопную прогу, и там надо было отображать на экране лист А4 с графическими примитивами и надписями и масштабированием. Были версии под Windows (тогда основными версиями были 2000 и XP) и под Linux, писалось на C++ и wxWidgets. Из системы получал разрешение в точках на дюйм и рассчитывал размеры для отображения на экране. Под Linux размер на экране был меньше, чем под Windows, при этом, при 100% масштабе, размер на экране в Linux совпадал с размером бумаги. Проявлялось на разных компах с разным железом. Начал выяснять, в чём дело и как это исправить. Выяснил, что точки на дюйм, пункты и прочие единицы измерения шрифтов и графики пришли из полиграфии, а там используется французский дюйм (27,06995 мм), а в Windows для расчётов используется английский дюйм (25,4 мм). Пришлось в версии для Windows сделать дополнительный коэффициент пересчёта.
Если учесть все тонкости с отображением шрифтов и графики в разных ОС, то отображение шрифтов на одном и том-же экране под разными ОС будет похожим, хотя сомневаюсь, что совпадение будет попиксельным. Но тут, конечно, ещё зависит от драйверов.
Здравствуйте, Michael7, Вы писали:
M>Нет. Потому что разные системы могут даже разные алгоритмы для отображения использовать. И даже для одинакового алгоритма их настройки могут быть разными.
Сглаживание в разных системах может по разному работать. И даже в одной можно настройки менять.
Здравствуйте, Homunculus, Вы писали:
V>>По логике библиотека алгоритмов выводящая шрифт тоже должна совпадать как и её настройки. H>Хотя даже в этом случае вывод на экран битового массива все равно будет происходить через драйверы — так что ничего не гарантировано
OpenGL это Open Graphics Library, то есть открытая графическая библиотека алгоритмов. При этом речь тогда уже идёт не о выводе векторных шрифтов, а о выводе растровых изображений, так как OpenGL не про векторные шрифты. Суть в том, что если алгоритмы совпадают, то и выводить будет одно и тоже, а если нет, то естественно, что и результат может быть каким угодно.
Можем для примера взять GDI и X11 это одно. А можем взять версию DirectX с DirectDraw или Direct3D, или рассмотреть OpenGL. Тот же OpenGL, разные производители, разные реализации.
Если уж мы дошли до OpenGL, то тогда не стоит привлекать сюда GDI и X11 и вопрос должен стоять именно про OpenGL. А так же про то, можно ли в разных реализациях OpenGL вывести одинаково растровое изображение.
Собственно говоря, а в чём предпосылка этого вопроса, какая идея в него заложена? А то мы сейчас докатимся до того, что и пиксель нельзя вывести в разных ОС на нужное место, хотя очевидно, что это не так.
Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
Я б даже не рассчитывал, что он будет совпадать на одной и той же ОС, но с разными версиями запчастей, которые участвуют в отрисовке шрифтов
Здравствуйте, Homunculus, Вы писали:
H>Есть ли гарантия, что один и тот же шрифт с одними и теми же настройками на одном и том же мониторе в разных ОС будет попиксельно совпадать?
Нет. Зависит от рендерера.
Почитай про шрифты — там адок.
"настройки" — это тоже слишком абстрактно.
V>Собственно говоря, а в чём предпосылка этого вопроса, какая идея в него заложена?
Идеи в этом вопросе может быть заложено две:
1. Цифровой отпечаток клиентского устройства. Сама по себе вариативность font fingeprint'ов мала, и обычно их используют в сочетании с другими методами.
2. Противодействие снятию подобного отпечатка.
PS. А может у меня профдеформация, и предпосылка ТС совсем не в этом)
У меня с этим проблема при переходе с винды на линукс была. И там и там фаерфокс одной версии с одинаковыми шрифтами, прямо шрифты из винды взял. Всю проприетарщину, по умолчанию в линуксе выключенную, включил. Но всё равно в линуксе всё выглядело иначе, пришлось какое-то время привыкать.