Fensterausschnitt in OpenGL
-
Tobsbeam schrieb:
Bei mir wird zwar das Bild verschoben und verzerrt, aber es wird trotzdem noch der gesamte client Bereich vollgezeichnet. glViewport bringt irgendwie nix.
was genau willst du denn erreichen? Und was wird vollgezeichnet?
-
Ich will in mein Fenster ein Bild zeichnen. Das soll aber nicht das ganze Fenster füllen. Also hab ich gedacht, ich sag OpenGL, dass es nur in ein best. Rechteck zeichnen soll. Das geht auch, aber OpenGl zeichnet noch einen Hintergrund dazu und der lässt sich mit glViewport nicht beeinflussen, sondern geht immer über das ganze Fenster.
-
Was willst du denn anstatt des Hintergrundes haben?
-
Tobsbeam schrieb:
Ich will in mein Fenster ein Bild zeichnen. Das soll aber nicht das ganze Fenster füllen. Also hab ich gedacht, ich sag OpenGL, dass es nur in ein best. Rechteck zeichnen soll. Das geht auch, aber OpenGl zeichnet noch einen Hintergrund dazu und der lässt sich mit glViewport nicht beeinflussen, sondern geht immer über das ganze Fenster.
wieso verschiebst du nicht nen texturierten quad / surface (bzw nen "rechteck" bevor ich wieder verbal gebashed werde) so hin, dass es passt? sollte doch einfacher sein
-
Im Rest des Fensters werden schon andere Sachen gezeichnet (ohne OpenGL). Die werden dann aber dummerweise von OpenGL überzeichnet. Quad verschieben bringt auch nix. Ideal wäre es, wenn ich z.B. ein RECT übergebe, in dem dann OpenGl seine Sachen zeichnet, und der Rest des Fensters bleibt unberührt.
-
Tobsbeam schrieb:
Im Rest des Fensters werden schon andere Sachen gezeichnet (ohne OpenGL). Die werden dann aber dummerweise von OpenGL überzeichnet. Quad verschieben bringt auch nix. Ideal wäre es, wenn ich z.B. ein RECT übergebe, in dem dann OpenGl seine Sachen zeichnet, und der Rest des Fensters bleibt unberührt.
Wenn du OpenGL initialisierst, übergibst du ja an wglCreateContext (Windows) den DeviceContext (HDC) auf dem gezeichnet werden soll. Dieser darf sich einfach nicht über das ganze Fenster erstrecken. (Tut er wenn GetDC benutzt.)
-
Das bringt mich erst mal weiter. Danke schön.
-
Es geht aber einfacher ein farbiges Rechteck zu zeichnen... oder willst du es unbedingt hardwarebeschleunigte Farbe?

-
Was willst du den genau erreichen? Willst du z.B. wie in Maja oder anderen 3D Programmen ein großes Fenster in dem dann ein Objekt z.B. aus 4 verschiedenen Ansichten angezeigt wird? Oder willst du in einem Teil über deiner Szene noch z.B. einen Hud Zeichen? Jenachdem was du erreichen willst kannst du z.B. in eine Textur rendern und die dann orthogonal in einem Bereich anzeigen, oder direkt orthogonal irgendwas anzeigen, etc. pp.
Oi, ich hab gerade erst gesehn dass du ja gesagt hast das du dort nicht OpenGL erzeugte Anzeigen hast, sorry.
-
Also meine anfängliche Frage hat sich jetzt geklärt. Ich hab einfach ein Static Control auf mein Fenster gelegt und dessen Handle an OpenGL übergeben. So wird nur auf dem Static gerendert. Jetzt hab ich noch ne Frage, kann man in OpenGL sinnvoll Bilder darstellen? Z.B. Urlaubsbilder also keine Texturen. Später will ich die Bilder dann noch ein bisschen animieren, darum nehm ich OpenGL.
-
Du kannst z.B. deine Bilder aus texturen zusammensetzen.