Also ab Vista kann man auch mit
GDI Screenshots von
DirectX- und
OpenGL-Fenstern machen. Wichtig ist glaube ich nur, dass man beim BitBlt vom Desktop auf das Bitmap CAPTUREBLT beim mit angibt. Zumindest wenn man transparente (layered) Fenster mit drauf haben will, braucht man das. Daher nehme ich an, dass man es für
DirectX- und
OpenGL-Fenster auch braucht.
Allerdings klappt das nur, wenn der DWM läuft. Das heißt, Aero muss aktiviert sein.
Falls du es aber hinkriegst, mit
DirectX einen Screenshot zu erzeugen, würde mich das auch interessieren. Das hatte ich vor Jahren mal probiert, aber hatte das gleiche Problem wie du: Überall stand was anderes und nichts davon funktionierte.
GDI ist aber langsamer wie
DirectX und ich muss auch Rücksicht auf die Host-Anwendung nehmen.
Ansonsten wären das 5 Zeilen Code da ich alle Frames zum rendern in meiner
DLL direkt abgreifen kann.
Aber wie gesagt muss es mit
DirectX machen da Win8 kein DWM mehr unterstützt.. was noch dazu kommt.
gruss