![]() |
OpenGL oder GLScene setzt FPU-CW um
Hallo Leute,
eine Anwendung, die mehrere sehr genaue und komplexe Rechnungen ausführt stellt ihre Ergebnisse u.a. mit GLScene dar. Das Problem ist nun, dass sobald man GLScene startet die FPU Precision auf Double umgestellt wird. Mit hilfe von Set8087CW können wir das zurücksetzten, aber warum macht das GLScene oder OpenGL überhaupt, und wo? user0 P.S.: Im GLScene Package wird das FPU Control Word immer auf Extended Precision und no Exceptions geschaltet ($133F). Also müsste OpenGL dafür verantwortlich sein. Lädt OpenGL irgend eine DLL? Bekanntlicher weise kann ja das Laden von DLLs das FPUCW umschalten. |
Re: OpenGL oder GLScene setzt FPU-CW um
Jetzt wird´s noch merkwürdiger: Auf mehreren PCs wird das CW nur einmal umgeschaltet. Auf einem mehrfach. :shock:
user0 |
Re: OpenGL oder GLScene setzt FPU-CW um
Zitat:
Delphi-Quellcode:
// IsMesaGL
// function IsMesaGL : Boolean; begin Result:=(GetProcAddress(Cardinal(GLHandle), 'glResizeBuffersMESA')<>nil); end; initialization ContextList := TThreadList.Create; Set8087CW($133F); // <--<< finalization CloseOpenGL; ContextList.Free; // We don't need to reset the FPU control word as the previous set call is process specific. end. Zitat:
|
Re: OpenGL oder GLScene setzt FPU-CW um
Hallo turboPASCAL,
erstmal Danke für deine Antwort. Das Set8087CW($133F); in der OpenGL1x.pas habe ich auch gefunden, aber beim Öffnen des 3D-Fensters wird das CW nicht auf $133F sondern auf $127F bzw. $027F geschaltet. Laut ![]() :coder2: Das Programm lädt GLScene nur einmal. Hätte das nicht funktioniert, hätte es die gesammte 3D-funktionalität abgeschaltet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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