123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- {
- Translation of the Mesa GL headers for FreePascal
- Copyright (C) 1999 Sebastian Guenther
- Template for static linking in Win32 environment by Alexander Stohr.
- Original copyright notice:
- Mesa 3-D graphics library
- Version: 3.0
- Copyright (C) 1995-1998 Brian Paul
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- }
- {
- You have to enable Macros (compiler switch "-Sm") for compiling this unit!
- This is necessary for supporting different platforms with different calling
- conventions via a single unit.
- }
- unit GL_SL;
- interface
- {$DEFINE GL1_0}
- {x$DEFINE GL1_1}
- {x$DEFINE GL1_2}
- {x$DEFINE MESA} {enable if you want to use some special mesa extensions}
- {x$DEFINE EXTENSIONS} {enable if you need one/all of extensions}
- {x$DEFINE SGI_EXTENSIONS} {enable if you need one/all of extensions}
- {
- *** Note: ***
- There is currently one importants side effect when doing static linking.
- If you include a function statically than its required to be present
- in the supplied DLLs of your OS and Hardware.
- This means if the DLL is not present your program will not run.
- In Win95 it appears that you will be informined you about
- the name of the first missing symbol while loading the executable.
- }
- {$MACRO ON}
- {$IFDEF Win32}
- {$DEFINE ogl_dll := external 'opengl32.dll'}
- uses Windows;
- {$ELSE}
- {$MESSAGE Unsupported platform.}
- {$ENDIF}
- // =======================================================
- // Unit specific extensions
- // =======================================================
- // none - no special init required
- // =======================================================
- // GL consts, types and functions
- // =======================================================
- // -------------------------------------------------------
- // GL types
- // -------------------------------------------------------
- type
- PSingle = ^Single;
- PDouble = ^Double;
- GLvoid = Pointer;
- GLboolean = Byte;
- GLbyte = ShortInt; // 1-byte signed
- GLshort = Integer; // 2-byte signed
- GLint = LongInt; // 4-byte signed
- GLubyte = Byte; // 1-byte unsigned
- GLushort = Word; // 2-byte unsigned
- GLuint = DWord; // 4-byte signed
- GLsizei = LongInt; // 4-byte signed
- GLfloat = Single; // single precision float
- GLclampf = Single; // single precision float in [0,1]
- GLdouble = Double; // double precision float
- GLclampd = Double; // double precision float in [0,1]
- GLenum = DWord;
- PGLBoolean = ^GLBoolean;
- PGLFloat = ^GLfloat;
- PGLDouble = ^GLDouble;
- type
- GLbitfield = DWord; { was an enum - no corresponding thing in pascal }
- const
- GL_CURRENT_BIT = $00000001;
- GL_POINT_BIT = $00000002;
- GL_LINE_BIT = $00000004;
- GL_POLYGON_BIT = $00000008;
- GL_POLYGON_STIPPLE_BIT= $00000010;
- GL_PIXEL_MODE_BIT = $00000020;
- GL_LIGHTING_BIT = $00000040;
- GL_FOG_BIT = $00000080;
- GL_DEPTH_BUFFER_BIT = $00000100;
- GL_ACCUM_BUFFER_BIT = $00000200;
- GL_STENCIL_BUFFER_BIT = $00000400;
- GL_VIEWPORT_BIT = $00000800;
- GL_TRANSFORM_BIT = $00001000;
- GL_ENABLE_BIT = $00002000;
- GL_COLOR_BUFFER_BIT = $00004000;
- GL_HINT_BIT = $00008000;
- GL_EVAL_BIT = $00010000;
- GL_LIST_BIT = $00020000;
- GL_TEXTURE_BIT = $00040000;
- GL_SCISSOR_BIT = $00080000;
- GL_ALL_ATTRIB_BITS = $000fffff;
- // -------------------------------------------------------
- // GL constants
- // -------------------------------------------------------
- {$IFDEF GL1_0}
- %GLDeclsIF10
- {$ENDIF GL1_0}
- {$IFDEF GL1_1}
- %GLDeclsIF11
- {$ENDIF GL1_1}
- {$IFDEF GL1_2}
- %GLDeclsIF12
- {$ENDIF GL1_2}
- const
- // Utility
- GL_VENDOR = $1F00;
- GL_RENDERER = $1F01;
- GL_VERSION = $1F02;
- GL_EXTENSIONS = $1F03;
- // Errors
- GL_INVALID_VALUE = $0501;
- GL_INVALID_ENUM = $0500;
- GL_INVALID_OPERATION = $0502;
- GL_STACK_OVERFLOW = $0503;
- GL_STACK_UNDERFLOW = $0504;
- GL_OUT_OF_MEMORY = $0505;
- // -------------------------------------------------------
- // GL extensions constants
- // -------------------------------------------------------
- {$IFDEF EXTENSIONS}
- %GLDeclsIF10Ext
- {$ENDIF EXTENSIONS}
- {$IFDEF SGI_EXTENSIONS}
- %GLDeclsIF10SGI
- {$ENDIF SGI_EXTENSIONS}
- {$IFDEF MESA}
- %GLDeclsIF10Mesa
- {$ENDIF MESA}
- // -------------------------------------------------------
- // GL procedures and functions
- // -------------------------------------------------------
- {$IFDEF GL1_0}
- %GLProcsPS10
- {$ENDIF GL1_0}
- {$IFDEF GL1_1}
- %GLProcsPS11
- {$ENDIF GL1_1}
- {$IFDEF GL1_2}
- %GLProcsPS12
- {$ENDIF GL1_2}
- // -------------------------------------------------------
- // GL Extensions
- // -------------------------------------------------------
- {$IFDEF EXTENSIONS}
- %GLProcsPS10Ext
- {$ENDIF EXTENSIONS}
- // library dependent extensions
- {$IFDEF SGI_EXTENSIONS}
- %GLProcsPS10SGI
- {$ENDIF SGI_EXTENSIONS}
- {$ifdef MESA}
- %GLProcsPS10Mesa
- {$endif MESA}
- // =======================================================
- // =======================================================
- implementation
- {BEGIN}{OF INIT}
- END.
|