Registriert: Fr Aug 29, 2003 16:34 Beiträge: 34 Wohnort: Black Forrest
Hallo Leutz,
ich hatte zwar alle Tutorials durchgelesen und die Beispiel Source haben auch funktioniert. Nun wollte ich bei meinen eigenen Projekt einfach ein Grafik Ausgabe (Open GL) einbauen.
Zunächst mal wollte ich testen ob es überhaupt funktionieren wird. Da ich es auf einen Panel anzeigen wollte. Oder ist das nicht der richtige Weg ?
DeactivateRenderingContext; // Deactivates the current context
wglDeleteContext(myRC);
ReleaseDC(Form1.Panel2.Handle, myDC);
end;
Beim Form.Create rufe ich MyGLInit auf. Und beim Form.Close rufe ich dieses auf MyDeInit
Und um zu testen (sieht sicher verwirrt aus weil so gemixt ist. hatte halt verschiedenes ausprobiert) rufe ich diese Procedure bei ButtonClick auf um zu sehen ob was passiert.
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glViewport(0,0,ClientWidth,ClientHeight);
glOrtho(0,640,0,480, 0,128);
glBegin(GL_TRIANGLES);
glVertex3f(-1.0,-1.0, 0.0);
glVertex3f( 0.0, 1.0, 0.0);
glVertex3f( 1.0,-1.0, 0.0);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1,0,0);
glVertex3f(-1.0,-1.0, 0.0);
glColor3f(0,1,0);
glVertex3f( 0.0, 1.0, 0.0);
glColor3f(0,0,1);
glVertex3f( 1.0,-1.0, 0.0);
glEnd();
end;
Aber es gibt zwar keine Fehler aus, nur es passiert nix. Daher denke ich mal ich liege hier irgendwo falsch oder habe was vergessen. Könnte mir einer helfen wie man das auf einer Panel ausgeben kann ? Danke euch.
[/code]
_________________ Mfg[-Darty-] - Gehörlose Delphianer gibt es selten -
Registriert: Fr Aug 29, 2003 16:34 Beiträge: 34 Wohnort: Black Forrest
Sascha Willems hat geschrieben:
Wo ist denn dein SwapBuffers(DC) ? Ohne dass bleibt der gerenderte Pufferinhalt im hinteren Puffer und ist natürlich nicht sichtbar.
Also als ich am Ende
Code:
SwapBuffers(MyDC);
hinnzugemacht habe dann passiert endlich etwas. Nur ... sieht es so aus wie ein Art abgestürztes WirrWarr Grafik bei einen Spiel. Weiss nicht wie ich es beschreiben soll auf jedenfalls denke ich fehlen mir noch befehle das der Puffer zuerst geleert wird oder ähnliches. Müsste ich jetzt noch mal suchen. Aber falls Problem bekannt ist wäre schön wenn einer es sagen könnte. Danke schon mal.
_________________ Mfg[-Darty-] - Gehörlose Delphianer gibt es selten -
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Das ist kein Problem, sondern normal. Wenn du die Puffer nicht explizit leerst (was oben nicht getan wird), dann ist deren Inhalt undefiniert, also oft "Grafik-Wirr-Warr".
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glTranslatef(-5.0,-5.0,-25);
glBegin(GL_QUADS);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(10.0, 0.0, 0.0);
glVertex3f(10.0, 10.0, 0.0);
glVertex3f(0.0, 10.0, 0.0);
glEnd();
// Hinteren Puffer nach vorne bringen
SwapBuffers(MyDC);
end;
klappts nun ...
Mich wunderts nur das ich die Procedure zwar beim Klick ausführe funzt. Aber bei Form Create oder Rezise funktioniert es nicht. Mit Idle dagegen schon. Aber es flackert dabei ? Kann man da was dagegen tun ?
_________________ Mfg[-Darty-] - Gehörlose Delphianer gibt es selten -
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Doublebuffering aktivieren (siehe auch unsere Tutorials). Im Create kanns ja kaum klappen, da danach deine Form neugezeichnet und somit der Frontpuffer überschrieben wird. Aber das sind OpenGL-Basics die in unseren Tuts geklärt werden.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja...da du die Initialisierung ja schon fast geschafft hast, wärs absolut richtig mal die Tuts hier durchzuarbeiten. Das Tut.1 beschägtigt sich nochmal mit der Initialisierung.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Fr Aug 29, 2003 16:34 Beiträge: 34 Wohnort: Black Forrest
Ja ich danke euch für euer Hilfe. Mir fällt nur auf das es sich auf ein Win2000 anders verhält als auf einen XP beim Resizen vom Form. Aber das muss ich mir erst mal genauer angucken.
Thx nochnmals..
_________________ Mfg[-Darty-] - Gehörlose Delphianer gibt es selten -
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.