Files
lace/3-mid/opengl/private/gl/source/gl-safe.ads
2024-06-22 20:32:47 +10:00

382 lines
22 KiB
Ada

with
Interfaces.C.Pointers,
System;
package GL.safe
--
-- Provides types, constants and functions specific to the openGL 'Safety Critical' profile.
--
is
---------
-- Types
--
-- GLubyte_Pointer
--
package GLubyte_Pointers is new C.Pointers (Index => C.size_t,
Element => GLubyte,
Element_Array => GLubyte_array,
Default_Terminator => 0);
subtype GLubyte_Pointer is GLubyte_Pointers.Pointer;
-- GLint_Pointer
--
package GLint_Pointers is new C.Pointers (Index => C.size_t,
Element => GLint,
Element_Array => GLint_array,
Default_Terminator => 0);
subtype GLint_Pointer is GLint_Pointers.Pointer;
-- GLfloat_Pointer
--
package GLfloat_Pointers is new C.Pointers (Index => C.size_t,
Element => GLfloat,
Element_Array => GLfloat_array,
Default_Terminator => 0.0);
subtype GLfloat_Pointer is GLfloat_Pointers.Pointer;
-- GLvoid_Pointer
--
package GLvoid_Pointers is new C.Pointers (Index => C.size_t,
Element => GLvoid,
Element_Array => GLvoid_array,
Default_Terminator => system.null_Address);
subtype GLvoid_Pointer is GLvoid_Pointers.Pointer;
-- GLvoid_Pointer_Pointer
--
type GLvoid_Pointer_array is array (C.size_t range <>) of aliased GLvoid_Pointer;
package GLvoid_Pointer_Pointers is new C.Pointers (Index => C.size_t,
Element => GLvoid_Pointer,
Element_Array => GLvoid_Pointer_array,
Default_Terminator => null);
subtype GLvoid_Pointer_Pointer is GLvoid_Pointer_Pointers.Pointer;
-------------
-- Constants
--
GL_ADD : constant := 16#0104#;
GL_ALPHA_TEST : constant := 16#0BC0#;
GL_ALPHA_TEST_FUNC : constant := 16#0BC1#;
GL_ALPHA_TEST_REF : constant := 16#0BC2#;
GL_AMBIENT : constant := 16#1200#;
GL_AMBIENT_AND_DIFFUSE : constant := 16#1602#;
GL_BLEND_DST : constant := 16#0BE0#;
GL_BLEND_SRC : constant := 16#0BE1#;
GL_CLIENT_ACTIVE_TEXTURE : constant := 16#84E1#;
GL_COLOR : constant := 16#1800#;
GL_COLOR_ARRAY : constant := 16#8076#;
GL_COLOR_ARRAY_POINTER : constant := 16#8090#;
GL_COLOR_ARRAY_SIZE : constant := 16#8081#;
GL_COLOR_ARRAY_STRIDE : constant := 16#8083#;
GL_COLOR_ARRAY_TYPE : constant := 16#8082#;
GL_COLOR_INDEX : constant := 16#1900#;
GL_COLOR_INDEX8_EXT : constant := 16#80E5#;
GL_COLOR_MATERIAL : constant := 16#0B57#;
GL_COLOR_TABLE_ALPHA_SIZE : constant := 16#80DD#;
GL_COLOR_TABLE_BLUE_SIZE : constant := 16#80DC#;
GL_COLOR_TABLE_FORMAT : constant := 16#80D8#;
GL_COLOR_TABLE_GREEN_SIZE : constant := 16#80DB#;
GL_COLOR_TABLE_INTENSITY_SIZE : constant := 16#80DF#;
GL_COLOR_TABLE_LUMINANCE_SIZE : constant := 16#80DE#;
GL_COLOR_TABLE_RED_Size : constant := 16#80DA#;
GL_COLOR_TABLE_WIDTH : constant := 16#80D9#;
GL_COMPILE : constant := 16#1300#;
GL_CURRENT_COLOR : constant := 16#0B00#;
GL_CURRENT_NORMAL : constant := 16#0B02#;
GL_CURRENT_RASTER_COLOR : constant := 16#0B04#;
GL_CURRENT_RASTER_TEXTURE_COORDS : constant := 16#0B06#;
GL_CURRENT_TEXTURE_COORDS : constant := 16#0B03#;
GL_DECAL : constant := 16#2101#;
GL_DIFFUSE : constant := 16#1201#;
GL_EMISSION : constant := 16#1600#;
GL_EXT_paletted_texture : constant := 1;
GL_FLAT : constant := 16#1D00#;
GL_LIGHT0 : constant := 16#4000#;
GL_LIGHT1 : constant := 16#4001#;
GL_LIGHTING : constant := 16#0B50#;
GL_LIGHT_MODEL_AMBIENT : constant := 16#0B53#;
GL_LINE_SMOOTH : constant := 16#0B20#;
GL_LINE_SMOOTH_HINT : constant := 16#0C52#;
GL_LINE_STIPPLE : constant := 16#0B24#;
GL_LINE_STIPPLE_PATTERN : constant := 16#0B25#;
GL_LINE_STIPPLE_REPEAT : constant := 16#0B26#;
GL_LIST_BASE : constant := 16#0B32#;
GL_MATRIX_MODE : constant := 16#0BA0#;
GL_MAX_ELEMENTS_INDICES : constant := 16#80E9#;
GL_MAX_ELEMENTS_VERTICES : constant := 16#80E8#;
GL_MAX_LIGHTS : constant := 16#0D31#;
GL_MAX_LIST_NESTING : constant := 16#0B31#;
GL_MAX_MODELVIEW_STACK_DEPTH : constant := 16#0D36#;
GL_MAX_PROJECTION_STACK_DEPTH : constant := 16#0D38#;
GL_MAX_TEXTURE_UNITS : constant := 16#84E2#;
GL_MODELVIEW : constant := 16#1700#;
GL_MODELVIEW_MATRIX : constant := 16#0BA6#;
GL_MODELVIEW_STACK_DEPTH : constant := 16#0BA3#;
GL_MODULATE : constant := 16#2100#;
GL_NORMALIZE : constant := 16#0BA1#;
GL_NORMAL_ARRAY : constant := 16#8075#;
GL_NORMAL_ARRAY_POINTER : constant := 16#808F#;
GL_NORMAL_ARRAY_STRIDE : constant := 16#807F#;
GL_NORMAL_ARRAY_TYPE : constant := 16#807E#;
GL_OES_single_precision : constant := 1;
GL_OSC_VERSION_1_0 : constant := 1;
GL_PERSPECTIVE_CORRECTION_HINT : constant := 16#0C50#;
GL_POINT_SIZE : constant := 16#0B11#;
GL_POINT_SMOOTH : constant := 16#0B10#;
GL_POINT_SMOOTH_HINT : constant := 16#0C51#;
GL_POLYGON_SMOOTH_HINT : constant := 16#0C53#;
GL_POLYGON_STIPPLE : constant := 16#0B42#;
GL_POSITION : constant := 16#1203#;
GL_PROJECTION : constant := 16#1701#;
GL_PROJECTION_MATRIX : constant := 16#0BA7#;
GL_PROJECTION_STACK_DEPTH : constant := 16#0BA4#;
GL_RESCALE_NORMAL : constant := 16#803A#;
GL_SHADE_MODEL : constant := 16#0B54#;
GL_SHININESS : constant := 16#1601#;
GL_SMOOTH : constant := 16#1D01#;
GL_SMOOTH_LINE_WIDTH_GRANULARITY : constant := 16#0B23#;
GL_SMOOTH_LINE_WIDTH_RANGE : constant := 16#0B22#;
GL_SMOOTH_POINT_SIZE_GRANULARITY : constant := 16#0B13#;
GL_SMOOTH_POINT_SIZE_RANGE : constant := 16#0B12#;
GL_SPECULAR : constant := 16#1202#;
GL_STACK_OVERFLOW : constant := 16#0503#;
GL_STACK_UNDERFLOW : constant := 16#0504#;
GL_TEXTURE_COORD_ARRAY : constant := 16#8078#;
GL_TEXTURE_COORD_ARRAY_POINTER : constant := 16#8092#;
GL_TEXTURE_COORD_ARRAY_SIZE : constant := 16#8088#;
GL_TEXTURE_COORD_ARRAY_STRIDE : constant := 16#808A#;
GL_TEXTURE_COORD_ARRAY_TYPE : constant := 16#8089#;
GL_TEXTURE_ENV : constant := 16#2300#;
GL_TEXTURE_ENV_COLOR : constant := 16#2201#;
GL_TEXTURE_ENV_MODE : constant := 16#2200#;
GL_VERTEX_ARRAY : constant := 16#8074#;
GL_VERTEX_ARRAY_POINTER : constant := 16#808E#;
GL_VERTEX_ARRAY_SIZE : constant := 16#807A#;
GL_VERTEX_ARRAY_STRIDE : constant := 16#807C#;
GL_VERTEX_ARRAY_TYPE : constant := 16#807B#;
--------------
-- Functions
--
procedure glAlphaFunc (Func : in GLenum;
Ref : in GLclampf);
procedure glBegin (Mode : in GLenum);
procedure glBitmap (Width : in GLsizei;
Height : in GLsizei;
xOrig : in GLfloat;
yOrig : in GLfloat;
xMove : in GLfloat;
yMove : in GLfloat;
Bitmap : in GLubyte_Pointer);
procedure glCallLists (N : in GLsizei;
the_Type : in GLenum;
Lists : in GLvoid_Pointer);
procedure glClientActiveTexture (Texture : in GLenum);
procedure glColor4f (Red : in GLfloat;
Green : in GLfloat;
Blue : in GLfloat;
Alpha : in GLfloat);
procedure glColor4fv (V : in GLfloat_Pointer);
procedure glColor4ub (Red : in GLubyte;
Green : in GLubyte;
Blue : in GLubyte;
Alpha : in GLubyte);
procedure glColorPointer (Size : in GLint;
the_Type : in GLenum;
Stride : in GLsizei;
Ptr : in GLvoid_Pointer);
procedure glCopyPixels (X : in GLint;
Y : in GLint;
Width : in GLsizei;
Height : in GLsizei;
the_Type : in GLenum);
procedure glDisableClientState (Cap : in GLenum);
procedure glDrawPixels (Width : in GLsizei;
Height : in GLsizei;
Format : in GLenum;
the_Type : in GLenum;
Pixels : in GLvoid_Pointer);
procedure glEnableClientState (Cap : in GLenum);
procedure glEnd;
procedure glEndList;
procedure glFrustumf (Left : in GLfloat;
Right : in GLfloat;
Bottom : in GLfloat;
Top : in GLfloat;
near_Val : in GLfloat;
far_Val : in GLfloat);
function glGenLists (the_Range : in GLsizei) return GLuint;
procedure glGetLightfv (Light : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glGetMaterialfv (Face : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glGetPointerv (pName : in GLenum;
Params : in GLvoid_Pointer_Pointer);
procedure glGetPolygonStipple (Mask : in GLubyte_Pointer);
procedure glGetTexEnvfv (Target : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glGetTexEnviv (Target : in GLenum;
pName : in GLenum;
Params : in GLint_Pointer);
procedure glLightModelfv (pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glLightfv (Light : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glLineStipple (Factor : in GLint;
Pattern : in GLushort);
procedure glListBase (Base : in GLuint);
procedure glLoadIdentity;
procedure glLoadMatrixf (M : in GLfloat_Pointer);
procedure glMaterialf (Face : in GLenum;
pName : in GLenum;
Param : in GLfloat);
procedure glMaterialfv (Face : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glMatrixMode (Mode : in GLenum);
procedure glMultMatrixf (M : in GLfloat_Pointer);
procedure glMultiTexCoord2f (Target : in GLenum;
S : in GLfloat;
T : in GLfloat);
procedure glMultiTexCoord2fv (Target : in GLenum;
V : in GLfloat_Pointer);
procedure glNewList (List : in GLuint;
Mode : in GLenum);
procedure glNormal3f (nX : in GLfloat;
nY : in GLfloat;
nZ : in GLfloat);
procedure glNormal3fv (V : in GLfloat_Pointer);
procedure glNormalPointer (the_Type : in GLenum;
Stride : in GLsizei;
Ptr : in GLvoid_Pointer);
procedure glOrthof (Left : in GLfloat;
Right : in GLfloat;
Bottom : in GLfloat;
Top : in GLfloat;
Near : in GLfloat;
Far : in GLfloat);
procedure glPointSize (Size : in GLfloat);
procedure glPolygonStipple (Mask : in GLubyte_Pointer);
procedure glPopMatrix;
procedure glPushMatrix;
procedure glRasterPos3f (X : in GLfloat;
Y : in GLfloat;
Z : in GLfloat);
procedure glRotatef (Angle : in GLfloat;
X : in GLfloat;
Y : in GLfloat;
Z : in GLfloat);
procedure glScalef (X : in GLfloat;
Y : in GLfloat;
Z : in GLfloat);
procedure glShadeModel (Mode : in GLenum);
procedure glTexCoordPointer (Size : in GLint;
the_Type : in GLenum;
Stride : in GLsizei;
Ptr : in GLvoid_Pointer);
procedure glTexEnvfv (Target : in GLenum;
pName : in GLenum;
Params : in GLfloat_Pointer);
procedure glTexEnvi (Target : in GLenum;
pName : in GLenum;
Param : in GLint);
procedure glTranslatef (X : in GLfloat;
Y : in GLfloat;
Z : in GLfloat);
procedure glVertex2f (X : in GLfloat;
Y : in GLfloat);
procedure glVertex2fv (V : in GLfloat_Pointer);
procedure glVertex3f (X : in GLfloat;
Y : in GLfloat;
Z : in GLfloat);
procedure glVertex3fv (V : in GLfloat_Pointer);
procedure glVertexPointer (Size : in GLint;
the_Type : in GLenum;
Stride : in GLsizei;
Ptr : in GLvoid_Pointer);
private
pragma Import (StdCall, glAlphaFunc, "glAlphaFunc");
pragma Import (StdCall, glBegin, "glBegin");
pragma Import (StdCall, glBitmap, "glBitmap");
pragma Import (StdCall, glCallLists, "glCallLists");
pragma Import (StdCall, glClientActiveTexture, "glClientActiveTexture");
pragma Import (StdCall, glColor4f, "glColor4f");
pragma Import (StdCall, glColor4fv, "glColor4fv");
pragma Import (StdCall, glColor4ub, "glColor4ub");
pragma Import (StdCall, glColorPointer, "glColorPointer");
pragma Import (StdCall, glCopyPixels, "glCopyPixels");
pragma Import (StdCall, glDisableClientState, "glDisableClientState");
pragma Import (StdCall, glDrawPixels, "glDrawPixels");
pragma Import (StdCall, glEnableClientState, "glEnableClientState");
pragma Import (StdCall, glEnd, "glEnd");
pragma Import (StdCall, glEndList, "glEndList");
pragma Import (StdCall, glFrustumf, "glFrustumf");
pragma Import (StdCall, glGenLists, "glGenLists");
pragma Import (StdCall, glGetLightfv, "glGetLightfv");
pragma Import (StdCall, glGetMaterialfv, "glGetMaterialfv");
pragma Import (StdCall, glGetPointerv, "glGetPointerv");
pragma Import (StdCall, glGetPolygonStipple, "glGetPolygonStipple");
pragma Import (StdCall, glGetTexEnvfv, "glGetTexEnvfv");
pragma Import (StdCall, glGetTexEnviv, "glGetTexEnviv");
pragma Import (StdCall, glLightModelfv, "glLightModelfv");
pragma Import (StdCall, glLightfv, "glLightfv");
pragma Import (StdCall, glLineStipple, "glLineStipple");
pragma Import (StdCall, glListBase, "glListBase");
pragma Import (StdCall, glLoadIdentity, "glLoadIdentity");
pragma Import (StdCall, glLoadMatrixf, "glLoadMatrixf");
pragma Import (StdCall, glMaterialf, "glMaterialf");
pragma Import (StdCall, glMaterialfv, "glMaterialfv");
pragma Import (StdCall, glMatrixMode, "glMatrixMode");
pragma Import (StdCall, glMultMatrixf, "glMultMatrixf");
pragma Import (StdCall, glMultiTexCoord2f, "glMultiTexCoord2f");
pragma Import (StdCall, glMultiTexCoord2fv, "glMultiTexCoord2fv");
pragma Import (StdCall, glNewList, "glNewList");
pragma Import (StdCall, glNormal3f, "glNormal3f");
pragma Import (StdCall, glNormal3fv, "glNormal3fv");
pragma Import (StdCall, glNormalPointer, "glNormalPointer");
pragma Import (StdCall, glOrthof, "glOrthof");
pragma Import (StdCall, glPointSize, "glPointSize");
pragma Import (StdCall, glPolygonStipple, "glPolygonStipple");
pragma Import (StdCall, glPopMatrix, "glPopMatrix");
pragma Import (StdCall, glPushMatrix, "glPushMatrix");
pragma Import (StdCall, glRasterPos3f, "glRasterPos3f");
pragma Import (StdCall, glRotatef, "glRotatef");
pragma Import (StdCall, glScalef, "glScalef");
pragma Import (StdCall, glShadeModel, "glShadeModel");
pragma Import (StdCall, glTexCoordPointer, "glTexCoordPointer");
pragma Import (StdCall, glTexEnvfv, "glTexEnvfv");
pragma Import (StdCall, glTexEnvi, "glTexEnvi");
pragma Import (StdCall, glTranslatef, "glTranslatef");
pragma Import (StdCall, glVertex2f, "glVertex2f");
pragma Import (StdCall, glVertex2fv, "glVertex2fv");
pragma Import (StdCall, glVertex3f, "glVertex3f");
pragma Import (StdCall, glVertex3fv, "glVertex3fv");
pragma Import (StdCall, glVertexPointer, "glVertexPointer");
end GL.safe;
-- TODO: Bind these missing functions, if needed.
--
-- GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table);
-- GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
-- GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, GLvoid *table);
-- GLAPI void APIENTRY glGetColorTableParameterivEXT
-- (GLenum target, GLenum pname, GLint *params);