|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Direct2D, TDirectCanvas и все-все-все
Дня доброго.
Я тут новенький. С Дельфи профессионально не работаю, моя стезя - 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 - не могу осилить. |