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