![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Онегин |
|
|||
Unregistered |
Вопрос, как средствами GDI реализовать такой эффект, как объемный текст? Выглядит как тест, а за ним другим цветом, создавая объем со смещением в один пиксел, повторяется он же.. много раз... но если именно так и делать, то получится довольно долгая прорисовка. К тому же текст преобразован в Path и выводится примитивами...
|
|||
|
||||
s-mike |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Если хочется быстрого и качественного вывода, то я бы посоветовал воспользоваться GDI+, Direct X или OpenGL.
|
|||
|
||||
Guest |
|
|||
Unregistered |
GDI+ пробовал, но в при моих количествах примитивов он тоже заметно тормозит..
А DirectX, и GL наверное в векторных редакторах наверное сильно круто.. хотя... Я вот думал, может какие алгоритмы хитрые.. или может настройки какие быстрые в Pen'e или в Brush'e.. |
|||
|
||||
s-mike |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Быстрее GDI+ ты не найдешь. Его многие векторные редакторы используют. А GDI - по сути древняя библиотека, созданная для старых 16-разрядных винд. Так что ни о какой оптимизации под процессор или видеокарту речи не идет. Поэтому GDI такое тормозное. Так что... смотри сам, может у тебя отрисовка проводится неоптимально?
|
|||
|
||||
ДЫМ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Кстати, немного не в тему.
s-mike, а ты сравнивал скорость прорисовки примитивов GDI и GDI+. Попробуй на досуге. Я сравнивал - получилось, что GDI все-таки быстрее. Просто у GDI+ больше возможностей.
Аппаратная поддержка в GDI+ только декларировалась, но на сей день так и не реализована. |
||||
|
|||||
s-mike |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Как-то сравнивал. GDI+ естественно оказалось быстрее. ДЫМ, возможно это из-за того, что у тебя при рисовании было включено сглаживание. В GDI сглаживания линий вообще нет (или приходится делать вручную). Но если ты так настаиваешь, то сравню еще раз. |
|||
|
||||
ДЫМ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Сравнил? Если нет, то прикркпляю тест - посмотри на досуге. Присоединённый файл ( Кол-во скачиваний: 25 ) ![]() |
|||
|
||||
s-mike |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
А ты какой версией заголовочных файлов (и чьей) пользуешься? У меня такие фокусы не проходят:
У меня результаты такие:
Я так понимаю, GDI+ явно выигрывает ![]() Добавлено @ 06:55 С раскомментированной строчкой
Это сообщение отредактировал(а) s-mike - 1.7.2005, 06:56 |
||||||
|
|||||||
s-mike |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Прошу прощения, это у меня заголовки старые. |
|||
|
||||
ДЫМ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Прошу прощения, это у меня заголовки старые.
Что-то я не понял, что в итоге? Я заголовки скачивал здесь http://www.progdigy.com/modules.php?name=D..._op=getit&lid=8 Вот такие результаты у меня для 500 прямоугольников. (комп у меня не сильно крутой)
Получается, что разницы особой нет. |
|||
|
||||
s-mike |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Со скоростью я действительно немного погорячился, все-таки медленнее. НО! Нужно смотреть глубже. Попробуйте рисовать стандартным GDI линии со сглаживанием, выводить текст со сглаживанием, загружать большие изображения и масштабировать их, я уже не говорю об AlphaBlending. Это все делается не просто медленно, а очень медленно. Прирост производительности в GDI+ часто более 300%. Так что можно признать, что GDI+ библиотека не для простого быстрого вывода, а для качественного быстрого вывода графики. И пожалуй с ней мало что сравнится.
|
|||
|
||||
ДЫМ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Абсолютно согласен. ![]() Туда бы еще и аппаратную поддержку... Будем ждать. Это сообщение отредактировал(а) ДЫМ - 3.7.2005, 02:52 |
|||
|
||||
Coriolis |
|
|||
![]() Ищущий ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 22.8.2005 Репутация: нет Всего: 1 |
Для вывода объёмного текста с толстой тенью (не в один пиксель, а напр в 10) можно делать так:
1. выводим текст цветом тени на дополнительную поверхность (спрайт, битмап, - не важно). 2. копируем эту поверхность на рабочую 10 раз, каждый раз смещая координату(ты) на пиксель в нужную сторону 3. на рабочую поверхность сверху отрисовываем наш текст. В итоге имеем: не зависимо от толщины тени текст выводится два раза. Ну а если изменение текста планируется крайне редко, то тень можно отрисовать (любым способом) на дополнительной поверхности один раз, сверху нарисовать сам текст. Затем при перерисовке экрана просто копируем эту готовую поверхность на рабочую. Выигрыш в производительности получится за счёт того, что для отрисовки очередного слоя производится простейшее копирование растра (с цветовым ключем естественно), а не отрисовка всей надписи заново. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |