|
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 29
|
|
Direct2D, TDirectCanvas и все-все-все02.09.2013, 16:37. Показов 4711. Ответов 6
Метки нет (Все метки)
Дня доброго.
Я тут новенький. С Дельфи профессионально не работаю, моя стезя - 1С 8.2. В 1с есть проблема - картинки, при выводе которых на экран/принтер через графическую систему 1С - идет отжор памяти без ее освобождения. Немного об GDI от 1С: окна Windows ей нужны только для масштабирования окон (но не элементов) а также для отлова событий от ОС (WM_CLOSE, и.т.д.). Вся отрисовка - своя, основана на перехвате WM_PAINT Запилил addins через отдельную dll, в которой формочка (окно), отдельное от графической системы 1С (1С не перехватывает его WM_PAINT). На формочке - TImage. Все нормально, супергуд. 10 метровые фотки летают... Но хочется большего. По умолчанию - GDI не поддерживает TIFF (а это важно, часто сканы в 1С - это сканы сопроводиловки - Ч/Б печать). Впилил GDI+. Но даже по ощущениям увидел, что медленней стало. Замерил - примерно в 5 раз медленнее таже конвертация из bmp в jpeg идет. Бида. Узнал про поддержку Direct2D в Win7, начал экспериментировать. Увидел, что она действительно работает - например масштабирование рисунка через TDirect2DCanvas.RenderTarget выполняется раза в 2.5 быстрее, чем через GDI (реализацию приведу чуть позже) и при это загружен GPU видюхи на 17-20 процентов. Профит. Но вот как потом получить трансформированное изображение с TDirect2DCanvas - не могу осилить.
0
|
|
| 02.09.2013, 16:37 | |
|
Ответы с готовыми решениями:
6
Свернуть все процедуры Все про то же: печать |
|
angstrom
|
|
| 02.09.2013, 16:41 | |
|
Странно, GDI+ не может быть медленнее по-определению чем GDI.
|
|
|
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 29
|
||||||
| 02.09.2013, 23:27 [ТС] | ||||||
|
И, это. Есть какой-нибудь наследник от TImage, который рисует на TDirectCanvas, а то я начал его писать и не хватает мозгов допилить.
Добавлено через 6 часов 40 минут Вот этот кусок кода:
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 29
|
||||||
| 08.10.2013, 12:31 [ТС] | ||||||
|
Вернемся к старым песням.
С конвертацией изображений разобрался, все быстро и четко. Особенно понравился новый формат HD-Photo (JPEG-XR) на основе вейвлет сжатия. На малом качестве он творит чудеса, вытягивая картинку. Но мы движемся дальше. Теперь моя цель - создать свой компонент на основе TImage который будет отрисовывать Direct2D графику. Вот первые наброски:
Чего пока нет: 1) Годной обработки ошибок. 2) Поддержки старого GDI (2-х режимности, ну это нетрудно). Есть много вопросов: 1) Как перехватить ресайз TImage. Именно ресайс. При отлове Paint - этих сообщений дико много, по каждому чиху (движение формы, например) - и отрисовка кадрируется. Даже после предварительного масштабирования до размера экрана. Смотрел как сделано в типовой Дельфи - вроде все также, однако не тормозит. Ниасилил. 2) Изображение можно масштабировать 2 методами - через WIC (Интерфейс IWICBitmapScaler) и непосредственно при rendere через SetWorldTransform(). В первом случае можно задать режим масштабирования (бикубический, билинейный, ближайший), однако я не уверен, что там (в WIC) используется Direct2D (обработка через GPU). Во втором случае точно используется GPU (мерил через MSI Afterburner), однако не понятно, как указать режим масштабирования. Есть мысли? Добавлено через 18 часов 14 минут Мертвовато что-то. Где все спецы?
0
|
||||||
|
Заблокирован
|
|
| 08.10.2013, 20:32 | |
|
Hadgehogs
Да скачайте модуль TIFF и GDI будет его поддерживать. Или поставьте KOL. Там есть очень хороший модуль этого формата. Добавлено через 5 минут Hadgehogs, И вообще, бросьте этот Direct2D Это просто преждевременный выкидыш. Как, например, Виста. Он сырой, нет полноценной обещанной аппаратной поддержки. Привязка к определённой системе. И вообще муть...
0
|
|
|
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 29
|
|
| 08.10.2013, 21:36 [ТС] | |
|
Этот сырой Direct2D выигрывает в 1.5-2 раза в сравнении с GDI. А если tiff - тогда там GDI+, а там по скорости еще печальнее.
Он сырой, нет полноценной обещанной аппаратной поддержки. Привязка к определённой системе. Спасибо, посмеялся. Ну да, привязка к WinAPI (ну или ее продолжателю в виде набора интерфейсов, не суть). А некоторые еще и под Яндекс.API пишут - вот это я понимаю, экстремалы.
0
|
|
|
Заблокирован
|
|
| 11.10.2013, 09:00 | |
|
Hadgehogs,
У него привязка к 7 и 8-ке А у людей до сих пор ХP и более древние системы. Можете ржать сколько хотите, но выигрыш в 2 раза - смешон. Если был бы на порядок...
0
|
|
| 11.10.2013, 09:00 | |
|
Помогаю со студенческими работами здесь
7
Опишите все функции в Delphi7 Как перебрать все CheckBox' Удалить из строки все звездочки Сложить все нечетные числа от 1 до 15. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|