glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
// ZeichenCode
SwapBuffers(DC);
Das funktioniert leider nur für den ersten Renderkontext, also der der hier als 2. abgearbeitet wird. Der zweite Kontext bleibt komplett schwarz. Nun das Seltsame: Sobald ich bei der Aktivierung des OrthoModuses des zweiten Kontextes statt
also beide Dimensionen auf Panel1 ausrichte, dann wird wenigstens das gezeichnet was gezeichnet werden soll. Leider aber total verzerrt, was logischweise daran liegt das Panel1 nicht die Selbe Größe hat wie Panel2.
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Hört sich für mich sehr bizarr an. Probiere bitte einmal sämtliche von Dir genutzten Funktionen beim Zeichnen in den exakt gewünschten Modus zu bringen. Ist der Tiefenbuffer vorm rendern stets deaktiviert? Wird der Viewport bzw. die Perspektive stets richtig ausgerichtet und nicht durch eine andere Veränderung der Projektionsmatrix verändert? Rufe zur Sicherheit hinterm setzen der Modelview ebenfalls nochmals ein glloadidentity. Schlägt dies ebenfalls fehl, lade sonst noch einmal den Source Code für einen Windows-Nutzer hier hoch. Vielleicht kann dieser das Problem dann erkennen. Ich tippe allerdings sehr stark darauf, dass ein State an einer Stelle nicht dem erwarteten werd entspricht. (sofern man einen alten, amoklaufenden Treiber ausschließt *g). Von dem Voodoo (Dimension von Panel1, statt Panel2) solltest Du Dich entfernen. Um hier seinen Spass zu haben, muss man schon ziemlich viel im Programm machen und einen Pointer verbogen haben - however: Selbst dann hilft Voodoo nicht weiter, sondern verwirrt nur. Also in jedem Fall also so setzen, wie Du es gerne möchtest und dann der Fehlersuche eine Chance geben.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Ich habe eine Anwendung entwickelt, die beliebig viele Fenster öffnen kann. Jedes dieser Fenster dient als Anzeigebereich für eine OpenGL Szene. Das klappt auch wunderbar. Ich habe mal als Test 30 Fenster geöffnet und in jedem Fenster eine Szene sich drehen lassen.
Hier mein vorgehen (auszugsweise aus meiner Form-Komponente):
Code:
// OpenGL Initialisierung wird im Hauptformular durchgeführt
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.