2016-03-10 6 views
0

Кто-нибудь знает способ применения аффинных преобразований в окнах, используя диспетчер окон рабочего стола или их комбинацию с DirectX?Применение аффинных преобразований к окнам с использованием DWM/DX?

Подумайте о Flip3D в Windows 7 - если бы я хотел сделать такие переходы в прямом эфире на рабочем столе.

Уточнение: Вопрос касается только окон с поддержкой DWM. Таким образом, Windows> = 7.

ответ

-1

Microsoft имеет 2D affine transform effect в пределах built-in effects

Пример из documentation в C++ будет:

ComPtr<ID2D1Effect> affineTransformEffect; 
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect); 

affineTransformEffect->SetInput(0, bitmap); 

D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F(0.9f, -0.1f, 0.1f, 0.9f, 8.0f, 45.0f); 

affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix); 

m_d2dContext->BeginDraw(); 
m_d2dContext->DrawImage(affineTransformEffect.Get()); 
m_d2dContext->EndDraw(); 

которая выполняет следующую матричную операцию:
https://msdn.microsoft.com/dynimg/IC554554.png

+0

То, что я требовал, не преобразуется в ИЗОБРАЖЕНИЕ, а в ОКНО. –

+0

Эта награда не должна быть автоматически предоставлена. Ответ не имеет отношения к вопросу! –

+1

Но вы приняли ответ ... –

-1

Для вызова Win95/XP/Win2000 была создана библиотека ed "madotate". Это был API C++ с открытым исходным кодом для создания 3D-флип и т. Д. На окнах. Вероятно, не потребуется слишком многого, чтобы адаптироваться к DWM, если он еще не был.

+0

Почему вы думаете, что это библиотека с открытым исходным кодом? Из того, что я знаю, это программное обеспечение с закрытым исходным кодом. Невозможно найти ссылку на «библиотеку с открытым исходным кодом» под этим именем. –

+0

У меня есть источник библиотеки, который я загрузил несколько лет назад. Позвольте мне посмотреть, смогу ли я найти ссылку. – user5976242

+0

Я изначально загрузил это из soureforge. Скорее всего, это привело меня к открытию. Я не вижу в файлах лицензии с открытым исходным кодом. Тем не менее, методы, которые вы ищете, скорее всего, здесь. http://www.ksky.ne.jp/~seahorse/mtate2/file/mtate20202src.lzh – user5976242