pike.git / src / post_modules / GL / top.c

version» Context lines:

pike.git/src/post_modules/GL/top.c:1:   /* -  * $Id: top.c,v 1.4 1999/07/18 15:09:04 marcus Exp $ +  * $Id: top.c,v 1.5 1999/07/23 23:28:38 marcus Exp $    *    */      #include <GL/gl.h>   #include <GL/glx.h>      #include "global.h"      #include "config.h"    - RCSID("$Id: top.c,v 1.4 1999/07/18 15:09:04 marcus Exp $"); + RCSID("$Id: top.c,v 1.5 1999/07/23 23:28:38 marcus Exp $");   #include "stralloc.h"   #include "pike_macros.h"   #include "object.h"   #include "program.h"   #include "interpret.h"   #include "builtin_functions.h"   #include "error.h"       -  + static void f_glGet(INT32 args) + { +  INT32 arg1; +  GLint i; +  GLboolean b[4]; +  GLfloat f[16]; +  +  check_all_args("glGet", args, BIT_INT, 0); +  +  arg1=sp[0-args].u.integer; +  +  pop_n_elems(args); +  +  switch(arg1) { +  case GL_ACCUM_ALPHA_BITS: +  case GL_ACCUM_BLUE_BITS: +  case GL_ACCUM_GREEN_BITS: +  case GL_ACCUM_RED_BITS: +  case GL_ALPHA_BITS: +  case GL_ALPHA_TEST_FUNC: +  case GL_ATTRIB_STACK_DEPTH: +  case GL_AUX_BUFFERS: +  case GL_BLEND_DST: +  case GL_BLEND_SRC: +  case GL_BLUE_BITS: +  case GL_CLIENT_ATTRIB_STACK_DEPTH: +  case GL_COLOR_ARRAY_SIZE: +  case GL_COLOR_ARRAY_STRIDE: +  case GL_COLOR_ARRAY_TYPE: +  case GL_COLOR_MATERIAL_FACE: +  case GL_COLOR_MATERIAL_PARAMETER: +  case GL_CULL_FACE_MODE: +  case GL_DEPTH_BITS: +  glGetIntegerv(arg1, &i); +  push_int(i); +  break; +  +  case GL_ALPHA_TEST: +  case GL_AUTO_NORMAL: +  case GL_BLEND: +  case GL_CLIP_PLANE0: +  case GL_CLIP_PLANE1: +  case GL_CLIP_PLANE2: +  case GL_CLIP_PLANE3: +  case GL_CLIP_PLANE4: +  case GL_CLIP_PLANE5: +  case GL_COLOR_ARRAY: +  case GL_COLOR_LOGIC_OP: +  case GL_COLOR_MATERIAL: +  case GL_CULL_FACE: +  case GL_CURRENT_RASTER_POSITION_VALID: +  glGetBooleanv(arg1, b); +  push_int(b[0]); +  break; +  +  case GL_ALPHA_BIAS: +  case GL_ALPHA_SCALE: +  case GL_ALPHA_TEST_REF: +  case GL_BLUE_BIAS: +  case GL_BLUE_SCALE: +  case GL_CURRENT_INDEX: +  case GL_CURRENT_RASTER_DISTANCE: +  case GL_CURRENT_RASTER_INDEX: +  case GL_DEPTH_BIAS: +  case GL_DEPTH_CLEAR_VALUE: +  glGetFloatv(arg1, f); +  push_float(f[0]); +  break; +  +  case GL_CURRENT_NORMAL: +  glGetFloatv(arg1, f); +  push_float(f[0]); +  push_float(f[1]); +  push_float(f[2]); +  f_aggregate(3); +  break; +  +  case GL_ACCUM_CLEAR_VALUE: +  case GL_COLOR_CLEAR_VALUE: +  case GL_CURRENT_COLOR: +  case GL_CURRENT_RASTER_COLOR: +  case GL_CURRENT_RASTER_POSITION: +  case GL_CURRENT_RASTER_TEXTURE_COORDS: +  case GL_CURRENT_TEXTURE_COORDS: +  glGetFloatv(arg1, f); +  push_float(f[0]); +  push_float(f[1]); +  push_float(f[2]); +  push_float(f[3]); +  f_aggregate(4); +  break; +  +  case GL_COLOR_WRITEMASK: +  glGetBooleanv(arg1, b); +  push_int(b[0]); +  push_int(b[1]); +  push_int(b[2]); +  push_int(b[3]); +  f_aggregate(4); +  break; +  +  case GL_DEPTH_FUNC: +  case GL_DEPTH_RANGE: +  case GL_DEPTH_SCALE: +  case GL_DEPTH_TEST: +  case GL_DEPTH_WRITEMASK: +  case GL_DITHER: +  case GL_DOUBLEBUFFER: +  case GL_DRAW_BUFFER: +  case GL_EDGE_FLAG: +  case GL_EDGE_FLAG_ARRAY: +  case GL_EDGE_FLAG_ARRAY_STRIDE: +  case GL_FOG: +  case GL_FOG_COLOR: +  case GL_FOG_DENSITY: +  case GL_FOG_END: +  case GL_FOG_HINT: +  case GL_FOG_INDEX: +  case GL_FOG_MODE: +  case GL_FOG_START: +  case GL_FRONT_FACE: +  case GL_GREEN_BIAS: +  case GL_GREEN_BITS: +  case GL_GREEN_SCALE: +  case GL_INDEX_ARRAY: +  case GL_INDEX_ARRAY_STRIDE: +  case GL_INDEX_ARRAY_TYPE: +  case GL_INDEX_BITS: +  case GL_INDEX_CLEAR_VALUE: +  case GL_INDEX_LOGIC_OP: +  case GL_INDEX_MODE: +  case GL_INDEX_OFFSET: +  case GL_INDEX_SHIFT: +  case GL_INDEX_WRITEMASK: +  case GL_LIGHT0: +  case GL_LIGHT1: +  case GL_LIGHT2: +  case GL_LIGHT3: +  case GL_LIGHT4: +  case GL_LIGHT5: +  case GL_LIGHT6: +  case GL_LIGHT7: +  case GL_LIGHTING: +  case GL_LIGHT_MODEL_AMBIENT: +  case GL_LIGHT_MODEL_LOCAL_VIEWER: +  case GL_LIGHT_MODEL_TWO_SIDE: +  case GL_LINE_SMOOTH: +  case GL_LINE_SMOOTH_HINT: +  case GL_LINE_STIPPLE: +  case GL_LINE_STIPPLE_PATTERN: +  case GL_LINE_STIPPLE_REPEAT: +  case GL_LINE_WIDTH: +  case GL_LINE_WIDTH_GRANULARITY: +  case GL_LINE_WIDTH_RANGE: +  case GL_LIST_BASE: +  case GL_LIST_INDEX: +  case GL_LIST_MODE: +  case GL_LOGIC_OP_MODE: +  case GL_MAP1_COLOR_4: +  case GL_MAP1_GRID_DOMAIN: +  case GL_MAP1_GRID_SEGMENTS: +  case GL_MAP1_INDEX: +  case GL_MAP1_NORMAL: +  case GL_MAP1_TEXTURE_COORD_1: +  case GL_MAP1_TEXTURE_COORD_2: +  case GL_MAP1_TEXTURE_COORD_3: +  case GL_MAP1_TEXTURE_COORD_4: +  case GL_MAP1_VERTEX_3: +  case GL_MAP1_VERTEX_4: +  case GL_MAP2_COLOR_4: +  case GL_MAP2_GRID_DOMAIN: +  case GL_MAP2_GRID_SEGMENTS: +  case GL_MAP2_INDEX: +  case GL_MAP2_NORMAL: +  case GL_MAP2_TEXTURE_COORD_1: +  case GL_MAP2_TEXTURE_COORD_2: +  case GL_MAP2_TEXTURE_COORD_3: +  case GL_MAP2_TEXTURE_COORD_4: +  case GL_MAP2_VERTEX_3: +  case GL_MAP2_VERTEX_4: +  case GL_MAP_COLOR: +  case GL_MAP_STENCIL: +  case GL_MATRIX_MODE: +  case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: +  case GL_MAX_ATTRIB_STACK_DEPTH: +  case GL_MAX_CLIP_PLANES: +  case GL_MAX_EVAL_ORDER: +  case GL_MAX_LIGHTS: +  case GL_MAX_LIST_NESTING: +  case GL_MAX_MODELVIEW_STACK_DEPTH: +  case GL_MAX_NAME_STACK_DEPTH: +  case GL_MAX_PIXEL_MAP_TABLE: +  case GL_MAX_PROJECTION_STACK_DEPTH: +  case GL_MAX_TEXTURE_SIZE: +  case GL_MAX_TEXTURE_STACK_DEPTH: +  case GL_MAX_LIGHTS: +  case GL_MAX_LIST_NESTING: +  case GL_MAX_MODELVIEW_STACK_DEPTH: +  case GL_MAX_NAME_STACK_DEPTH: +  case GL_MAX_PIXEL_MAP_TABLE: +  case GL_MAX_PROJECTION_STACK_DEPTH: +  case GL_MAX_TEXTURE_SIZE: +  case GL_MAX_TEXTURE_STACK_DEPTH: +  case GL_MAX_VIEWPORT_DIMS: +  case GL_MODELVIEW_MATRIX: +  case GL_MODELVIEW_STACK_DEPTH: +  case GL_NAME_STACK_DEPTH: +  case GL_NORMAL_ARRAY: +  case GL_NORMAL_ARRAY_STRIDE: +  case GL_NORMAL_ARRAY_TYPE: +  case GL_NORMALIZE: +  case GL_PACK_ALIGNMENT: +  case GL_PACK_LSB_FIRST: +  case GL_PACK_ROW_LENGTH: +  case GL_PACK_SKIP_PIXELS: +  case GL_PACK_SKIP_ROWS: +  case GL_PACK_SWAP_BYTES: +  case GL_PERSPECTIVE_CORRECTION_HINT: +  case GL_PIXEL_MAP_A_TO_A_SIZE: +  case GL_PIXEL_MAP_B_TO_B_SIZE: +  case GL_PIXEL_MAP_G_TO_G_SIZE: +  case GL_PIXEL_MAP_I_TO_A_SIZE: +  case GL_PIXEL_MAP_I_TO_B_SIZE: +  case GL_PIXEL_MAP_I_TO_G_SIZE: +  case GL_PIXEL_MAP_I_TO_I_SIZE: +  case GL_PIXEL_MAP_I_TO_R_SIZE: +  case GL_PIXEL_MAP_R_TO_R_SIZE: +  case GL_PIXEL_MAP_S_TO_S_SIZE: +  case GL_POINT_SIZE: +  case GL_POINT_SIZE_GRANULARITY: +  case GL_POINT_SIZE_RANGE: +  case GL_POINT_SMOOTH: +  case GL_POINT_SMOOTH_HINT: +  case GL_POLYGON_MODE: +  case GL_POLYGON_OFFSET_FACTOR: +  case GL_POLYGON_OFFSET_UNITS: +  case GL_POLYGON_OFFSET_FILL: +  case GL_POLYGON_OFFSET_LINE: +  case GL_POLYGON_OFFSET_POINT: +  case GL_POLYGON_SMOOTH: +  case GL_POLYGON_SMOOTH_HINT: +  case GL_POLYGON_STIPPLE: +  case GL_PROJECTION_MATRIX: +  case GL_PROJECTION_STACK_DEPTH: +  case GL_READ_BUFFER: +  case GL_RED_BIAS: +  case GL_RED_BITS: +  case GL_RED_SCALE: +  case GL_RENDER_MODE: +  case GL_RGBA_MODE: +  case GL_SCISSOR_BOX: +  case GL_SCISSOR_TEST: +  case GL_SHADE_MODEL: +  case GL_STENCIL_BITS: +  case GL_STENCIL_CLEAR_VALUE: +  case GL_STENCIL_FAIL: +  case GL_STENCIL_FUNC: +  case GL_STENCIL_PASS_DEPTH_FAIL: +  case GL_STENCIL_PASS_DEPTH_PASS: +  case GL_STENCIL_REF: +  case GL_STENCIL_TEST: +  case GL_STENCIL_VALUE_MASK: +  case GL_STENCIL_WRITEMASK: +  case GL_STEREO: +  case GL_SUBPIXEL_BITS: +  case GL_TEXTURE_1D: +  case GL_TEXTURE_1D_BINDING: +  case GL_TEXTURE_2D: +  case GL_TEXTURE_2D_BINDING: +  case GL_TEXTURE_COORD_ARRAY: +  case GL_TEXTURE_COORD_ARRAY_SIZE: +  case GL_TEXTURE_COORD_ARRAY_STRIDE: +  case GL_TEXTURE_COORD_ARRAY_TYPE: +  case GL_TEXTURE_GEN_Q: +  case GL_TEXTURE_GEN_R: +  case GL_TEXTURE_GEN_S: +  case GL_TEXTURE_GEN_T: +  case GL_TEXTURE_MATRIX: +  case GL_TEXTURE_STACK_DEPTH: +  case GL_UNPACK_ALIGNMENT: +  case GL_UNPACK_LSB_FIRST: +  case GL_UNPACK_ROW_LENGTH: +  case GL_UNPACK_SKIP_PIXELS: +  case GL_UNPACK_SKIP_ROWS: +  case GL_UNPACK_SWAP_BYTES: +  case GL_VERTEX_ARRAY: +  case GL_VERTEX_ARRAY_SIZE: +  case GL_VERTEX_ARRAY_STRIDE: +  case GL_VERTEX_ARRAY_TYPE: +  case GL_VIEWPORT: +  case GL_ZOOM_X: +  case GL_ZOOM_Y: +  error("Not implemented (yet)\n"); +  } + } +  +    void pike_module_init( void )   {    extern void add_auto_funcs(void);    -  +  add_function_constant("glGet", f_glGet, +  "function(int:int|float|array(int)|array(float))", +  OPT_SIDE_EFFECT);    add_auto_funcs();   }         void pike_module_exit( void )   {   }