OberonCore
https://forum.oberoncore.ru/

Масштабирование документа
https://forum.oberoncore.ru/viewtopic.php?f=24&t=1034
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Среда, 18 Июнь, 2008 08:05 ]
Заголовок сообщения:  Масштабирование документа

Возможно ли такое? Такая вот мысль пришла в голову.

Понятно, что размеры отображений при масштабировании можно легко изменить. А вот шрифты уже поедут.

Идея хоть и странноватая, но полезная. Примеры применений - предпросмотр печати, и уменьшенные изображения окошек, как в Опере.

Радикальный выход - перевод GUI BlackBox на OpenGL :)

Автор:  ___ [ Среда, 18 Июнь, 2008 08:59 ]
Заголовок сообщения:  Re: Масштабирование документа

Иван Кузьмицкий писал(а):
Идея хоть и странноватая, но полезная. Примеры применений - предпросмотр печати, и уменьшенные изображения окошек, как в Опере.

такого действительно не хватает...

Автор:  Штирлиц [ Среда, 18 Июнь, 2008 10:00 ]
Заголовок сообщения:  Re: Масштабирование документа

А что мешает масштабировать Font?

f: Font;

M,D: INTEGER;

f.Init(f.typeface, M*size DIV D, f.style, f.weight);

Автор:  Valery Solovey [ Среда, 18 Июнь, 2008 10:23 ]
Заголовок сообщения:  Re: Масштабирование документа

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

Автор:  Info21 [ Среда, 18 Июнь, 2008 10:58 ]
Заголовок сообщения:  Re: Масштабирование документа

Valery Solovey писал(а):
... если кроме текста в документе ничего более не нужно, то это, наверное, оптимальный вариант.


А фонт масштабируется чисто математически? Если не ошибаюсь, форма может зависеть от абс. размера. Хуже всего, если зависят ширины. Но могу и ошибаться.

Автор:  Иван Кузьмицкий [ Среда, 18 Июнь, 2008 11:00 ]
Заголовок сообщения:  Re: Масштабирование документа

Что-то мне думается, размер шрифта\пропорция может не совпасть с коэффициентом масштабирования. Плюс могут быть разные шрифты.

Автор:  Борис Рюмшин [ Среда, 18 Июнь, 2008 11:35 ]
Заголовок сообщения:  Re: Масштабирование документа

Иван Кузьмицкий писал(а):
Радикальный выход - перевод GUI BlackBox на OpenGL :)

На AGG.

Автор:  Valery Solovey [ Среда, 18 Июнь, 2008 12:48 ]
Заголовок сообщения:  Re: Масштабирование документа

Не думаю, что векторные шрифты масштабируются не пропорционально. Не вижу в этом смысла, только увеличение объёма работ по его созданию.
Info21 писал(а):
Если не ошибаюсь, форма может зависеть от абс. размера. Хуже всего, если зависят ширины.
А какая форма? Окно текстового редактора?

Автор:  Штирлиц [ Среда, 18 Июнь, 2008 12:57 ]
Заголовок сообщения:  Re: Масштабирование документа

Иван Кузьмицкий писал(а):
Плюс могут быть разные шрифты.

Ну, так и надо масштабировать все шрифты

Автор:  Иван Кузьмицкий [ Среда, 18 Июнь, 2008 14:55 ]
Заголовок сообщения:  Re: Масштабирование документа

Борис Рюмшин писал(а):
Иван Кузьмицкий писал(а):
Радикальный выход - перевод GUI BlackBox на OpenGL :)

На AGG.


AGG вроде помер, давно релизов не было?

Автор:  Илья Ермаков [ Среда, 18 Июнь, 2008 14:57 ]
Заголовок сообщения:  Re: Масштабирование документа

Так он вполне завершённый вроде. Серьёзные продукты его используют.

Если работает - зачем новые релизы? С этой точки зрения и ББ "помер" :-)

Автор:  Иван Кузьмицкий [ Среда, 18 Июнь, 2008 15:35 ]
Заголовок сообщения:  Re: Масштабирование документа

С первого взгляда полтора года безрелизья AGG показались спадом... Так значит, AGG перешёл в фазу почти идеального состояния :)

Вроде кто-то переносил AGG на Оберон, или я ошибаюсь?

Автор:  Штирлиц [ Среда, 18 Июнь, 2008 15:52 ]
Заголовок сообщения:  Re: Масштабирование документа

Перенесли на Object Pascal
http://aggpas.org/

Автор:  Иван Кузьмицкий [ Среда, 18 Июнь, 2008 16:10 ]
Заголовок сообщения:  Re: Масштабирование документа

Вах! А я-то думаю - чем, окромя браузера, смотреть составные документы, сконвертированные в SVG.

Автор:  Info21 [ Среда, 18 Июнь, 2008 18:22 ]
Заголовок сообщения:  Re: Масштабирование документа

