![]() |
Fehler beim OpenGL stoppen
Hallo,
auf einer extra Form lasse ich per OpenGL Berechnungsergebnisse grafisch ausgeben und der Benutzer kann diese dann mit der Maus rotieren, zoomen und bewegen. Mein Problem was ich jetzt dabei habe ist, dass das Programm die OpenGL-Ausgaben weiterberechnet, selbst wenn die Form geschlossen wird. Also dachte ich mir, dass die Lösung des Problems darin liegt, in FormClose einfach das OpenGL wieder zu beenden:
Delphi-Quellcode:
Allerdings bricht er mit einer Exception ab, markiert "DeactivateRenderingContext" und meint dazu "Unbalanced deactivation".
procedure TOpenGLOutput.FormClose(Sender: TObject;
var Action: TCloseAction); begin OpenGLInit := FALSE; DeactivateRenderingContext; DestroyRenderingContext (RC); CloseOpenGL; end; Wo ist hier das Problem und wie kann ich das OpenGL korrekt beenden, wenn die Form geschlossen wird? Grüße, Mario |
Re: Fehler beim OpenGL stoppen
Ok, hat sich erledigt.
Hab es aus dem FormClose genommen und leite jetzt die Initialisation / Finalisation "per Hand" ein, vorher war es in OnFormCreate / OnFormClose, oder auf Delphisch:
Delphi-Quellcode:
Nun meckert er nix mehr rum und tut, wie er soll. :)
{ ************************************************************ }
procedure TGS_frkMain.Display3DActionExecute(Sender: TObject); { ************************************************************ } begin if (Length (CalculationResults) <= 0) then Exit; with TGS_frkOpenGL.Create (Self) do begin AssignResults (CalculationResults); InitializeOpenGL; // OpenGL initialisieren ShowModal; ShutDownOpenGL; // OpenGL finalisieren Free; end; end; ... { ************************************************************ } procedure TGS_frkOpenGL.ShutDownOpenGL; { ************************************************************ } begin Application.OnIdle := nil; OpenGLInit := FALSE; DeactivateRenderingContext; DestroyRenderingContext (RC); CloseOpenGL; end; Grüße, Mario |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz