Zum Thema :
Wenn ich eine von mir unter Linux entwickelte OpenGL Anwendung unter Windows Compilieren lasse, und diese dann ausführen möchte, dauert das erzeugen des Renderingcontextes ewig, und ich meine nicht 2-3 Sekunden sondern auch mal 30-100 ich hatte auch schon fälle da wurde es nie Fertig. Wer das gerne mal ausprobieren will, dem sei der Anhang empfohlen außer TOpenGLControl braucht das nur die normale LCL.
So nun habe ich also rausgefunden, dass wenn ich das Programm "verstecke" und wieder "zeige", dass dies das ganze beschleunigt.
Damit ist die Antwort auf mein Problem quasi durch einfügen folgender Zeilen am Ende des Procedure TForm1.OpenGLControl1MakeCurrent(Sender: TObject; Var Allow: boolean);
bereits gegeben.
Code: Alles auswählen
{$IFDEF WINDOWS}
Form1.Invalidate;
{$ENDIF}
Nur verstehen tu ichs eigentlich nicht. Könnt ihr das Problem nachvollziehen ? Bzw. gibt es eine elegantere Lösung, denn durch meinen "Hack" wird die OpenGLControl1MakeCurrent nun 3 mal aufgerufen, bis dass die Anwendung "Nutzbar" wird. Unter Linux ists nur 2 mal. Gerade wenn man in OpenGLControl1MakeCurrent alle Spielegraphiken neu lädt, kann das schon unangenehm werden.
Gruß
Corpsman