Valery Solovey писал(а):
Не думаю, что векторные шрифты масштабируются не пропорционально. Не вижу в этом смысла, только увеличение объёма работ по его созданию.
Info21 писал(а):
Если не ошибаюсь, форма может зависеть от абс. размера. Хуже всего, если зависят ширины.
А какая форма? Окно текстового редактора?


Формы -- в буквальном смысле. Форма буквы. Shape.
Times в мелком кегле и в крупном -- немножко разные.

Автор:  Владимир Паронджанов [ Четверг, 19 Июнь, 2008 11:35 ]
Заголовок сообщения:  Re: Масштабирование документа

Если я правильно понимаю, задача масштабирования документа решена в CorelDRAW. Там есть два типа текста: фигурный (artistic text) и простой (paragraph text). С простым я никогда не работал. А с фигурным работал много. Так вот, при использовании фигурного текста весь экран (включая все изображения, схемы, чертежи, тексты, цифры, буквы и т.д.) изменяется пропорционально. Точно такой же эффект и на распечатке.

Так что могу подтвердить: в CorelDRAW (если использовать фигурный текст) при масштабировании шрифты "не поедут".

Автор:  Info21 [ Четверг, 19 Июнь, 2008 18:01 ]
Заголовок сообщения:  Re: Масштабирование документа

Владимир Паронджанов писал(а):
Если я правильно понимаю, задача масштабирования документа решена в CorelDRAW. Там есть два типа текста: фигурный (artistic text) и простой (paragraph text). ...

Ага. Подтверждение тому, что я назвал.

А если хотеть, чтобы всё выглядело читабельно в разных кеглях (мало ли -- пусть читатель выбирает), то это решение не годится -- именно поэтому и было придумано, чтобы шрифт в малом кегле был немножко другой.

Автор:  Димыч [ Пятница, 20 Июнь, 2008 04:11 ]
Заголовок сообщения:  Re: Масштабирование документа

Иван Кузьмицкий писал(а):
С первого взгляда полтора года безрелизья AGG показались спадом... Так значит, AGG перешёл в фазу почти идеального состояния :)

Вроде кто-то переносил AGG на Оберон, или я ошибаюсь?


Я переносил.
Не хотелось рассказывать до релиза, но, поскольку вопрос поднят, расскажу.

Перевожу не на ВВ, а на XDS. Думаю, что для тех, кто разбирается в ВВ проблем с переводом не будет.

На сегодняшний день переведен на Oberon весь "конвейер" обработки (собственно конвейера там нет, там цепочка rendering buffer - pixel formatter - renderer - rasterizer плюс вспомогательные модули). Непереведенными пока остались часть вспомогательных модулей - некоторые цветовые конвертеры, "заливщики", трансформаторы. Плюс надо отладить модуль поддержки операционной системы для того, чтобы можно было демки переписать. Сейчас я делаю свои "демки" чтобы вести перевод/отладку.
Сложностей там уже нет, нужно только время.

Перевод делается по версии 2.3 порта на Object Pascal. Версии 2.3 - 2.5 отличаются не сильно - ряд алгоритмов доработан, исправлено несколько мелких багов да добавлено несколько модулей. AGG развивается уже лет 8, так что стабильность действительно высокая.

Существенные изменения при переходе на Oberon:
  • Оригинальная версия (C++ и ее порт на Object Pascal) используют одномерный массив(ы) и адресную арифметику. Это было заменено на двумерный динамический массив и индексную арифметику.
  • Графические алгоритмы в самом своем низу опираются на понятие байта (в С++ - unsigned char, в ОР - byte). В XDS я это перевел в SYSTEM.CARD8. Соответственно, вся арифметика по цветовому преобразованию опирается на это (в коде модуля преобразования цвета много конструкций SHORT(LONG(...))).

После перевода нужны будут "редакторские правки". Необходимо будет выправить названия добавленных методов (в AGG очень активно используются overloaded-методы, чего, естественно, нет в Oberon'е) да просто провести чистку кода.

Автор:  Владимир Паронджанов [ Вторник, 01 Июль, 2008 13:09 ]
Заголовок сообщения:  Re: Масштабирование документа

Владимир Паронджанов писал(а):

Так что могу подтвердить: в CorelDRAW (если использовать фигурный текст) при масштабировании шрифты "не поедут".


Я изложил вопрос упрощенно. К этому надо добавить следующее. При масштабировании СОХРАНЯЕТСЯ НЕИЗМЕННОЙ так назыаемая обводка, или абрис (outline) линий, а также обводка букв и цифр фигурного текста. При уменьшении масштаба наступает момент, когда неизменная толщина обводки становится слишком большой и начинает уродовать шрифт. В этом случае толщину обводки приходится корректировать (уменьшать) вручную.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/