Hi, Ich verwende ein TForm Fenster um OpenGL im Vollbildmodus. Zuerst entferne ich den Fensterrand und die Randelemente, dann setze ich alle Steuerelmente auf unsichtbar. Dann setze ich den Bildschirmmodus auf 640x480,danach wird das Fenster auf wsMaximize geschaltet. Nun starte ich OpenGL und weise ihm das Fenster zu. In der Paint() Funktion lasse ich fals openGL aktiviert ist ein Dreieck zeichnen.<br>
Das Dreieck wurde aber nicht gezeichnet weil VCL nicht wusste wann es Paint() aufrufen soll. Erst wenn ich das Programm mit ESC wieder in den normal Zustand versetzte, wird das Dreieck für einen Sekundenbruchteil angezeigt. Gibt es eine Möglichkeit eine Art Idle Funktion definieren die aufgerufen wird wenn kein anderes Event einläuft? Oder kann man die Paint- funktion dazu bringen permanent zu laufen, ohne dabei die anderen Events abzublocken?
<br>Ich habe jetzt erstamal die Klasse TTimer dazu verwendet den Bildschirm neu zu zeichnen. Und dann entsteht das oben genannte ruckeln, es sieht aus als gäbe es keinen Doppelbuffer. Kann mir jemand helfen ?<br>
War es ein Fehler TForm zu verwenden, ist diese Fensteranwendung zu langsam für OpenGL ?<br>
Wie müsste bzw. könnte ich überhaupt, eine WndProc schreiben die das oben genannte für mich regelt ?
Das Dreieck wurde aber nicht gezeichnet weil VCL nicht wusste wann es Paint() aufrufen soll. Erst wenn ich das Programm mit ESC wieder in den normal Zustand versetzte, wird das Dreieck für einen Sekundenbruchteil angezeigt. Gibt es eine Möglichkeit eine Art Idle Funktion definieren die aufgerufen wird wenn kein anderes Event einläuft? Oder kann man die Paint- funktion dazu bringen permanent zu laufen, ohne dabei die anderen Events abzublocken?
<br>Ich habe jetzt erstamal die Klasse TTimer dazu verwendet den Bildschirm neu zu zeichnen. Und dann entsteht das oben genannte ruckeln, es sieht aus als gäbe es keinen Doppelbuffer. Kann mir jemand helfen ?<br>
War es ein Fehler TForm zu verwenden, ist diese Fensteranwendung zu langsam für OpenGL ?<br>
Wie müsste bzw. könnte ich überhaupt, eine WndProc schreiben die das oben genannte für mich regelt ?
Comment