Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: DirectX LayeredWindow

  Alt 2. Aug 2011, 17:37
Naja, das ist halt genau auch des Pudels Kern: DirectX ist ein Overlay über dem, was die WinAPI so zeichnet, und folglich auch über einem Layered Window.* Aus der normalen WinAPI heraus kommt du da auch nicht zwischen/vor/zuvor, da beißt die Maus keinen Faden ab. Leider. Man muss zwangsweise an den Backbuffer des dem Fenster zugewiesenen D3D Devices ran, und idealerweise auch die Bufferflips mitbekommen (-> Hooken). Eine D3D-Anwendung, die nicht explizit eine Schnittstelle für solche Aktionen bietet, ist meines Wissens nach nicht anders beizukommen. (Hatte vor 2-3 Jahren eine sehr ähnliche Such-Odyssee.)

*) Technisch ist es sogar so, dass DX-Buffer erst "ganz hinten" in der Verarbeitung der Grafikkarte, knapp vor Ausgabe ans Bildschirmkabel sozusagen, die entsprechenden Bereiche des "normalen" Framebuffers übernageln. Aus Sicht von Windows sind solche Fenster i.A. einfach schwarz (mit Ausnahme von Aero).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 2. Aug 2011 um 17:40 Uhr)
  Mit Zitat antworten Zitat