OpenGLControl - onMakeCurrent

Rund um die LCL und andere Komponenten
Antworten
henlambert
Beiträge: 12
Registriert: Di 7. Mai 2013, 18:32

OpenGLControl - onMakeCurrent

Beitrag von henlambert »

Hi,

ich habe die OpenGLControl-Komponente installiert. Was ich absolut nicht verstehe, das ist die Bedeutung des Ereignisses "onMakeCurrent".

Wann wird diese Prozedur aufgerufen?
Wozu dient sie?
Welche Bedeutung hat der Boolean-Parameter Allow?

gr

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: OpenGLControl - onMakeCurrent

Beitrag von corpsman »

hossa sieh dir mal meine OpenGL Samples an.
Greenfoot nutzt auch OpenGL..

Vereinfacht kann man sagen, dass OpenGL ein eigenes Rendering "Fenster" ist.

Wenn dieses Initialisiert wurde, dann wird onMakeCurrent aufgerufen. In meinen Demos ist das der zeitpunkt um die Graphikengine zu reseten, oder die OpenGL Callbacks zu initialisieren ...
--
Just try it

henlambert
Beiträge: 12
Registriert: Di 7. Mai 2013, 18:32

Re: OpenGLControl - onMakeCurrent

Beitrag von henlambert »

Ich hab mal damit herumprobiert. Sieht so aus, dass die Prozedur immer dann aufgerufen wird, wenn das OpenGL-Fenster neu gezeichnet werden muss. Das geschieht z.B. wenn man ein darüber liegendes Message-Fenster wegblendet oder das Hauptfenster teilweise aus dem Screenbereich rausschiebt (und umgekehrt). Da in meinen Programmen entweder onIdle oder onTimer neu gerendert wird, dürfte onMakeCurrent für mich keine Rolle spielen.

Ich habe mich mal ein wenig auf deiner Webseite rumgeschaut. Das dürfte ja eine kleine Fundgrube sein. Z.B. die Unit über Vektor-Geometrie. Bis auf einige Quaternion-Funktionen ist alles enthalten, was ich für mein Projekt gebrauche. Danke.

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: OpenGLControl - onMakeCurrent

Beitrag von carli »

onMakeCurrent wird immer dann aufgerufen, wenn auf den OpenGL-Context gewechselt wird, also kurz vor dem Zeichnen.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: OpenGLControl - onMakeCurrent

Beitrag von corpsman »

*g* danke,

Quaternionen direkt habe ich biser immer umgangen, sie sind halt gut wenn du "Gimbal Lock" frei drehen willst. In meinem Maw Sample sieht man dass es aber auch ohne Quaternionen gut geht *g*.

Corpsman
--
Just try it

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: OpenGLControl - onMakeCurrent

Beitrag von carli »

henlambert hat geschrieben:Ich hab mal damit herumprobiert. Sieht so aus, dass die Prozedur immer dann aufgerufen wird, wenn das OpenGL-Fenster neu gezeichnet werden muss. Das geschieht z.B. wenn man ein darüber liegendes Message-Fenster wegblendet oder das Hauptfenster teilweise aus dem Screenbereich rausschiebt (und umgekehrt). Da in meinen Programmen entweder onIdle oder onTimer neu gerendert wird, dürfte onMakeCurrent für mich keine Rolle spielen.

Ich habe mich mal ein wenig auf deiner Webseite rumgeschaut. Das dürfte ja eine kleine Fundgrube sein. Z.B. die Unit über Vektor-Geometrie. Bis auf einige Quaternion-Funktionen ist alles enthalten, was ich für mein Projekt gebrauche. Danke.

OffTopic: Eine Quaternionen-Bibliothek kannst du aus dem gwX-Projekt ziehen.

Antworten