23.6 Agl Interface

ORIGIN 'opengl';

--lib:attributes--

(*------ GLX ---------- *)
(* note this is not complete,
 * only intendet for internal use,
 * as programs is not platform independent 
 *)

AGL_NONE: (# exit 0 #);
AGL_ALL_RENDERERS: (# exit 1 #);  (* choose from all available renderers *)
AGL_BUFFER_SIZE: (# exit 2 #);  (* depth of the index buffer *)
AGL_LEVEL: (# exit 3 #);  (* level in plane stacking *)
AGL_RGBA: (# exit 4 #);  (* choose an RGBA format *)
AGL_DOUBLEBUFFER: (# exit 5 #);  (* double buffering supported *)
AGL_STEREO: (# exit 6 #);  (* stereo buffering supported *)
AGL_AUX_BUFFERS: (# exit 7 #);  (* number of aux buffers *)
AGL_RED_SIZE: (# exit 8 #);  (* number of red component bits *)
AGL_GREEN_SIZE: (# exit 9 #);  (* number of green component bits *)
AGL_BLUE_SIZE: (# exit 10 #);  (* number of blue component bits *)
AGL_ALPHA_SIZE: (# exit 11 #);  (* number of alpha component bits *)
AGL_DEPTH_SIZE: (# exit 12 #);  (* number of depth bits *)
AGL_STENCIL_SIZE: (# exit 13 #);  (* number of stencil bits *)
AGL_ACCUM_RED_SIZE: (# exit 14 #);  (* number of red accum bits *)
AGL_ACCUM_GREEN_SIZE: (# exit 15 #);  (* number of green accum bits *)
AGL_ACCUM_BLUE_SIZE: (# exit 16 #);  (* number of blue accum bits *)
AGL_ACCUM_ALPHA_SIZE: (# exit 17 #);  (* number of alpha accum bits *)

(*
 ** Extended attributes
 *)
AGL_OFFSCREEN: (# exit 50 #);  (* choose an off-screen capable renderer *)
AGL_FULLSCREEN: (# exit 51 #);  (* allow a full-screen renderer *)
AGL_MINIMUM_POLICY: (# exit 52 #);  (* never choose smaller buffers than requested *)
AGL_MAXIMUM_POLICY: (# exit 53 #);  (* choose largest buffers of type requested *)
AGL_CLOSEST_POLICY: (# exit 54 #);  (* choose the closest color buffer to request *)
AGL_PIXEL_SIZE: (# exit 55 #);  (* frame buffer bits per pixel *)
(* Renderer management *)
AGL_RENDERER_ID: (# exit 70 #);  (* request renderer by ID *)
AGL_SINGLE_RENDERER: (# exit 71 #);  (* choose a single renderer for all screens *)
(* OpenGL option capabilities *)
AGL_COMPLIANCE: (# exit 72 #);  (* bitfield of required opengl options *)
AGL_PERFORMANCE: (# exit 73 #);  (* bitfield of desired performance options *)
(* Only for aglDescribePixelFormat *)
AGL_VIRTUAL_SCREEN: (# exit 80 #);  (* virtual screen number *)
AGL_MULTISCREEN: (# exit 81 #);  (* single pixel format for multiple screens *)
AGL_BACKING_STORE: (# exit 82 #);  (* back buffer contents are valid after swap *)
AGL_PERFORMANCE_MSB: (# exit 83 #);  (* msb bitfield of performance indicators *)
AGL_PERFORMANCE_LSB: (# exit 84 #);  (* lsb bitfield of performance indicators *)


AGL_FULLSCREEN_640_480: (# exit 1 #);
AGL_FULLSCREEN_600_800: (# exit 2 #);


(*
 ** Property names for aglDescribeRenderer
 *)
                           (* AGL_OFFSCREEN: (# exit 50 #); *)
                           (* AGL_FULLSCREEN: (# exit 51 #); *)
                           (* AGL_RENDERER_ID: (# exit 70 #); *)
                           (* AGL_COMPLIANCE: (# exit 72 #); *)
                           (* AGL_MULTISCREEN: (# exit 81 #); *)
                           (* AGL_BACKING_STORE: (# exit 82 #); *)
                           (* AGL_PERFORMANCE_MSB: (# exit 83 #); *)
                           (* AGL_PERFORMANCE_LSB: (# exit 84 #); *)
AGL_BUFFER_MODES: (# exit 100 #);
AGL_MIN_LEVEL: (# exit 101 #);
AGL_MAX_LEVEL: (# exit 102 #);
AGL_TEXTURE_METHOD: (# exit 103 #);
AGL_POINT_AA_METHOD: (# exit 104 #);
AGL_LINE_AA_METHOD: (# exit 105 #);
AGL_POLYGON_AA_METHOD: (# exit 106 #);
AGL_FOG_METHOD: (# exit 107 #);
AGL_INDEX_SIZES: (# exit 108 #);
AGL_COLOR_MODES: (# exit 109 #);
AGL_ACCUM_MODES: (# exit 110 #);
AGL_DEPTH_SIZES: (# exit 111 #);
AGL_STENCIL_SIZES: (# exit 112 #);
AGL_MAX_AUX_BUFFERS: (# exit 113 #); 

(*
 ** Renderer option bitfields
 *)
AGL_TRANSFORM: (# exit 0x00000001 #);    (* Geometry options *)
AGL_CLIPPING: (# exit 0x00000002 #);
AGL_LIGHTING: (# exit 0x00000004 #);

AGL_COPY_PIXELS: (# exit 0x00000008 #);    (* Primitive types *)
AGL_DRAW_PIXELS: (# exit 0x00000010 #);
AGL_READ_PIXELS: (# exit 0x00000020 #);
AGL_BITMAP: (# exit 0x00000040 #);
AGL_POINT: (# exit 0x00000080 #);
AGL_LINE: (# exit 0x00000100 #);
AGL_POLYGON: (# exit 0x00000200 #);
AGL_AA_POINT: (# exit 0x00000400 #);
AGL_AA_LINE: (# exit 0x00000800 #);
AGL_AA_POLYGON: (# exit 0x00001000 #);

AGL_SMOOTH_SHADING: (# exit 0x00002000 #);    (* Raster options *)
AGL_STIPPLE: (# exit 0x00004000 #);
AGL_TEXTURE: (# exit 0x00008000 #);
AGL_ALPHA_TEST: (# exit 0x00010000 #);
AGL_STENCIL_TEST: (# exit 0x00020000 #);
AGL_DEPTH_TEST: (# exit 0x00040000 #);
AGL_POLYGON_OFFSET: (# exit 0x00080000 #);
AGL_FOG: (# exit 0x00100000 #);
AGL_BLEND: (# exit 0x00200000 #);
AGL_DITHER: (# exit 0x00400000 #);
AGL_LOGIC_OP: (# exit 0x00800000 #);
AGL_MASKING: (# exit 0x01000000 #);

AGL_ALL_OPTIONS: (# exit 0x01ffffff #);

(*
 ** Renderer property bitfields
 *)

(* buffer_modes *)
AGL_STEREO_MODE: (# exit 0x00000001 #);
AGL_SINGLEBUFFER_MODE: (# exit 0x00000002 #);
AGL_DOUBLEBUFFER_MODE: (# exit 0x00000004 #);

(* algorithm methods *)
AGL_FASTEST: (# exit 0x00000002 #);
AGL_NICEST: (# exit 0x00000004 #);

(* bit depths *)
AGL_0_BIT: (# exit 0x00000001 #);
AGL_1_BIT: (# exit 0x00000002 #);
AGL_2_BIT: (# exit 0x00000004 #);
AGL_4_BIT: (# exit 0x00000008 #);
AGL_8_BIT: (# exit 0x00000010 #);
AGL_12_BIT: (# exit 0x00000020 #);
AGL_16_BIT: (# exit 0x00000040 #);
AGL_24_BIT: (# exit 0x00000080 #);
AGL_32_BIT: (# exit 0x00000100 #);
AGL_48_BIT: (# exit 0x00000200 #);
AGL_64_BIT: (# exit 0x00000400 #);

(* color modes *)
AGL_RGB_332: (# exit 0x00000001 #);  (* 8 rgb bit/pixel,     R=7:6, G=5:3, B=2:0 *)
AGL_ARGB_8332: (# exit 0x00000002 #);  (* 8-8 argb bit/pixel,  A=7:0, R=7:6, G=5:3, B=2:0 *)
AGL_RGB_555: (# exit 0x00000004 #);  (* 16 rgb bit/pixel,    R=14:10, G=9:5, B=4:0 *)
AGL_ARGB_1555: (# exit 0x00000008 #);  (* 16 argb bit/pixel,   A=15, R=14:10, G=9:5, B=4:0 *)
AGL_ARGB_8555: (# exit 0x00000010 #);  (* 8-16 argb bit/pixel, A=7:0, R=14:10, G=9:5, B=4:0 *)
AGL_RGB_888: (# exit 0x00000020 #);  (* 32 rgb bit/pixel,    R=23:16, G=15:8, B=7:0 *)
AGL_ARGB_8888: (# exit 0x00000040 #);  (* 32 argb bit/pixel,   A=31:24, R=23:16, G=15:8, B=7:0 *)
AGL_RGB_161616: (# exit 0x00000080 #);  (* 32 rgb bit/pixel,    R=23:16, G=15:8, B=7:0 *)
AGL_ARGB_16161616: (# exit 0x00000100 #);  (* 32 argb bit/pixel,   A=31:24, R=23:16, G=15:8, B=7:0 *)
AGL_CL_4: (# exit 0x00000200 #);  (* 4 bit color look up table *)
AGL_CL_8: (# exit 0x00000400 #);  (* 8 bit color look up table *)
AGL_CL_16: (# exit 0x00000800 #);  (* 16 bit color look up table *)
(*
 ** Option names for aglSetOptions.
 *)
AGL_SWAP_HINT: (# exit 1 #);     (* Enable swap buffer hint rectangle *)
AGL_STATE_VALIDATION: (# exit 2 #);     (* Validate state for multi-screen functionality *)

(*
 ** Error return values from aglGetError.
 *)
AGL_NO_ERROR: (# exit 0 #); (* No error *)
AGL_BAD_ATTRIBUTE: (# exit 10000 #); (* unknown pixel format attribute *)
AGL_BAD_PROPERTY: (# exit 10001 #); (* unknown renderer property *)
AGL_BAD_PIXELFMT: (# exit 10002 #); (* invalid pixel fmt specified *)
AGL_BAD_RENDINFO: (# exit 10003 #); (* invalid renderer info specified *)
AGL_BAD_CONTEXT: (# exit 10004 #); (* invalid context specified *)
AGL_BAD_DRAWABLE: (# exit 10005 #); (* invalid drawable specified *)
AGL_BAD_ALLOC: (# exit 10006 #); (* memory allocation failure *)
AGL_BAD_GDEV: (# exit 10007 #); (* invalid GDevice for attribute *)
AGL_BAD_STATE: (# exit 10008 #); (* invalid context state *)
AGL_BAD_VALUE: (# exit 10009 #); (* invalid numerical value *)
AGL_BAD_MATCH: (# exit 10010 #); (* invalid share context match *)
AGL_GL_ERROR: (# exit 10011 #); (* GL error occurred *)

(************************************************************************)



(*---------Various functions ---------------*)

(* Pixel format functions *)


aglChoosePixelFormat: external
  (# AGLGDHandle: @integer;
     ndev: @integer;
     attribs: @integer;
     AGLPixelFormat: @integer;
  enter  (AGLGDHandle, ndev, attribs)
  exit AGLPixelFormat
  #);

aglNextPixelFormat: external
  (# pix: @integer; (* AGLPixelFormat *)
     AGLPixelFormat: @integer;
  enter pix
  exit AGLPixelFormat
  #);

aglDescribePixelFormat: external
  (# AGLPixelFormat: @integer;
     attrib: @integer;
     value: @integer;
     bool: @Boolean;
  enter (AGLPixelFormat, attrib, value)
  exit bool
  #);


aglDevicesOfPixelFormat: external
  (# AGLPixelFormat: @integer;
     ndevs: @integer;
     AGLGDHandle: @integer;
  enter (AGLPixelFormat, ndevs)
  exit AGLGDHandle
  #);

(*  Context functions *)


aglCreateContext: external
  (# AGLPixelFormat: @integer;
     share: @integer; (* AGLContext *)
     AGLContext: @integer;
  enter (AGLPixelFormat, share)
  exit AGLContext
  #);

aglDestroyContext: external
  (# AGLContext: @integer;
     bool: @boolean;
  enter AGLContext
  exit bool
  #);


(* Current state functions *)

aglMakeCurrent: external
  (# AGLDrawable: @integer; (* This is just a pointer to a graphics port *)
     AGLContext: @integer;
     bool: @boolean;
  enter (AGLDrawable, AGLContext)
  exit bool
  #);

aglUpdateCurrent: external
  (# bool: @boolean;
  exit bool
  #);



(* Swapping *)

aglSwapBuffers: external
  (# bool: @boolean;
  exit bool
  #)


23.6 Agl Interface
© 1994-2004 Mjølner Informatics
[Modified: Wednesday September 20th 2000 at 13:07]