2
// This unit is part of the GLScene Engine https://github.com/glscene
5
Platform independant viewer.
8
13/06/12 - Yar - Bugfix synchronization control for Mac OS (thanks to pchev)
9
23/08/10 - Yar - Replaced OpenGL1x to OpenGLTokens
10
30/04/10 - Yar - Added vertical synchronization cntrol for Linux (by Rustam Asmandiarov aka Predato)
11
17/09/07 - DaStr - Replaced $IFNDEF KYLIX to $IFDEF MSWINDOWS in
12
SetupVSync() because wgl* functions are Windows-specific
13
12/09/07 - DaStr - Fixed SetupVSync() function (Bugtracker ID = 1786279)
14
Made cross-platform code easier to read
15
12/07/07 - DaStr - Added SetupVSync
16
30/03/07 - DaStr - Another update after the previous fix (removed class())
17
Added TVSyncMode type and constants.
18
24/03/07 - DaStr - Update for Windows after the previous fix
19
21/03/07 - DaStr - Improved Cross-Platform compatibility
20
(thanks Burkhard Carstens) (Bugtracker ID = 1684432)
21
17/03/07 - DaStr - Dropped Kylix support in favor of FPC (BugTrackerID=1681585)
22
24/01/02 - EG - Initial version
37
TGLSceneViewer = GLLCLViewer.TGLSceneViewer;
40
procedure SetupVSync(const AVSyncMode : TVSyncMode);
45
OpenGLTokens, OpenGLAdapter;
47
procedure SetupVSync(const AVSyncMode : TVSyncMode);
52
if GL.W_EXT_swap_control then
54
I := GL.WGetSwapIntervalEXT;
56
vsmSync : if I <> 1 then GL.WSwapIntervalEXT(1);
57
vsmNoSync: if I <> 0 then GL.WSwapIntervalEXT(0);
66
if GL.X_SGI_swap_control then
69
vsmSync : GL.XSwapIntervalSGI(GL_True);
70
vsmNoSync: GL.XSwapIntervalSGI(GL_False);
79
const ISync: Integer = 0;
84
ctx := GL.aGetCurrentContext();
87
vsmSync : GL.aSetInteger(ctx, AGL_SWAP_INTERVAL, @ISync);
88
vsmNoSync: GL.aSetInteger(ctx, AGL_SWAP_INTERVAL, @INoSync);