Announcement

Collapse
No announcement yet.

Ruckel Zuckel von OpenGL in einem TForm Fenster

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ruckel Zuckel von OpenGL in einem TForm Fenster

    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 ?

  • #2
    Ok , habs schon gerausgefunden !! Ich muss glFlush() aufrufen UND ich darf die flags PFD_SUPPORT_GDI und PFD_DOUBLEBUFFER nicht gleichzeitig setzen. Es läuft jetzt ruckelfrei. Ich denke, dass ich jetz die WndProc()

    Comment

    Working...
    X