Всем доброго времени суток!
Есть задача подружить Qt с DirectX, при чем не просто подружить, а чтобы можно было рисовать прозрачные виджеты поверх DirectX виджета.
Подобное уже реализовано на OpenGL -
http://doc.qt.nokia.com/qq/qq26-openglcanvas.html.
Есть и реализация DirectX 11 виджета -
http://jholewinski.org/blog/direct3d-11-with-qt-4/.
В этой реализации можно даже рисовать поверх DirectX виджета свои виджеты, но только не прозрачные.
Есть так же проект Angle Project который трансформирует вызовы OpenGL API в DirectX, и его же собираются использовать в Qt 5 для программирования Metro программ -
http://qt-project.org/wiki/Qt-5-on-Windows-8-and-Metro-UI. Но нужен именно чистый DirectX, т.к. Angle скорее всего скажется на производительности. И лично я не представляю, как, например, шейдеры будут переноситься.
В связи с этим хотелось бы спросить, а как лучше на текущий момент подружить Qt (4.8.2) c DirectX?
Пока в голове вертиться два варианта:
1. Отлавливать paintEvent у всех виджетов, получать с них картинку и рисовать в качестве текстуры в Directx, а paintEvent блокировать. Но сходу реализовать не получилось, т.к. при блокировании paintEvent все рисуются ректанглы виджетов - видимо само WinApi их рисует, а не Qt.
2. Включиться в разработку Qt и написать QGraphicScene с использованием DirectX. Этот вариант наиболее трудоемкий, но самый наверное надежный.
Очень хочу услышать ваше мнения по предложенным вариантам или услышать ваши.
Спасибо за внимание!