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 - не могу осилить.
|