summaryrefslogtreecommitdiff
path: root/packages/opengl
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-11-30 12:28:03 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-11-30 12:28:03 +0000
commit6fcd7e0364263980121f2c3b362660b0d050a1db (patch)
tree0d8ca94987122b9a24b0ec2bf1b0f3c9ad348cd5 /packages/opengl
parenta274856814e662e4b3c97723dbd500fef03d10dd (diff)
downloadfpc-6fcd7e0364263980121f2c3b362660b0d050a1db.tar.gz
* reverted r8795 that saved/set/restored the fpu exception mask before
every glut call, since the gl unit (on which the glut unit depends) already globally disables all fpu exceptions now (mantis #18107) git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16483 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/opengl')
-rw-r--r--packages/opengl/src/glut.pp1337
1 files changed, 5 insertions, 1332 deletions
diff --git a/packages/opengl/src/glut.pp b/packages/opengl/src/glut.pp
index db39ae5e57..48355a82c8 100644
--- a/packages/opengl/src/glut.pp
+++ b/packages/opengl/src/glut.pp
@@ -1,10 +1,8 @@
-{ Adaption of the delphi3d.net OpenGL units to FreePascal
+{
+
+ Adaption of the delphi3d.net OpenGL units to FreePascal
Sebastian Guenther (sg@freepascal.org) in 2002
These units are free to use
-
- 19.6.07 : Added GLUT_EXCLUSIVE_FPUMODE to allow for
- unsafe glut-libs, that don't handle FPU-exceptions in
- a compatible way. Jan Bruns (post@abnuto.de)
}
{$MACRO ON}
@@ -15,13 +13,6 @@
{$DEFINE extdecl := cdecl}
{$ENDIF}
-
-{$IFDEF CPU86}
- {$DEFINE GLUT_EXCLUSIVE_FPUMODE}
- {$DEFINE mode_inline := register} //inine or local-calling
-{$ENDIF}
-
-
{$IFDEF MORPHOS}
{$INLINE ON}
{$DEFINE GLUT_UNIT}
@@ -54,9 +45,6 @@ uses
dynlibs,
{$ENDIF}
{$ENDIF}
- {$IFDEF GLUT_EXCLUSIVE_FPUMODE}
- math,
- {$ENDIF}
GL;
type
@@ -321,240 +309,6 @@ const
{$ELSE MORPHOS}
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-var
-OLD_glutInit:procedure(argcp: PInteger; argv: PPChar); extdecl;
-OLD_glutInitDisplayMode:procedure(mode: Cardinal); extdecl;
-OLD_glutInitDisplayString:procedure(const str: PChar); extdecl;
-OLD_glutInitWindowPosition:procedure(x, y: Integer); extdecl;
-OLD_glutInitWindowSize:procedure(width, height: Integer); extdecl;
-OLD_glutMainLoop:procedure; extdecl;
-OLD_glutCreateWindow:function(const title: PChar): Integer; extdecl;
-OLD_glutCreateSubWindow:function(win, x, y, width, height: Integer): Integer; extdecl;
-OLD_glutDestroyWindow:procedure(win: Integer); extdecl;
-OLD_glutPostRedisplay:procedure; extdecl;
-OLD_glutPostWindowRedisplay:procedure(win: Integer); extdecl;
-OLD_glutSwapBuffers:procedure; extdecl;
-OLD_glutGetWindow:function: Integer; extdecl;
-OLD_glutSetWindow:procedure(win: Integer); extdecl;
-OLD_glutSetWindowTitle:procedure(const title: PChar); extdecl;
-OLD_glutSetIconTitle:procedure(const title: PChar); extdecl;
-OLD_glutPositionWindow:procedure(x, y: Integer); extdecl;
-OLD_glutReshapeWindow:procedure(width, height: Integer); extdecl;
-OLD_glutPopWindow:procedure; extdecl;
-OLD_glutPushWindow:procedure; extdecl;
-OLD_glutIconifyWindow:procedure; extdecl;
-OLD_glutShowWindow:procedure; extdecl;
-OLD_glutHideWindow:procedure; extdecl;
-OLD_glutFullScreen:procedure; extdecl;
-OLD_glutSetCursor:procedure(cursor: Integer); extdecl;
-OLD_glutWarpPointer:procedure(x, y: Integer); extdecl;
-OLD_glutEstablishOverlay:procedure; extdecl;
-OLD_glutRemoveOverlay:procedure; extdecl;
-OLD_glutUseLayer:procedure(layer: GLenum); extdecl;
-OLD_glutPostOverlayRedisplay:procedure; extdecl;
-OLD_glutPostWindowOverlayRedisplay:procedure(win: Integer); extdecl;
-OLD_glutShowOverlay:procedure; extdecl;
-OLD_glutHideOverlay:procedure; extdecl;
-OLD_glutCreateMenu:function(callback: TGlut1IntCallback): Integer; extdecl;
-OLD_glutDestroyMenu:procedure(menu: Integer); extdecl;
-OLD_glutGetMenu:function: Integer; extdecl;
-OLD_glutSetMenu:procedure(menu: Integer); extdecl;
-OLD_glutAddMenuEntry:procedure(const caption: PChar; value: Integer); extdecl;
-OLD_glutAddSubMenu:procedure(const caption: PChar; submenu: Integer); extdecl;
-OLD_glutChangeToMenuEntry:procedure(item: Integer; const caption: PChar; value: Integer); extdecl;
-OLD_glutChangeToSubMenu:procedure(item: Integer; const caption: PChar; submenu: Integer); extdecl;
-OLD_glutRemoveMenuItem:procedure(item: Integer); extdecl;
-OLD_glutAttachMenu:procedure(button: Integer); extdecl;
-OLD_glutDetachMenu:procedure(button: Integer); extdecl;
-OLD_glutDisplayFunc:procedure(f: TGlutVoidCallback); extdecl;
-OLD_glutReshapeFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutKeyboardFunc:procedure(f: TGlut1Char2IntCallback); extdecl;
-OLD_glutMouseFunc:procedure(f: TGlut4IntCallback); extdecl;
-OLD_glutMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutPassiveMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutEntryFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutVisibilityFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutIdleFunc:procedure(f: TGlutVoidCallback); extdecl;
-OLD_glutTimerFunc:procedure(millis: Cardinal; f: TGlut1IntCallback; value: Integer); extdecl;
-OLD_glutMenuStateFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutSpecialFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballMotionFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballRotateFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballButtonFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutButtonBoxFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutDialsFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutTabletMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutTabletButtonFunc:procedure(f: TGlut4IntCallback); extdecl;
-OLD_glutMenuStatusFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutOverlayDisplayFunc:procedure(f:TGlutVoidCallback); extdecl;
-OLD_glutWindowStatusFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutKeyboardUpFunc:procedure(f: TGlut1Char2IntCallback); extdecl;
-OLD_glutSpecialUpFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutJoystickFunc:procedure(f: TGlut1UInt3IntCallback; pollInterval: Integer); extdecl;
-OLD_glutSetColor:procedure(cell: Integer; red, green, blue: GLfloat); extdecl;
-OLD_glutGetColor:function(ndx, component: Integer): GLfloat; extdecl;
-OLD_glutCopyColormap:procedure(win: Integer); extdecl;
-OLD_glutGet:function(t: GLenum): Integer; extdecl;
-OLD_glutDeviceGet:function(t: GLenum): Integer; extdecl;
-OLD_glutExtensionSupported:function(const name: PChar): Integer; extdecl;
-OLD_glutGetModifiers:function: Integer; extdecl;
-OLD_glutLayerGet:function(t: GLenum): Integer; extdecl;
-OLD_glutBitmapCharacter:procedure(font : pointer; character: Integer); extdecl;
-OLD_glutBitmapWidth:function(font : pointer; character: Integer): Integer; extdecl;
-OLD_glutStrokeCharacter:procedure(font : pointer; character: Integer); extdecl;
-OLD_glutStrokeWidth:function(font : pointer; character: Integer): Integer; extdecl;
-OLD_glutBitmapLength:function(font: pointer; const str: PChar): Integer; extdecl;
-OLD_glutStrokeLength:function(font: pointer; const str: PChar): Integer; extdecl;
-OLD_glutWireSphere:procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutSolidSphere:procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutWireCone:procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutSolidCone:procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutWireCube:procedure(size: GLdouble); extdecl;
-OLD_glutSolidCube:procedure(size: GLdouble); extdecl;
-OLD_glutWireTorus:procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-OLD_glutSolidTorus:procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-OLD_glutWireDodecahedron:procedure; extdecl;
-OLD_glutSolidDodecahedron:procedure; extdecl;
-OLD_glutWireTeapot:procedure(size: GLdouble); extdecl;
-OLD_glutSolidTeapot:procedure(size: GLdouble); extdecl;
-OLD_glutWireOctahedron:procedure; extdecl;
-OLD_glutSolidOctahedron:procedure; extdecl;
-OLD_glutWireTetrahedron:procedure; extdecl;
-OLD_glutSolidTetrahedron:procedure; extdecl;
-OLD_glutWireIcosahedron:procedure; extdecl;
-OLD_glutSolidIcosahedron:procedure; extdecl;
-OLD_glutVideoResizeGet:function(param: GLenum): Integer; extdecl;
-OLD_glutSetupVideoResizing:procedure; extdecl;
-OLD_glutStopVideoResizing:procedure; extdecl;
-OLD_glutVideoResize:procedure(x, y, width, height: Integer); extdecl;
-OLD_glutVideoPan:procedure(x, y, width, height: Integer); extdecl;
-OLD_glutReportErrors:procedure; extdecl;
-OLD_glutIgnoreKeyRepeat:procedure(ignore: Integer); extdecl;
-OLD_glutSetKeyRepeat:procedure(repeatMode: Integer); extdecl;
-OLD_glutForceJoystickFunc:procedure; extdecl;
-OLD_glutGameModeString:procedure(const AString : PChar); extdecl;
-OLD_glutEnterGameMode:function: integer; extdecl;
-OLD_glutLeaveGameMode:procedure; extdecl;
-OLD_glutGameModeGet:function(mode : GLenum): integer; extdecl;
-
-procedure glutInit(argcp: PInteger; argv: PPChar); mode_inline;
-procedure glutInitDisplayMode(mode: Cardinal); mode_inline;
-procedure glutInitDisplayString(const str: PChar); mode_inline;
-procedure glutInitWindowPosition(x, y: Integer); mode_inline;
-procedure glutInitWindowSize(width, height: Integer); mode_inline;
-procedure glutMainLoop; mode_inline;
-function glutCreateWindow(const title: PChar): Integer; mode_inline;
-function glutCreateSubWindow(win, x, y, width, height: Integer): Integer; mode_inline;
-procedure glutDestroyWindow(win: Integer); mode_inline;
-procedure glutPostRedisplay; mode_inline;
-procedure glutPostWindowRedisplay(win: Integer); mode_inline;
-procedure glutSwapBuffers; mode_inline;
-function glutGetWindow: Integer; mode_inline;
-procedure glutSetWindow(win: Integer); mode_inline;
-procedure glutSetWindowTitle(const title: PChar); mode_inline;
-procedure glutSetIconTitle(const title: PChar); mode_inline;
-procedure glutPositionWindow(x, y: Integer); mode_inline;
-procedure glutReshapeWindow(width, height: Integer); mode_inline;
-procedure glutPopWindow; mode_inline;
-procedure glutPushWindow; mode_inline;
-procedure glutIconifyWindow; mode_inline;
-procedure glutShowWindow; mode_inline;
-procedure glutHideWindow; mode_inline;
-procedure glutFullScreen; mode_inline;
-procedure glutSetCursor(cursor: Integer); mode_inline;
-procedure glutWarpPointer(x, y: Integer); mode_inline;
-procedure glutEstablishOverlay; mode_inline;
-procedure glutRemoveOverlay; mode_inline;
-procedure glutUseLayer(layer: GLenum); mode_inline;
-procedure glutPostOverlayRedisplay; mode_inline;
-procedure glutPostWindowOverlayRedisplay(win: Integer); mode_inline;
-procedure glutShowOverlay; mode_inline;
-procedure glutHideOverlay; mode_inline;
-function glutCreateMenu(callback: TGlut1IntCallback): Integer; mode_inline;
-procedure glutDestroyMenu(menu: Integer); mode_inline;
-function glutGetMenu: Integer; mode_inline;
-procedure glutSetMenu(menu: Integer); mode_inline;
-procedure glutAddMenuEntry(const caption: PChar; value: Integer); mode_inline;
-procedure glutAddSubMenu(const caption: PChar; submenu: Integer); mode_inline;
-procedure glutChangeToMenuEntry(item: Integer; const caption: PChar; value: Integer); mode_inline;
-procedure glutChangeToSubMenu(item: Integer; const caption: PChar; submenu: Integer); mode_inline;
-procedure glutRemoveMenuItem(item: Integer); mode_inline;
-procedure glutAttachMenu(button: Integer); mode_inline;
-procedure glutDetachMenu(button: Integer); mode_inline;
-procedure glutDisplayFunc(f: TGlutVoidCallback); mode_inline;
-procedure glutReshapeFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutKeyboardFunc(f: TGlut1Char2IntCallback); mode_inline;
-procedure glutMouseFunc(f: TGlut4IntCallback); mode_inline;
-procedure glutMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutPassiveMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutEntryFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutVisibilityFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutIdleFunc(f: TGlutVoidCallback); mode_inline;
-procedure glutTimerFunc(millis: Cardinal; f: TGlut1IntCallback; value: Integer); mode_inline;
-procedure glutMenuStateFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutSpecialFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballMotionFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballRotateFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballButtonFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutButtonBoxFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutDialsFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutTabletMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutTabletButtonFunc(f: TGlut4IntCallback); mode_inline;
-procedure glutMenuStatusFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutOverlayDisplayFunc(f:TGlutVoidCallback); mode_inline;
-procedure glutWindowStatusFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutKeyboardUpFunc(f: TGlut1Char2IntCallback); mode_inline;
-procedure glutSpecialUpFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutJoystickFunc(f: TGlut1UInt3IntCallback; pollInterval: Integer); mode_inline;
-procedure glutSetColor(cell: Integer; red, green, blue: GLfloat); mode_inline;
-function glutGetColor(ndx, component: Integer): GLfloat; mode_inline;
-procedure glutCopyColormap(win: Integer); mode_inline;
-function glutGet(t: GLenum): Integer; mode_inline;
-function glutDeviceGet(t: GLenum): Integer; mode_inline;
-function glutExtensionSupported(const name: PChar): Integer; mode_inline;
-function glutGetModifiers: Integer; mode_inline;
-function glutLayerGet(t: GLenum): Integer; mode_inline;
-procedure glutBitmapCharacter(font : pointer; character: Integer); mode_inline;
-function glutBitmapWidth(font : pointer; character: Integer): Integer; mode_inline;
-procedure glutStrokeCharacter(font : pointer; character: Integer); mode_inline;
-function glutStrokeWidth(font : pointer; character: Integer): Integer; mode_inline;
-function glutBitmapLength(font: pointer; const str: PChar): Integer; mode_inline;
-function glutStrokeLength(font: pointer; const str: PChar): Integer; mode_inline;
-procedure glutWireSphere(radius: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutSolidSphere(radius: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutWireCone(base, height: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutSolidCone(base, height: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutWireCube(size: GLdouble); mode_inline;
-procedure glutSolidCube(size: GLdouble); mode_inline;
-procedure glutWireTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint); mode_inline;
-procedure glutSolidTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint); mode_inline;
-procedure glutWireDodecahedron; mode_inline;
-procedure glutSolidDodecahedron; mode_inline;
-procedure glutWireTeapot(size: GLdouble); mode_inline;
-procedure glutSolidTeapot(size: GLdouble); mode_inline;
-procedure glutWireOctahedron; mode_inline;
-procedure glutSolidOctahedron; mode_inline;
-procedure glutWireTetrahedron; mode_inline;
-procedure glutSolidTetrahedron; mode_inline;
-procedure glutWireIcosahedron; mode_inline;
-procedure glutSolidIcosahedron; mode_inline;
-function glutVideoResizeGet(param: GLenum): Integer; mode_inline;
-procedure glutSetupVideoResizing; mode_inline;
-procedure glutStopVideoResizing; mode_inline;
-procedure glutVideoResize(x, y, width, height: Integer); mode_inline;
-procedure glutVideoPan(x, y, width, height: Integer); mode_inline;
-procedure glutReportErrors; mode_inline;
-procedure glutIgnoreKeyRepeat(ignore: Integer); mode_inline;
-procedure glutSetKeyRepeat(repeatMode: Integer); mode_inline;
-procedure glutForceJoystickFunc; mode_inline;
-procedure glutGameModeString(const AString : PChar); mode_inline;
-function glutEnterGameMode: integer; mode_inline;
-procedure glutLeaveGameMode; mode_inline;
-function glutGameModeGet(mode : GLenum): integer; mode_inline;
-
-
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
var
// GLUT initialization sub-API.
glutInit: procedure(argcp: PInteger; argv: PPChar); extdecl;
@@ -700,8 +454,6 @@ var
glutEnterGameMode : function : integer; extdecl;
glutLeaveGameMode : procedure; extdecl;
glutGameModeGet : function (mode : GLenum) : integer; extdecl;
-
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
{$ENDIF MORPHOS}
procedure LoadGlut(const dll: String);
@@ -729,124 +481,6 @@ begin
if (hDLL <> 0) then
FreeLibrary(hDLL);
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-
- @OLD_glutInit := nil;
- @OLD_glutInitDisplayMode := nil;
- @OLD_glutInitDisplayString := nil;
- @OLD_glutInitWindowPosition := nil;
- @OLD_glutInitWindowSize := nil;
- @OLD_glutMainLoop := nil;
- @OLD_glutCreateWindow := nil;
- @OLD_glutCreateSubWindow := nil;
- @OLD_glutDestroyWindow := nil;
- @OLD_glutPostRedisplay := nil;
- @OLD_glutPostWindowRedisplay := nil;
- @OLD_glutSwapBuffers := nil;
- @OLD_glutGetWindow := nil;
- @OLD_glutSetWindow := nil;
- @OLD_glutSetWindowTitle := nil;
- @OLD_glutSetIconTitle := nil;
- @OLD_glutPositionWindow := nil;
- @OLD_glutReshapeWindow := nil;
- @OLD_glutPopWindow := nil;
- @OLD_glutPushWindow := nil;
- @OLD_glutIconifyWindow := nil;
- @OLD_glutShowWindow := nil;
- @OLD_glutHideWindow := nil;
- @OLD_glutFullScreen := nil;
- @OLD_glutSetCursor := nil;
- @OLD_glutWarpPointer := nil;
- @OLD_glutEstablishOverlay := nil;
- @OLD_glutRemoveOverlay := nil;
- @OLD_glutUseLayer := nil;
- @OLD_glutPostOverlayRedisplay := nil;
- @OLD_glutPostWindowOverlayRedisplay := nil;
- @OLD_glutShowOverlay := nil;
- @OLD_glutHideOverlay := nil;
- @OLD_glutCreateMenu := nil;
- @OLD_glutDestroyMenu := nil;
- @OLD_glutGetMenu := nil;
- @OLD_glutSetMenu := nil;
- @OLD_glutAddMenuEntry := nil;
- @OLD_glutAddSubMenu := nil;
- @OLD_glutChangeToMenuEntry := nil;
- @OLD_glutChangeToSubMenu := nil;
- @OLD_glutRemoveMenuItem := nil;
- @OLD_glutAttachMenu := nil;
- @OLD_glutDetachMenu := nil;
- @OLD_glutDisplayFunc := nil;
- @OLD_glutReshapeFunc := nil;
- @OLD_glutKeyboardFunc := nil;
- @OLD_glutMouseFunc := nil;
- @OLD_glutMotionFunc := nil;
- @OLD_glutPassiveMotionFunc := nil;
- @OLD_glutEntryFunc := nil;
- @OLD_glutVisibilityFunc := nil;
- @OLD_glutIdleFunc := nil;
- @OLD_glutTimerFunc := nil;
- @OLD_glutMenuStateFunc := nil;
- @OLD_glutSpecialFunc := nil;
- @OLD_glutSpaceballMotionFunc := nil;
- @OLD_glutSpaceballRotateFunc := nil;
- @OLD_glutSpaceballButtonFunc := nil;
- @OLD_glutButtonBoxFunc := nil;
- @OLD_glutDialsFunc := nil;
- @OLD_glutTabletMotionFunc := nil;
- @OLD_glutTabletButtonFunc := nil;
- @OLD_glutMenuStatusFunc := nil;
- @OLD_glutOverlayDisplayFunc := nil;
- @OLD_glutWindowStatusFunc := nil;
- @OLD_glutKeyboardUpFunc := nil;
- @OLD_glutSpecialUpFunc := nil;
- @OLD_glutJoystickFunc := nil;
- @OLD_glutSetColor := nil;
- @OLD_glutGetColor := nil;
- @OLD_glutCopyColormap := nil;
- @OLD_glutGet := nil;
- @OLD_glutDeviceGet := nil;
- @OLD_glutExtensionSupported := nil;
- @OLD_glutGetModifiers := nil;
- @OLD_glutLayerGet := nil;
- @OLD_glutBitmapCharacter := nil;
- @OLD_glutBitmapWidth := nil;
- @OLD_glutStrokeCharacter := nil;
- @OLD_glutStrokeWidth := nil;
- @OLD_glutBitmapLength := nil;
- @OLD_glutStrokeLength := nil;
- @OLD_glutWireSphere := nil;
- @OLD_glutSolidSphere := nil;
- @OLD_glutWireCone := nil;
- @OLD_glutSolidCone := nil;
- @OLD_glutWireCube := nil;
- @OLD_glutSolidCube := nil;
- @OLD_glutWireTorus := nil;
- @OLD_glutSolidTorus := nil;
- @OLD_glutWireDodecahedron := nil;
- @OLD_glutSolidDodecahedron := nil;
- @OLD_glutWireTeapot := nil;
- @OLD_glutSolidTeapot := nil;
- @OLD_glutWireOctahedron := nil;
- @OLD_glutSolidOctahedron := nil;
- @OLD_glutWireTetrahedron := nil;
- @OLD_glutSolidTetrahedron := nil;
- @OLD_glutWireIcosahedron := nil;
- @OLD_glutSolidIcosahedron := nil;
- @OLD_glutVideoResizeGet := nil;
- @OLD_glutSetupVideoResizing := nil;
- @OLD_glutStopVideoResizing := nil;
- @OLD_glutVideoResize := nil;
- @OLD_glutVideoPan := nil;
- @OLD_glutReportErrors := nil;
- @OLD_glutIgnoreKeyRepeat := nil;
- @OLD_glutSetKeyRepeat := nil;
- @OLD_glutForceJoystickFunc := nil;
- @OLD_glutGameModeString := nil;
- @OLD_glutEnterGameMode := nil;
- @OLD_glutLeaveGameMode := nil;
- @OLD_glutGameModeGet := nil;
-
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
@glutInit := nil;
@glutInitDisplayMode := nil;
@glutInitDisplayString := nil;
@@ -961,7 +595,6 @@ begin
@glutEnterGameMode := nil;
@glutLeaveGameMode := nil;
@glutGameModeGet := nil;
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
{$ENDIF MORPHOS}
end;
@@ -987,122 +620,6 @@ begin
hDLL := LoadLibrary(PChar(dll));
if hDLL = 0 then raise Exception.Create('Could not load Glut from ' + dll);
try
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
- @OLD_glutInit := GetGLutProcAddress(hDLL, 'glutInit');
- @OLD_glutInitDisplayMode := GetGLutProcAddress(hDLL, 'glutInitDisplayMode');
- @OLD_glutInitDisplayString := GetGLutProcAddress(hDLL, 'glutInitDisplayString');
- @OLD_glutInitWindowPosition := GetGLutProcAddress(hDLL, 'glutInitWindowPosition');
- @OLD_glutInitWindowSize := GetGLutProcAddress(hDLL, 'glutInitWindowSize');
- @OLD_glutMainLoop := GetGLutProcAddress(hDLL, 'glutMainLoop');
- @OLD_glutCreateWindow := GetGLutProcAddress(hDLL, 'glutCreateWindow');
- @OLD_glutCreateSubWindow := GetGLutProcAddress(hDLL, 'glutCreateSubWindow');
- @OLD_glutDestroyWindow := GetGLutProcAddress(hDLL, 'glutDestroyWindow');
- @OLD_glutPostRedisplay := GetGLutProcAddress(hDLL, 'glutPostRedisplay');
- @OLD_glutPostWindowRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowRedisplay');
- @OLD_glutSwapBuffers := GetGLutProcAddress(hDLL, 'glutSwapBuffers');
- @OLD_glutGetWindow := GetGLutProcAddress(hDLL, 'glutGetWindow');
- @OLD_glutSetWindow := GetGLutProcAddress(hDLL, 'glutSetWindow');
- @OLD_glutSetWindowTitle := GetGLutProcAddress(hDLL, 'glutSetWindowTitle');
- @OLD_glutSetIconTitle := GetGLutProcAddress(hDLL, 'glutSetIconTitle');
- @OLD_glutPositionWindow := GetGLutProcAddress(hDLL, 'glutPositionWindow');
- @OLD_glutReshapeWindow := GetGLutProcAddress(hDLL, 'glutReshapeWindow');
- @OLD_glutPopWindow := GetGLutProcAddress(hDLL, 'glutPopWindow');
- @OLD_glutPushWindow := GetGLutProcAddress(hDLL, 'glutPushWindow');
- @OLD_glutIconifyWindow := GetGLutProcAddress(hDLL, 'glutIconifyWindow');
- @OLD_glutShowWindow := GetGLutProcAddress(hDLL, 'glutShowWindow');
- @OLD_glutHideWindow := GetGLutProcAddress(hDLL, 'glutHideWindow');
- @OLD_glutFullScreen := GetGLutProcAddress(hDLL, 'glutFullScreen');
- @OLD_glutSetCursor := GetGLutProcAddress(hDLL, 'glutSetCursor');
- @OLD_glutWarpPointer := GetGLutProcAddress(hDLL, 'glutWarpPointer');
- @OLD_glutEstablishOverlay := GetGLutProcAddress(hDLL, 'glutEstablishOverlay');
- @OLD_glutRemoveOverlay := GetGLutProcAddress(hDLL, 'glutRemoveOverlay');
- @OLD_glutUseLayer := GetGLutProcAddress(hDLL, 'glutUseLayer');
- @OLD_glutPostOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostOverlayRedisplay');
- @OLD_glutPostWindowOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowOverlayRedisplay');
- @OLD_glutShowOverlay := GetGLutProcAddress(hDLL, 'glutShowOverlay');
- @OLD_glutHideOverlay := GetGLutProcAddress(hDLL, 'glutHideOverlay');
- @OLD_glutCreateMenu := GetGLutProcAddress(hDLL, 'glutCreateMenu');
- @OLD_glutDestroyMenu := GetGLutProcAddress(hDLL, 'glutDestroyMenu');
- @OLD_glutGetMenu := GetGLutProcAddress(hDLL, 'glutGetMenu');
- @OLD_glutSetMenu := GetGLutProcAddress(hDLL, 'glutSetMenu');
- @OLD_glutAddMenuEntry := GetGLutProcAddress(hDLL, 'glutAddMenuEntry');
- @OLD_glutAddSubMenu := GetGLutProcAddress(hDLL, 'glutAddSubMenu');
- @OLD_glutChangeToMenuEntry := GetGLutProcAddress(hDLL, 'glutChangeToMenuEntry');
- @OLD_glutChangeToSubMenu := GetGLutProcAddress(hDLL, 'glutChangeToSubMenu');
- @OLD_glutRemoveMenuItem := GetGLutProcAddress(hDLL, 'glutRemoveMenuItem');
- @OLD_glutAttachMenu := GetGLutProcAddress(hDLL, 'glutAttachMenu');
- @OLD_glutDetachMenu := GetGLutProcAddress(hDLL, 'glutDetachMenu');
- @OLD_glutDisplayFunc := GetGLutProcAddress(hDLL, 'glutDisplayFunc');
- @OLD_glutReshapeFunc := GetGLutProcAddress(hDLL, 'glutReshapeFunc');
- @OLD_glutKeyboardFunc := GetGLutProcAddress(hDLL, 'glutKeyboardFunc');
- @OLD_glutMouseFunc := GetGLutProcAddress(hDLL, 'glutMouseFunc');
- @OLD_glutMotionFunc := GetGLutProcAddress(hDLL, 'glutMotionFunc');
- @OLD_glutPassiveMotionFunc := GetGLutProcAddress(hDLL, 'glutPassiveMotionFunc');
- @OLD_glutEntryFunc := GetGLutProcAddress(hDLL, 'glutEntryFunc');
- @OLD_glutVisibilityFunc := GetGLutProcAddress(hDLL, 'glutVisibilityFunc');
- @OLD_glutIdleFunc := GetGLutProcAddress(hDLL, 'glutIdleFunc');
- @OLD_glutTimerFunc := GetGLutProcAddress(hDLL, 'glutTimerFunc');
- @OLD_glutMenuStateFunc := GetGLutProcAddress(hDLL, 'glutMenuStateFunc');
- @OLD_glutSpecialFunc := GetGLutProcAddress(hDLL, 'glutSpecialFunc');
- @OLD_glutSpaceballMotionFunc := GetGLutProcAddress(hDLL, 'glutSpaceballMotionFunc');
- @OLD_glutSpaceballRotateFunc := GetGLutProcAddress(hDLL, 'glutSpaceballRotateFunc');
- @OLD_glutSpaceballButtonFunc := GetGLutProcAddress(hDLL, 'glutSpaceballButtonFunc');
- @OLD_glutButtonBoxFunc := GetGLutProcAddress(hDLL, 'glutButtonBoxFunc');
- @OLD_glutDialsFunc := GetGLutProcAddress(hDLL, 'glutDialsFunc');
- @OLD_glutTabletMotionFunc := GetGLutProcAddress(hDLL, 'glutTabletMotionFunc');
- @OLD_glutTabletButtonFunc := GetGLutProcAddress(hDLL, 'glutTabletButtonFunc');
- @OLD_glutMenuStatusFunc := GetGLutProcAddress(hDLL, 'glutMenuStatusFunc');
- @OLD_glutOverlayDisplayFunc := GetGLutProcAddress(hDLL, 'glutOverlayDisplayFunc');
- @OLD_glutWindowStatusFunc := GetGLutProcAddress(hDLL, 'glutWindowStatusFunc');
- @OLD_glutKeyboardUpFunc := GetGLutProcAddress(hDLL, 'glutKeyboardUpFunc');
- @OLD_glutSpecialUpFunc := GetGLutProcAddress(hDLL, 'glutSpecialUpFunc');
- @OLD_glutJoystickFunc := GetGLutProcAddress(hDLL, 'glutJoystickFunc');
- @OLD_glutSetColor := GetGLutProcAddress(hDLL, 'glutSetColor');
- @OLD_glutGetColor := GetGLutProcAddress(hDLL, 'glutGetColor');
- @OLD_glutCopyColormap := GetGLutProcAddress(hDLL, 'glutCopyColormap');
- @OLD_glutGet := GetGLutProcAddress(hDLL, 'glutGet');
- @OLD_glutDeviceGet := GetGLutProcAddress(hDLL, 'glutDeviceGet');
- @OLD_glutExtensionSupported := GetGLutProcAddress(hDLL, 'glutExtensionSupported');
- @OLD_glutGetModifiers := GetGLutProcAddress(hDLL, 'glutGetModifiers');
- @OLD_glutLayerGet := GetGLutProcAddress(hDLL, 'glutLayerGet');
- @OLD_glutBitmapCharacter := GetGLutProcAddress(hDLL, 'glutBitmapCharacter');
- @OLD_glutBitmapWidth := GetGLutProcAddress(hDLL, 'glutBitmapWidth');
- @OLD_glutStrokeCharacter := GetGLutProcAddress(hDLL, 'glutStrokeCharacter');
- @OLD_glutStrokeWidth := GetGLutProcAddress(hDLL, 'glutStrokeWidth');
- @OLD_glutBitmapLength := GetGLutProcAddress(hDLL, 'glutBitmapLength');
- @OLD_glutStrokeLength := GetGLutProcAddress(hDLL, 'glutStrokeLength');
- @OLD_glutWireSphere := GetGLutProcAddress(hDLL, 'glutWireSphere');
- @OLD_glutSolidSphere := GetGLutProcAddress(hDLL, 'glutSolidSphere');
- @OLD_glutWireCone := GetGLutProcAddress(hDLL, 'glutWireCone');
- @OLD_glutSolidCone := GetGLutProcAddress(hDLL, 'glutSolidCone');
- @OLD_glutWireCube := GetGLutProcAddress(hDLL, 'glutWireCube');
- @OLD_glutSolidCube := GetGLutProcAddress(hDLL, 'glutSolidCube');
- @OLD_glutWireTorus := GetGLutProcAddress(hDLL, 'glutWireTorus');
- @OLD_glutSolidTorus := GetGLutProcAddress(hDLL, 'glutSolidTorus');
- @OLD_glutWireDodecahedron := GetGLutProcAddress(hDLL, 'glutWireDodecahedron');
- @OLD_glutSolidDodecahedron := GetGLutProcAddress(hDLL, 'glutSolidDodecahedron');
- @OLD_glutWireTeapot := GetGLutProcAddress(hDLL, 'glutWireTeapot');
- @OLD_glutSolidTeapot := GetGLutProcAddress(hDLL, 'glutSolidTeapot');
- @OLD_glutWireOctahedron := GetGLutProcAddress(hDLL, 'glutWireOctahedron');
- @OLD_glutSolidOctahedron := GetGLutProcAddress(hDLL, 'glutSolidOctahedron');
- @OLD_glutWireTetrahedron := GetGLutProcAddress(hDLL, 'glutWireTetrahedron');
- @OLD_glutSolidTetrahedron := GetGLutProcAddress(hDLL, 'glutSolidTetrahedron');
- @OLD_glutWireIcosahedron := GetGLutProcAddress(hDLL, 'glutWireIcosahedron');
- @OLD_glutSolidIcosahedron := GetGLutProcAddress(hDLL, 'glutSolidIcosahedron');
- @OLD_glutVideoResizeGet := GetGLutProcAddress(hDLL, 'glutVideoResizeGet');
- @OLD_glutSetupVideoResizing := GetGLutProcAddress(hDLL, 'glutSetupVideoResizing');
- @OLD_glutStopVideoResizing := GetGLutProcAddress(hDLL, 'glutStopVideoResizing');
- @OLD_glutVideoResize := GetGLutProcAddress(hDLL, 'glutVideoResize');
- @OLD_glutVideoPan := GetGLutProcAddress(hDLL, 'glutVideoPan');
- @OLD_glutReportErrors := GetGLutProcAddress(hDLL, 'glutReportErrors');
- @OLD_glutIgnoreKeyRepeat := GetGLutProcAddress(hDLL, 'glutIgnoreKeyRepeat');
- @OLD_glutSetKeyRepeat := GetGLutProcAddress(hDLL, 'glutSetKeyRepeat');
- @OLD_glutForceJoystickFunc := GetGLutProcAddress(hDLL, 'glutForceJoystickFunc');
- @OLD_glutGameModeString := GetGLutProcAddress(hDLL, 'glutGameModeString');
- @OLD_glutEnterGameMode := GetGLutProcAddress(hDLL, 'glutEnterGameMode');
- @OLD_glutLeaveGameMode := GetGLutProcAddress(hDLL, 'glutLeaveGameMode');
- @OLD_glutGameModeGet := GetGLutProcAddress(hDLL, 'glutGameModeGet');
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
@glutInit := GetGLutProcAddress(hDLL, 'glutInit');
@glutInitDisplayMode := GetGLutProcAddress(hDLL, 'glutInitDisplayMode');
@glutInitDisplayString := GetGLutProcAddress(hDLL, 'glutInitDisplayString');
@@ -1217,8 +734,6 @@ begin
@glutEnterGameMode := GetGLutProcAddress(hDLL, 'glutEnterGameMode');
@glutLeaveGameMode := GetGLutProcAddress(hDLL, 'glutLeaveGameMode');
@glutGameModeGet := GetGLutProcAddress(hDLL, 'glutGameModeGet');
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-
{$ifndef Windows}
GLUT_STROKE_ROMAN := GetGLutProcAddress(hDll, 'glutStrokeRoman');
GLUT_STROKE_MONO_ROMAN := GetGLutProcAddress(hDll,'glutStrokeMonoRoman');
@@ -1236,853 +751,9 @@ begin
end;
{$ENDIF MORPHOS}
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-
-VAR
-GLUT_EXCLUSIVE_glut_ExceptionMask : TFPUExceptionMask;
-GLUT_EXCLUSIVE_fpc__ExceptionMask : TFPUExceptionMask;
-GLUT_EXCLUSIVE_glut_PrecisionMode : TFPUPrecisionMode;
-GLUT_EXCLUSIVE_fpc__PrecisionMode : TFPUPrecisionMode;
-GLUT_EXCLUSIVE_glut_RoundMode : TFPURoundingMode;
-GLUT_EXCLUSIVE_fpc__RoundMode : TFPURoundingMode;
-
-
-PROCEDURE init_fpumode;
-BEGIN
- GLUT_EXCLUSIVE_glut_ExceptionMask := GetExceptionMask+[exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide];
- GLUT_EXCLUSIVE_glut_PrecisionMode := GetPrecisionMode;
- GLUT_EXCLUSIVE_glut_RoundMode := GetRoundMode;
-END;
-
-
-PROCEDURE switch_to_glut_fpumode; mode_inline;
-BEGIN
- GLUT_EXCLUSIVE_fpc__ExceptionMask := GetExceptionMask;
- GLUT_EXCLUSIVE_fpc__PrecisionMode := GetPrecisionMode;
- GLUT_EXCLUSIVE_fpc__RoundMode := GetRoundMode;
- SetExceptionMask(GLUT_EXCLUSIVE_glut_ExceptionMask);
- SetPrecisionMode(GLUT_EXCLUSIVE_glut_PrecisionMode);
- SetRoundMode(GLUT_EXCLUSIVE_glut_RoundMode);
-END;
-
-PROCEDURE switch_to_FPC_fpumode; mode_inline;
-BEGIN
- GLUT_EXCLUSIVE_glut_ExceptionMask := GetExceptionMask;
- GLUT_EXCLUSIVE_glut_PrecisionMode := GetPrecisionMode;
- GLUT_EXCLUSIVE_glut_RoundMode := GetRoundMode;
- SetExceptionMask(GLUT_EXCLUSIVE_fpc__ExceptionMask);
- SetPrecisionMode(GLUT_EXCLUSIVE_fpc__PrecisionMode);
- SetRoundMode(GLUT_EXCLUSIVE_fpc__RoundMode);
-END;
-
-
-procedure glutInit(argcp: PInteger; argv: PPChar);
-begin
- switch_to_glut_fpumode;
- OLD_glutInit(argcp,argv);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutInitDisplayMode(mode: Cardinal);
-begin
- switch_to_glut_fpumode;
- OLD_glutInitDisplayMode(mode);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutInitDisplayString(const str: PChar);
-begin
- switch_to_glut_fpumode;
- OLD_glutInitDisplayString(str);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutInitWindowPosition(x, y: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutInitWindowPosition(x,y);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutInitWindowSize(width, height: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutInitWindowSize(width,height);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutMainLoop;
-begin
- switch_to_glut_fpumode;
- OLD_glutMainLoop();
- switch_to_FPC_fpumode;
-end;
-
-function glutCreateWindow(const title: PChar): Integer;
-begin
- switch_to_glut_fpumode;
- glutCreateWindow := OLD_glutCreateWindow(title);
- switch_to_FPC_fpumode;
-end;
-
-function glutCreateSubWindow(win, x, y, width, height: Integer): Integer;
-begin
- switch_to_glut_fpumode;
- glutCreateSubWindow := OLD_glutCreateSubWindow(win,x,y,width,height);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutDestroyWindow(win: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutDestroyWindow(win);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPostRedisplay;
-begin
- switch_to_glut_fpumode;
- OLD_glutPostRedisplay();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPostWindowRedisplay(win: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutPostWindowRedisplay(win);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSwapBuffers;
-begin
- switch_to_glut_fpumode;
- OLD_glutSwapBuffers();
- switch_to_FPC_fpumode;
-end;
-
-function glutGetWindow: Integer;
-begin
- switch_to_glut_fpumode;
- glutGetWindow := OLD_glutGetWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetWindow(win: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetWindow(win);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetWindowTitle(const title: PChar);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetWindowTitle(title);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetIconTitle(const title: PChar);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetIconTitle(title);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPositionWindow(x, y: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutPositionWindow(x,y);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutReshapeWindow(width, height: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutReshapeWindow(width,height);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPopWindow;
-begin
- switch_to_glut_fpumode;
- OLD_glutPopWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPushWindow;
-begin
- switch_to_glut_fpumode;
- OLD_glutPushWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutIconifyWindow;
-begin
- switch_to_glut_fpumode;
- OLD_glutIconifyWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutShowWindow;
-begin
- switch_to_glut_fpumode;
- OLD_glutShowWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutHideWindow;
-begin
- switch_to_glut_fpumode;
- OLD_glutHideWindow();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutFullScreen;
-begin
- switch_to_glut_fpumode;
- OLD_glutFullScreen();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetCursor(cursor: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetCursor(cursor);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWarpPointer(x, y: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutWarpPointer(x,y);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutEstablishOverlay;
-begin
- switch_to_glut_fpumode;
- OLD_glutEstablishOverlay();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutRemoveOverlay;
-begin
- switch_to_glut_fpumode;
- OLD_glutRemoveOverlay();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutUseLayer(layer: GLenum);
-begin
- switch_to_glut_fpumode;
- OLD_glutUseLayer(layer);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPostOverlayRedisplay;
-begin
- switch_to_glut_fpumode;
- OLD_glutPostOverlayRedisplay();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPostWindowOverlayRedisplay(win: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutPostWindowOverlayRedisplay(win);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutShowOverlay;
-begin
- switch_to_glut_fpumode;
- OLD_glutShowOverlay();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutHideOverlay;
-begin
- switch_to_glut_fpumode;
- OLD_glutHideOverlay();
- switch_to_FPC_fpumode;
-end;
-
-function glutCreateMenu(callback: TGlut1IntCallback): Integer;
-begin
- switch_to_glut_fpumode;
- glutCreateMenu := OLD_glutCreateMenu(callback);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutDestroyMenu(menu: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutDestroyMenu(menu);
- switch_to_FPC_fpumode;
-end;
-
-function glutGetMenu: Integer;
-begin
- switch_to_glut_fpumode;
- glutGetMenu := OLD_glutGetMenu();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetMenu(menu: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetMenu(menu);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutAddMenuEntry(const caption: PChar; value: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutAddMenuEntry(caption,value);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutAddSubMenu(const caption: PChar; submenu: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutAddSubMenu(caption,submenu);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutChangeToMenuEntry(item: Integer; const caption: PChar; value: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutChangeToMenuEntry(item,caption,value);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutChangeToSubMenu(item: Integer; const caption: PChar; submenu: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutChangeToSubMenu(item,caption,submenu);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutRemoveMenuItem(item: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutRemoveMenuItem(item);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutAttachMenu(button: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutAttachMenu(button);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutDetachMenu(button: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutDetachMenu(button);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutDisplayFunc(f: TGlutVoidCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutDisplayFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutReshapeFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutReshapeFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutKeyboardFunc(f: TGlut1Char2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutKeyboardFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutMouseFunc(f: TGlut4IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutMouseFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutMotionFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutMotionFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutPassiveMotionFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutPassiveMotionFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutEntryFunc(f: TGlut1IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutEntryFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutVisibilityFunc(f: TGlut1IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutVisibilityFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutIdleFunc(f: TGlutVoidCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutIdleFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutTimerFunc(millis: Cardinal; f: TGlut1IntCallback; value: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutTimerFunc(millis,f,value);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutMenuStateFunc(f: TGlut1IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutMenuStateFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSpecialFunc(f: TGlut3IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutSpecialFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballMotionFunc(f: TGlut3IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutSpaceballMotionFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballRotateFunc(f: TGlut3IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutSpaceballRotateFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballButtonFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutSpaceballButtonFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutButtonBoxFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutButtonBoxFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutDialsFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutDialsFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutTabletMotionFunc(f: TGlut2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutTabletMotionFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutTabletButtonFunc(f: TGlut4IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutTabletButtonFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutMenuStatusFunc(f: TGlut3IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutMenuStatusFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutOverlayDisplayFunc(f:TGlutVoidCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutOverlayDisplayFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWindowStatusFunc(f: TGlut1IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutWindowStatusFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutKeyboardUpFunc(f: TGlut1Char2IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutKeyboardUpFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSpecialUpFunc(f: TGlut3IntCallback);
-begin
- switch_to_glut_fpumode;
- OLD_glutSpecialUpFunc(f);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutJoystickFunc(f: TGlut1UInt3IntCallback; pollInterval: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutJoystickFunc(f,pollInterval);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetColor(cell: Integer; red, green, blue: GLfloat);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetColor(cell,red,green,blue);
- switch_to_FPC_fpumode;
-end;
-
-function glutGetColor(ndx, component: Integer): GLfloat;
-begin
- switch_to_glut_fpumode;
- glutGetColor := OLD_glutGetColor(ndx,component);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutCopyColormap(win: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutCopyColormap(win);
- switch_to_FPC_fpumode;
-end;
-
-function glutGet(t: GLenum): Integer;
-begin
- switch_to_glut_fpumode;
- glutGet := OLD_glutGet(t);
- switch_to_FPC_fpumode;
-end;
-
-function glutDeviceGet(t: GLenum): Integer;
-begin
- switch_to_glut_fpumode;
- glutDeviceGet := OLD_glutDeviceGet(t);
- switch_to_FPC_fpumode;
-end;
-
-function glutExtensionSupported(const name: PChar): Integer;
-begin
- switch_to_glut_fpumode;
- glutExtensionSupported := OLD_glutExtensionSupported(name);
- switch_to_FPC_fpumode;
-end;
-
-function glutGetModifiers: Integer;
-begin
- switch_to_glut_fpumode;
- glutGetModifiers := OLD_glutGetModifiers();
- switch_to_FPC_fpumode;
-end;
-
-function glutLayerGet(t: GLenum): Integer;
-begin
- switch_to_glut_fpumode;
- glutLayerGet := OLD_glutLayerGet(t);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutBitmapCharacter(font : pointer; character: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutBitmapCharacter(font,character);
- switch_to_FPC_fpumode;
-end;
-
-function glutBitmapWidth(font : pointer; character: Integer): Integer;
-begin
- switch_to_glut_fpumode;
- glutBitmapWidth := OLD_glutBitmapWidth(font,character);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutStrokeCharacter(font : pointer; character: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutStrokeCharacter(font,character);
- switch_to_FPC_fpumode;
-end;
-
-function glutStrokeWidth(font : pointer; character: Integer): Integer;
-begin
- switch_to_glut_fpumode;
- glutStrokeWidth := OLD_glutStrokeWidth(font,character);
- switch_to_FPC_fpumode;
-end;
-
-function glutBitmapLength(font: pointer; const str: PChar): Integer;
-begin
- switch_to_glut_fpumode;
- glutBitmapLength := OLD_glutBitmapLength(font,str);
- switch_to_FPC_fpumode;
-end;
-
-function glutStrokeLength(font: pointer; const str: PChar): Integer;
-begin
- switch_to_glut_fpumode;
- glutStrokeLength := OLD_glutStrokeLength(font,str);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireSphere(radius: GLdouble; slices, stacks: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutWireSphere(radius,slices,stacks);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidSphere(radius: GLdouble; slices, stacks: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidSphere(radius,slices,stacks);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireCone(base, height: GLdouble; slices, stacks: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutWireCone(base,height,slices,stacks);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidCone(base, height: GLdouble; slices, stacks: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidCone(base,height,slices,stacks);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireCube(size: GLdouble);
-begin
- switch_to_glut_fpumode;
- OLD_glutWireCube(size);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidCube(size: GLdouble);
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidCube(size);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutWireTorus(innerRadius,outerRadius,sides,rings);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint);
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidTorus(innerRadius,outerRadius,sides,rings);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireDodecahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutWireDodecahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidDodecahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidDodecahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTeapot(size: GLdouble);
-begin
- switch_to_glut_fpumode;
- OLD_glutWireTeapot(size);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTeapot(size: GLdouble);
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidTeapot(size);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireOctahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutWireOctahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidOctahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidOctahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTetrahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutWireTetrahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTetrahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidTetrahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutWireIcosahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutWireIcosahedron();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidIcosahedron;
-begin
- switch_to_glut_fpumode;
- OLD_glutSolidIcosahedron();
- switch_to_FPC_fpumode;
-end;
-
-function glutVideoResizeGet(param: GLenum): Integer;
-begin
- switch_to_glut_fpumode;
- glutVideoResizeGet := OLD_glutVideoResizeGet(param);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetupVideoResizing;
-begin
- switch_to_glut_fpumode;
- OLD_glutSetupVideoResizing();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutStopVideoResizing;
-begin
- switch_to_glut_fpumode;
- OLD_glutStopVideoResizing();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutVideoResize(x, y, width, height: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutVideoResize(x,y,width,height);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutVideoPan(x, y, width, height: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutVideoPan(x,y,width,height);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutReportErrors;
-begin
- switch_to_glut_fpumode;
- OLD_glutReportErrors();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutIgnoreKeyRepeat(ignore: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutIgnoreKeyRepeat(ignore);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutSetKeyRepeat(repeatMode: Integer);
-begin
- switch_to_glut_fpumode;
- OLD_glutSetKeyRepeat(repeatMode);
- switch_to_FPC_fpumode;
-end;
-
-procedure glutForceJoystickFunc;
-begin
- switch_to_glut_fpumode;
- OLD_glutForceJoystickFunc();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutGameModeString(const AString : PChar);
-begin
- switch_to_glut_fpumode;
- OLD_glutGameModeString(AString);
- switch_to_FPC_fpumode;
-end;
-
-function glutEnterGameMode: integer;
-begin
- switch_to_glut_fpumode;
- glutEnterGameMode := OLD_glutEnterGameMode();
- switch_to_FPC_fpumode;
-end;
-
-procedure glutLeaveGameMode;
-begin
- switch_to_glut_fpumode;
- OLD_glutLeaveGameMode();
- switch_to_FPC_fpumode;
-end;
-
-function glutGameModeGet(mode : GLenum): integer;
-begin
- switch_to_glut_fpumode;
- glutGameModeGet := OLD_glutGameModeGet(mode);
- switch_to_FPC_fpumode;
-end;
-
-
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
initialization
- {$IFDEF GLUT_EXCLUSIVE_FPUMODE}
- init_fpumode;
- {$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-
{$IFDEF Windows}
LoadGlut('glut32.dll');
{$ELSE}
@@ -2100,5 +771,7 @@ initialization
{$ENDIF}
finalization
+
FreeGlut;
+
end.