OpenGL Offscreen Context (Windows)
-
Hallo Community,
ich versuche gerade das offscreen-rendern auf Windows hinzubekommen. Es scheitert weder an den FBOs, noch daran ein Fenster unsichtbar zu amchen sondern lediglich überhaupt an dem unverständniss überhaupt ein Fenster unsichtbar machen zu müssen.
Ich habe jetzt bestimmt 2 Stunden gegoogelt und mehr oder weniger immer dasselbe (PBO und Hidden Window) gefunden.Was ist mit der ab GL3.x verfügbaren Attribs extension? Immerhin steht in den docs
If the OpenGL context version of <hglrc> is 3.0 or above, and if
either the <hdc> parameter of wglMakeCurrent is NULL, or both of the
<hDrawDC> and <hReadDC> parameters of wglMakeContextCurrentARB are
NULL, then the context is made current, but with no default
framebuffer defined.Einfache Frage, wie kann ich damit einen Context erzeugen der kein eigenes Fenster benötigt?
Es wäre auch i.O temporär den Desktop zu "entführen" und anschließend das DC fallen zu lassen wenn das geht.
Vielen Dank schon einmal für Tipps
Grüße Kalaeido
-
Das Problem mit OpenGL unter Windows ist, dass du erstmal einen OpenGL Context brauchst, bevor du an die wglCreateContextAttribsARB() Extension überhaupt rankommst. Der von dir zitierte Abschnitt hat übrigens nichts mit offscreen Rendering zu tun. Es sollte möglich sein, einen OpenGL Context auf einem Memory DC zu erzeugen, der wird dann aber wahrscheinlich nicht die Grafikkarte verwenden. Der ganze OpenGL Kram ist leider ziemlich broken...
-
das windowhandle vom desktop bekommst du mittels GetDesktopWindow.
normalerweise sind rendering APIs fuer die ausgabe, nicht fuer offscreen rendering alleine. je nachdem was du vor hast waere vielleicht ein anderer weg besser.