#ifndef __L_TINYGL_H_INCLUDED_
#define __L_TINYGL_H_INCLUDED_
//
// tinygl.obj
//

enum {
	/* Boolean values */
	GL_FALSE			= 0, 
	GL_TRUE				= 1, 

	/* Data types */
	GL_BYTE				= 0x1400, 
	GL_UNSIGNED_BYTE		= 0x1401, 
	GL_SHORT			= 0x1402, 
	GL_UNSIGNED_SHORT		= 0x1403, 
	GL_INT				= 0x1404, 
	GL_UNSIGNED_INT			= 0x1405, 
	GL_FLOAT			= 0x1406, 
	GL_DOUBLE			= 0x140A, 
	GL_2_BYTES			= 0x1407, 
	GL_3_BYTES			= 0x1408, 
	GL_4_BYTES			= 0x1409, 

	/* Primitives */
	GL_LINES			= 0x0001, 
	GL_POINTS			= 0x0000, 
	GL_LINE_STRIP			= 0x0003, 
	GL_LINE_LOOP			= 0x0002, 
	GL_TRIANGLES			= 0x0004, 
	GL_TRIANGLE_STRIP		= 0x0005, 
	GL_TRIANGLE_FAN			= 0x0006, 
	GL_QUADS			= 0x0007, 
	GL_QUAD_STRIP			= 0x0008, 
	GL_POLYGON			= 0x0009, 
	GL_EDGE_FLAG			= 0x0B43, 

	/* Vertex Arrays */
	GL_VERTEX_ARRAY			= 0x8074, 
	GL_NORMAL_ARRAY			= 0x8075, 
	GL_COLOR_ARRAY			= 0x8076, 
	GL_INDEX_ARRAY			= 0x8077, 
	GL_TEXTURE_COORD_ARRAY		= 0x8078, 
	GL_EDGE_FLAG_ARRAY		= 0x8079, 
	GL_VERTEX_ARRAY_SIZE		= 0x807A, 
	GL_VERTEX_ARRAY_TYPE		= 0x807B, 
	GL_VERTEX_ARRAY_STRIDE		= 0x807C, 
	GL_VERTEX_ARRAY_COUNT		= 0x807D, 
	GL_NORMAL_ARRAY_TYPE		= 0x807E, 
	GL_NORMAL_ARRAY_STRIDE		= 0x807F, 
	GL_NORMAL_ARRAY_COUNT		= 0x8080, 
	GL_COLOR_ARRAY_SIZE		= 0x8081, 
	GL_COLOR_ARRAY_TYPE		= 0x8082, 
	GL_COLOR_ARRAY_STRIDE		= 0x8083, 
	GL_COLOR_ARRAY_COUNT		= 0x8084, 
	GL_INDEX_ARRAY_TYPE		= 0x8085, 
	GL_INDEX_ARRAY_STRIDE		= 0x8086, 
	GL_INDEX_ARRAY_COUNT		= 0x8087, 
	GL_TEXTURE_COORD_ARRAY_SIZE	= 0x8088, 
	GL_TEXTURE_COORD_ARRAY_TYPE	= 0x8089, 
	GL_TEXTURE_COORD_ARRAY_STRIDE	= 0x808A, 
	GL_TEXTURE_COORD_ARRAY_COUNT	= 0x808B, 
	GL_EDGE_FLAG_ARRAY_STRIDE	= 0x808C, 
	GL_EDGE_FLAG_ARRAY_COUNT	= 0x808D, 
	GL_VERTEX_ARRAY_POINTER		= 0x808E, 
	GL_NORMAL_ARRAY_POINTER		= 0x808F, 
	GL_COLOR_ARRAY_POINTER		= 0x8090, 
	GL_INDEX_ARRAY_POINTER		= 0x8091, 
	GL_TEXTURE_COORD_ARRAY_POINTER	= 0x8092, 
	GL_EDGE_FLAG_ARRAY_POINTER	= 0x8093, 
	GL_V2F				= 0x2A20, 
	GL_V3F				= 0x2A21, 
	GL_C4UB_V2F			= 0x2A22, 
	GL_C4UB_V3F			= 0x2A23, 
	GL_C3F_V3F			= 0x2A24, 
	GL_N3F_V3F			= 0x2A25, 
	GL_C4F_N3F_V3F			= 0x2A26, 
	GL_T2F_V3F			= 0x2A27, 
	GL_T4F_V4F			= 0x2A28, 
	GL_T2F_C4UB_V3F			= 0x2A29, 
	GL_T2F_C3F_V3F			= 0x2A2A, 
	GL_T2F_N3F_V3F			= 0x2A2B, 
	GL_T2F_C4F_N3F_V3F		= 0x2A2C, 
	GL_T4F_C4F_N3F_V4F		= 0x2A2D, 

	/* Matrix Mode */
	GL_MATRIX_MODE			= 0x0BA0, 
	GL_MODELVIEW			= 0x1700, 
	GL_PROJECTION			= 0x1701, 
	GL_TEXTURE			= 0x1702, 

	/* Points */
	GL_POINT_SMOOTH			= 0x0B10, 
	GL_POINT_SIZE			= 0x0B11, 
	GL_POINT_SIZE_GRANULARITY 	= 0x0B13, 
	GL_POINT_SIZE_RANGE		= 0x0B12, 

	/* Lines */
	GL_LINE_SMOOTH			= 0x0B20, 
	GL_LINE_STIPPLE			= 0x0B24, 
	GL_LINE_STIPPLE_PATTERN		= 0x0B25, 
	GL_LINE_STIPPLE_REPEAT		= 0x0B26, 
	GL_LINE_WIDTH			= 0x0B21, 
	GL_LINE_WIDTH_GRANULARITY	= 0x0B23, 
	GL_LINE_WIDTH_RANGE		= 0x0B22, 

	/* Polygons */
	GL_POINT			= 0x1B00, 
	GL_LINE				= 0x1B01, 
	GL_FILL				= 0x1B02, 
	GL_CCW				= 0x0901, 
	GL_CW				= 0x0900, 
	GL_FRONT			= 0x0404, 
	GL_BACK				= 0x0405, 
	GL_CULL_FACE			= 0x0B44, 
	GL_CULL_FACE_MODE		= 0x0B45, 
	GL_POLYGON_SMOOTH		= 0x0B41, 
	GL_POLYGON_STIPPLE		= 0x0B42, 
	GL_FRONT_FACE			= 0x0B46, 
	GL_POLYGON_MODE			= 0x0B40, 
	GL_POLYGON_OFFSET_FACTOR	= 0x3038, 
	GL_POLYGON_OFFSET_UNITS		= 0x2A00, 
	GL_POLYGON_OFFSET_POINT		= 0x2A01, 
	GL_POLYGON_OFFSET_LINE		= 0x2A02, 
	GL_POLYGON_OFFSET_FILL		= 0x8037, 

	/* Display Lists */
	GL_COMPILE			= 0x1300, 
	GL_COMPILE_AND_EXECUTE		= 0x1301, 
	GL_LIST_BASE			= 0x0B32, 
	GL_LIST_INDEX			= 0x0B33, 
	GL_LIST_MODE			= 0x0B30, 

	/* Depth buffer */
	GL_NEVER			= 0x0200, 
	GL_LESS				= 0x0201, 
	GL_GEQUAL			= 0x0206, 
	GL_LEQUAL			= 0x0203, 
	GL_GREATER			= 0x0204, 
	GL_NOTEQUAL			= 0x0205, 
	GL_EQUAL			= 0x0202, 
	GL_ALWAYS			= 0x0207, 
	GL_DEPTH_TEST			= 0x0B71, 
	GL_DEPTH_BITS			= 0x0D56, 
	GL_DEPTH_CLEAR_VALUE		= 0x0B73, 
	GL_DEPTH_FUNC			= 0x0B74, 
	GL_DEPTH_RANGE			= 0x0B70, 
	GL_DEPTH_WRITEMASK		= 0x0B72, 
	GL_DEPTH_COMPONENT		= 0x1902, 

	/* Lighting */
	GL_LIGHTING			= 0x0B50, 
	GL_LIGHT0			= 0x4000, 
	GL_LIGHT1			= 0x4001, 
	GL_LIGHT2			= 0x4002, 
	GL_LIGHT3			= 0x4003, 
	GL_LIGHT4			= 0x4004, 
	GL_LIGHT5			= 0x4005, 
	GL_LIGHT6			= 0x4006, 
	GL_LIGHT7			= 0x4007, 
	GL_SPOT_EXPONENT		= 0x1205, 
	GL_SPOT_CUTOFF			= 0x1206, 
	GL_CONSTANT_ATTENUATION		= 0x1207, 
	GL_LINEAR_ATTENUATION		= 0x1208, 
	GL_QUADRATIC_ATTENUATION	= 0x1209, 
	GL_AMBIENT			= 0x1200, 
	GL_DIFFUSE			= 0x1201, 
	GL_SPECULAR			= 0x1202, 
	GL_SHININESS			= 0x1601, 
	GL_EMISSION			= 0x1600, 
	GL_POSITION			= 0x1203, 
	GL_SPOT_DIRECTION		= 0x1204, 
	GL_AMBIENT_AND_DIFFUSE		= 0x1602, 
	GL_COLOR_INDEXES		= 0x1603, 
	GL_LIGHT_MODEL_TWO_SIDE		= 0x0B52, 
	GL_LIGHT_MODEL_LOCAL_VIEWER	= 0x0B51, 
	GL_LIGHT_MODEL_AMBIENT		= 0x0B53, 
	GL_FRONT_AND_BACK		= 0x0408, 
	GL_SHADE_MODEL			= 0x0B54, 
	GL_FLAT				= 0x1D00, 
	GL_SMOOTH			= 0x1D01, 
	GL_COLOR_MATERIAL		= 0x0B57, 
	GL_COLOR_MATERIAL_FACE		= 0x0B55, 
	GL_COLOR_MATERIAL_PARAMETER	= 0x0B56, 
	GL_NORMALIZE			= 0x0BA1, 

	/* User clipping planes */
	GL_CLIP_PLANE0			= 0x3000, 
	GL_CLIP_PLANE1			= 0x3001, 
	GL_CLIP_PLANE2			= 0x3002, 
	GL_CLIP_PLANE3			= 0x3003, 
	GL_CLIP_PLANE4			= 0x3004, 
	GL_CLIP_PLANE5			= 0x3005, 

	/* Accumulation buffer */
	GL_ACCUM_RED_BITS		= 0x0D58, 
	GL_ACCUM_GREEN_BITS		= 0x0D59, 
	GL_ACCUM_BLUE_BITS		= 0x0D5A, 
	GL_ACCUM_ALPHA_BITS		= 0x0D5B, 
	GL_ACCUM_CLEAR_VALUE		= 0x0B80, 
	GL_ACCUM			= 0x0100, 
	GL_ADD				= 0x0104, 
	GL_LOAD				= 0x0101, 
	GL_MULT				= 0x0103, 
	GL_RETURN			= 0x0102, 

	/* Alpha testing */
	GL_ALPHA_TEST			= 0x0BC0, 
	GL_ALPHA_TEST_REF		= 0x0BC2, 
	GL_ALPHA_TEST_FUNC		= 0x0BC1, 

	/* Blending */
	GL_BLEND			= 0x0BE2, 
	GL_BLEND_SRC			= 0x0BE1, 
	GL_BLEND_DST			= 0x0BE0, 
	GL_ZERO				= 0, 
	GL_ONE				= 1, 
	GL_SRC_COLOR			= 0x0300, 
	GL_ONE_MINUS_SRC_COLOR		= 0x0301, 
	GL_DST_COLOR			= 0x0306, 
	GL_ONE_MINUS_DST_COLOR		= 0x0307, 
	GL_SRC_ALPHA			= 0x0302, 
	GL_ONE_MINUS_SRC_ALPHA		= 0x0303, 
	GL_DST_ALPHA			= 0x0304, 
	GL_ONE_MINUS_DST_ALPHA		= 0x0305, 
	GL_SRC_ALPHA_SATURATE		= 0x0308, 
	GL_CONSTANT_COLOR		= 0x8001, 
	GL_ONE_MINUS_CONSTANT_COLOR	= 0x8002, 
	GL_CONSTANT_ALPHA		= 0x8003, 
	GL_ONE_MINUS_CONSTANT_ALPHA	= 0x8004, 

	/* Render Mode */
	GL_FEEDBACK			= 0x1C01, 
	GL_RENDER			= 0x1C00, 
	GL_SELECT			= 0x1C02, 

	/* Feedback */
	GL_2D				= 0x0600, 
	GL_3D				= 0x0601, 
	GL_3D_COLOR			= 0x0602, 
	GL_3D_COLOR_TEXTURE		= 0x0603, 
	GL_4D_COLOR_TEXTURE		= 0x0604, 
	GL_POINT_TOKEN			= 0x0701, 
	GL_LINE_TOKEN			= 0x0702, 
	GL_LINE_RESET_TOKEN		= 0x0707, 
	GL_POLYGON_TOKEN		= 0x0703, 
	GL_BITMAP_TOKEN			= 0x0704, 
	GL_DRAW_PIXEL_TOKEN		= 0x0705, 
	GL_COPY_PIXEL_TOKEN		= 0x0706, 
	GL_PASS_THROUGH_TOKEN		= 0x0700, 

	/* Fog */
	GL_FOG				= 0x0B60, 
	GL_FOG_MODE			= 0x0B65, 
	GL_FOG_DENSITY			= 0x0B62, 
	GL_FOG_COLOR			= 0x0B66, 
	GL_FOG_INDEX			= 0x0B61, 
	GL_FOG_START			= 0x0B63, 
	GL_FOG_END			= 0x0B64, 
	GL_LINEAR			= 0x2601, 
	GL_EXP				= 0x0800, 
	GL_EXP2				= 0x0801, 

	/* Logic Ops */
	GL_LOGIC_OP			= 0x0BF1, 
	GL_LOGIC_OP_MODE		= 0x0BF0, 
	GL_CLEAR			= 0x1500, 
	GL_SET				= 0x150F, 
	GL_COPY				= 0x1503, 
	GL_COPY_INVERTED		= 0x150C, 
	GL_NOOP				= 0x1505, 
	GL_INVERT			= 0x150A, 
	GL_AND				= 0x1501, 
	GL_NAND				= 0x150E, 
	GL_OR				= 0x1507, 
	GL_NOR				= 0x1508, 
	GL_XOR				= 0x1506, 
	GL_EQUIV			= 0x1509, 
	GL_AND_REVERSE			= 0x1502, 
	GL_AND_INVERTED			= 0x1504, 
	GL_OR_REVERSE			= 0x150B, 
	GL_OR_INVERTED			= 0x150D, 

	/* Stencil */
	GL_STENCIL_TEST			= 0x0B90, 
	GL_STENCIL_WRITEMASK		= 0x0B98, 
	GL_STENCIL_BITS			= 0x0D57, 
	GL_STENCIL_FUNC			= 0x0B92, 
	GL_STENCIL_VALUE_MASK		= 0x0B93, 
	GL_STENCIL_REF			= 0x0B97, 
	GL_STENCIL_FAIL			= 0x0B94, 
	GL_STENCIL_PASS_DEPTH_PASS	= 0x0B96, 
	GL_STENCIL_PASS_DEPTH_FAIL	= 0x0B95, 
	GL_STENCIL_CLEAR_VALUE		= 0x0B91, 
	GL_STENCIL_INDEX		= 0x1901, 
	GL_KEEP				= 0x1E00, 
	GL_REPLACE			= 0x1E01, 
	GL_INCR				= 0x1E02, 
	GL_DECR				= 0x1E03, 

	/* Buffers, Pixel Drawing/Reading */
	GL_NONE				= 0, 
	GL_LEFT				= 0x0406, 
	GL_RIGHT			= 0x0407, 
	/*GL_FRONT			= 0x0404, */
	/*GL_BACK			= 0x0405, */
	/*GL_FRONT_AND_BACK		= 0x0408, */
	GL_FRONT_LEFT			= 0x0400, 
	GL_FRONT_RIGHT			= 0x0401, 
	GL_BACK_LEFT			= 0x0402, 
	GL_BACK_RIGHT			= 0x0403, 
	GL_AUX0				= 0x0409, 
	GL_AUX1				= 0x040A, 
	GL_AUX2				= 0x040B, 
	GL_AUX3				= 0x040C, 
	GL_COLOR_INDEX			= 0x1900, 
	GL_RED				= 0x1903, 
	GL_GREEN			= 0x1904, 
	GL_BLUE				= 0x1905, 
	GL_ALPHA			= 0x1906, 
	GL_LUMINANCE			= 0x1909, 
	GL_LUMINANCE_ALPHA		= 0x190A, 
	GL_ALPHA_BITS			= 0x0D55, 
	GL_RED_BITS			= 0x0D52, 
	GL_GREEN_BITS			= 0x0D53, 
	GL_BLUE_BITS			= 0x0D54, 
	GL_INDEX_BITS			= 0x0D51, 
	GL_SUBPIXEL_BITS		= 0x0D50, 
	GL_AUX_BUFFERS			= 0x0C00, 
	GL_READ_BUFFER			= 0x0C02, 
	GL_DRAW_BUFFER			= 0x0C01, 
	GL_DOUBLEBUFFER			= 0x0C32, 
	GL_STEREO			= 0x0C33, 
	GL_BITMAP			= 0x1A00, 
	GL_COLOR			= 0x1800, 
	GL_DEPTH			= 0x1801, 
	GL_STENCIL			= 0x1802, 
	GL_DITHER			= 0x0BD0, 
	GL_RGB				= 0x1907, 
	GL_RGBA				= 0x1908, 

	/* Implementation limits */
	GL_MAX_LIST_NESTING		= 0x0B31, 
	GL_MAX_ATTRIB_STACK_DEPTH	= 0x0D35, 
	GL_MAX_MODELVIEW_STACK_DEPTH	= 0x0D36, 
	GL_MAX_NAME_STACK_DEPTH		= 0x0D37, 
	GL_MAX_PROJECTION_STACK_DEPTH	= 0x0D38, 
	GL_MAX_TEXTURE_STACK_DEPTH	= 0x0D39, 
	GL_MAX_EVAL_ORDER		= 0x0D30, 
	GL_MAX_LIGHTS			= 0x0D31, 
	GL_MAX_CLIP_PLANES		= 0x0D32, 
	GL_MAX_TEXTURE_SIZE		= 0x0D33, 
	GL_MAX_PIXEL_MAP_TABLE		= 0x0D34, 
	GL_MAX_VIEWPORT_DIMS		= 0x0D3A, 
	GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B, 

	/* Gets */
	GL_ATTRIB_STACK_DEPTH		= 0x0BB0, 
	GL_COLOR_CLEAR_VALUE		= 0x0C22, 
	GL_COLOR_WRITEMASK		= 0x0C23, 
	GL_CURRENT_INDEX		= 0x0B01, 
	GL_CURRENT_COLOR		= 0x0B00, 
	GL_CURRENT_NORMAL		= 0x0B02, 
	GL_CURRENT_RASTER_COLOR		= 0x0B04, 
	GL_CURRENT_RASTER_DISTANCE	= 0x0B09, 
	GL_CURRENT_RASTER_INDEX		= 0x0B05, 
	GL_CURRENT_RASTER_POSITION	= 0x0B07, 
	GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, 
	GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, 
	GL_CURRENT_TEXTURE_COORDS	= 0x0B03, 
	GL_INDEX_CLEAR_VALUE		= 0x0C20, 
	GL_INDEX_MODE			= 0x0C30, 
	GL_INDEX_WRITEMASK		= 0x0C21, 
	GL_MODELVIEW_MATRIX		= 0x0BA6, 
	GL_MODELVIEW_STACK_DEPTH	= 0x0BA3, 
	GL_NAME_STACK_DEPTH		= 0x0D70, 
	GL_PROJECTION_MATRIX		= 0x0BA7, 
	GL_PROJECTION_STACK_DEPTH	= 0x0BA4, 
	GL_RENDER_MODE			= 0x0C40, 
	GL_RGBA_MODE			= 0x0C31, 
	GL_TEXTURE_MATRIX		= 0x0BA8, 
	GL_TEXTURE_STACK_DEPTH		= 0x0BA5, 
	GL_VIEWPORT			= 0x0BA2, 


	/* Evaluators */
	GL_AUTO_NORMAL			= 0x0D80, 
	GL_MAP1_COLOR_4			= 0x0D90, 
	GL_MAP1_GRID_DOMAIN		= 0x0DD0, 
	GL_MAP1_GRID_SEGMENTS		= 0x0DD1, 
	GL_MAP1_INDEX			= 0x0D91, 
	GL_MAP1_NORMAL			= 0x0D92, 
	GL_MAP1_TEXTURE_COORD_1		= 0x0D93, 
	GL_MAP1_TEXTURE_COORD_2		= 0x0D94, 
	GL_MAP1_TEXTURE_COORD_3		= 0x0D95, 
	GL_MAP1_TEXTURE_COORD_4		= 0x0D96, 
	GL_MAP1_VERTEX_3		= 0x0D97, 
	GL_MAP1_VERTEX_4		= 0x0D98, 
	GL_MAP2_COLOR_4			= 0x0DB0, 
	GL_MAP2_GRID_DOMAIN		= 0x0DD2, 
	GL_MAP2_GRID_SEGMENTS		= 0x0DD3, 
	GL_MAP2_INDEX			= 0x0DB1, 
	GL_MAP2_NORMAL			= 0x0DB2, 
	GL_MAP2_TEXTURE_COORD_1		= 0x0DB3, 
	GL_MAP2_TEXTURE_COORD_2		= 0x0DB4, 
	GL_MAP2_TEXTURE_COORD_3		= 0x0DB5, 
	GL_MAP2_TEXTURE_COORD_4		= 0x0DB6, 
	GL_MAP2_VERTEX_3		= 0x0DB7, 
	GL_MAP2_VERTEX_4		= 0x0DB8, 
	GL_COEFF			= 0x0A00, 
	GL_DOMAIN			= 0x0A02, 
	GL_ORDER			= 0x0A01, 

	/* Hints */
	GL_FOG_HINT			= 0x0C54, 
	GL_LINE_SMOOTH_HINT		= 0x0C52, 
	GL_PERSPECTIVE_CORRECTION_HINT	= 0x0C50, 
	GL_POINT_SMOOTH_HINT		= 0x0C51, 
	GL_POLYGON_SMOOTH_HINT		= 0x0C53, 
	GL_DONT_CARE			= 0x1100, 
	GL_FASTEST			= 0x1101, 
	GL_NICEST			= 0x1102, 

	/* Scissor box */
	GL_SCISSOR_TEST			= 0x0C11, 
	GL_SCISSOR_BOX			= 0x0C10, 

	/* Pixel Mode / Transfer */
	GL_MAP_COLOR			= 0x0D10, 
	GL_MAP_STENCIL			= 0x0D11, 
	GL_INDEX_SHIFT			= 0x0D12, 
	GL_INDEX_OFFSET			= 0x0D13, 
	GL_RED_SCALE			= 0x0D14, 
	GL_RED_BIAS			= 0x0D15, 
	GL_GREEN_SCALE			= 0x0D18, 
	GL_GREEN_BIAS			= 0x0D19, 
	GL_BLUE_SCALE			= 0x0D1A, 
	GL_BLUE_BIAS			= 0x0D1B, 
	GL_ALPHA_SCALE			= 0x0D1C, 
	GL_ALPHA_BIAS			= 0x0D1D, 
	GL_DEPTH_SCALE			= 0x0D1E, 
	GL_DEPTH_BIAS			= 0x0D1F, 
	GL_PIXEL_MAP_S_TO_S_SIZE	= 0x0CB1, 
	GL_PIXEL_MAP_I_TO_I_SIZE	= 0x0CB0, 
	GL_PIXEL_MAP_I_TO_R_SIZE	= 0x0CB2, 
	GL_PIXEL_MAP_I_TO_G_SIZE	= 0x0CB3, 
	GL_PIXEL_MAP_I_TO_B_SIZE	= 0x0CB4, 
	GL_PIXEL_MAP_I_TO_A_SIZE	= 0x0CB5, 
	GL_PIXEL_MAP_R_TO_R_SIZE	= 0x0CB6, 
	GL_PIXEL_MAP_G_TO_G_SIZE	= 0x0CB7, 
	GL_PIXEL_MAP_B_TO_B_SIZE	= 0x0CB8, 
	GL_PIXEL_MAP_A_TO_A_SIZE	= 0x0CB9, 
	GL_PIXEL_MAP_S_TO_S		= 0x0C71, 
	GL_PIXEL_MAP_I_TO_I		= 0x0C70, 
	GL_PIXEL_MAP_I_TO_R		= 0x0C72, 
	GL_PIXEL_MAP_I_TO_G		= 0x0C73, 
	GL_PIXEL_MAP_I_TO_B		= 0x0C74, 
	GL_PIXEL_MAP_I_TO_A		= 0x0C75, 
	GL_PIXEL_MAP_R_TO_R		= 0x0C76, 
	GL_PIXEL_MAP_G_TO_G		= 0x0C77, 
	GL_PIXEL_MAP_B_TO_B		= 0x0C78, 
	GL_PIXEL_MAP_A_TO_A		= 0x0C79, 
	GL_PACK_ALIGNMENT		= 0x0D05, 
	GL_PACK_LSB_FIRST		= 0x0D01, 
	GL_PACK_ROW_LENGTH		= 0x0D02, 
	GL_PACK_SKIP_PIXELS		= 0x0D04, 
	GL_PACK_SKIP_ROWS		= 0x0D03, 
	GL_PACK_SWAP_BYTES		= 0x0D00, 
	GL_UNPACK_ALIGNMENT		= 0x0CF5, 
	GL_UNPACK_LSB_FIRST		= 0x0CF1, 
	GL_UNPACK_ROW_LENGTH		= 0x0CF2, 
	GL_UNPACK_SKIP_PIXELS		= 0x0CF4, 
	GL_UNPACK_SKIP_ROWS		= 0x0CF3, 
	GL_UNPACK_SWAP_BYTES		= 0x0CF0, 
	GL_ZOOM_X			= 0x0D16, 
	GL_ZOOM_Y			= 0x0D17, 

	/* Texture mapping */
	GL_TEXTURE_ENV			= 0x2300, 
	GL_TEXTURE_ENV_MODE		= 0x2200, 
	GL_TEXTURE_1D			= 0x0DE0, 
	GL_TEXTURE_2D			= 0x0DE1, 
	GL_TEXTURE_WRAP_S		= 0x2802, 
	GL_TEXTURE_WRAP_T		= 0x2803, 
	GL_TEXTURE_MAG_FILTER		= 0x2800, 
	GL_TEXTURE_MIN_FILTER		= 0x2801, 
	GL_TEXTURE_ENV_COLOR		= 0x2201, 
	GL_TEXTURE_GEN_S		= 0x0C60, 
	GL_TEXTURE_GEN_T		= 0x0C61, 
	GL_TEXTURE_GEN_MODE		= 0x2500, 
	GL_TEXTURE_BORDER_COLOR		= 0x1004, 
	GL_TEXTURE_WIDTH		= 0x1000, 
	GL_TEXTURE_HEIGHT		= 0x1001, 
	GL_TEXTURE_BORDER		= 0x1005, 
	GL_TEXTURE_COMPONENTS		= 0x1003, 
	GL_NEAREST_MIPMAP_NEAREST	= 0x2700, 
	GL_NEAREST_MIPMAP_LINEAR	= 0x2702, 
	GL_LINEAR_MIPMAP_NEAREST	= 0x2701, 
	GL_LINEAR_MIPMAP_LINEAR		= 0x2703, 
	GL_OBJECT_LINEAR		= 0x2401, 
	GL_OBJECT_PLANE			= 0x2501, 
	GL_EYE_LINEAR			= 0x2400, 
	GL_EYE_PLANE			= 0x2502, 
	GL_SPHERE_MAP			= 0x2402, 
	GL_DECAL			= 0x2101, 
	GL_MODULATE			= 0x2100, 
	GL_NEAREST			= 0x2600, 
	GL_REPEAT			= 0x2901, 
	GL_CLAMP			= 0x2900, 
	GL_S				= 0x2000, 
	GL_T				= 0x2001, 
	GL_R				= 0x2002, 
	GL_Q				= 0x2003, 
	GL_TEXTURE_GEN_R		= 0x0C62, 
	GL_TEXTURE_GEN_Q		= 0x0C63, 

	GL_PROXY_TEXTURE_1D		= 0x8063, 
	GL_PROXY_TEXTURE_2D		= 0x8064, 
	GL_TEXTURE_PRIORITY		= 0x8066, 
	GL_TEXTURE_RESIDENT		= 0x8067, 
	GL_TEXTURE_1D_BINDING		= 0x8068, 
	GL_TEXTURE_2D_BINDING		= 0x8069, 

	/* Internal texture formats */
	GL_ALPHA4			= 0x803B, 
	GL_ALPHA8			= 0x803C, 
	GL_ALPHA12			= 0x803D, 
	GL_ALPHA16			= 0x803E, 
	GL_LUMINANCE4			= 0x803F, 
	GL_LUMINANCE8			= 0x8040, 
	GL_LUMINANCE12			= 0x8041, 
	GL_LUMINANCE16			= 0x8042, 
	GL_LUMINANCE4_ALPHA4		= 0x8043, 
	GL_LUMINANCE6_ALPHA2		= 0x8044, 
	GL_LUMINANCE8_ALPHA8		= 0x8045, 
	GL_LUMINANCE12_ALPHA4		= 0x8046, 
	GL_LUMINANCE12_ALPHA12		= 0x8047, 
	GL_LUMINANCE16_ALPHA16		= 0x8048, 
	GL_INTENSITY			= 0x8049, 
	GL_INTENSITY4			= 0x804A, 
	GL_INTENSITY8			= 0x804B, 
	GL_INTENSITY12			= 0x804C, 
	GL_INTENSITY16			= 0x804D, 
	GL_R3_G3_B2			= 0x2A10, 
	GL_RGB4				= 0x804F, 
	GL_RGB5				= 0x8050, 
	GL_RGB8				= 0x8051, 
	GL_RGB10			= 0x8052, 
	GL_RGB12			= 0x8053, 
	GL_RGB16			= 0x8054, 
	GL_RGBA2			= 0x8055, 
	GL_RGBA4			= 0x8056, 
	GL_RGB5_A1			= 0x8057, 
	GL_RGBA8			= 0x8058, 
	GL_RGB10_A2			= 0x8059, 
	GL_RGBA12			= 0x805A, 
	GL_RGBA16			= 0x805B, 

	/* Utility */
	GL_VENDOR			= 0x1F00, 
	GL_RENDERER			= 0x1F01, 
	GL_VERSION			= 0x1F02, 
	GL_EXTENSIONS			= 0x1F03, 

	/* Errors */
	GL_INVALID_VALUE		= 0x0501, 
	GL_INVALID_ENUM			= 0x0500, 
	GL_INVALID_OPERATION		= 0x0502, 
	GL_STACK_OVERFLOW		= 0x0503, 
	GL_STACK_UNDERFLOW		= 0x0504, 
	GL_OUT_OF_MEMORY		= 0x0505, 

	/*
	 * 1.0 Extensions
	 */
 /* GL_EXT_blend_minmax and GL_EXT_blend_color */
	GL_CONSTANT_COLOR_EXT		= 0x8001, 
	GL_ONE_MINUS_CONSTANT_COLOR_EXT	= 0x8002, 
	GL_CONSTANT_ALPHA_EXT		= 0x8003, 
	GL_ONE_MINUS_CONSTANT_ALPHA_EXT	= 0x8004, 
	GL_BLEND_EQUATION_EXT		= 0x8009, 
	GL_MIN_EXT			= 0x8007, 
	GL_MAX_EXT			= 0x8008, 
	GL_FUNC_ADD_EXT			= 0x8006, 
	GL_FUNC_SUBTRACT_EXT		= 0x800A, 
	GL_FUNC_REVERSE_SUBTRACT_EXT	= 0x800B, 
	GL_BLEND_COLOR_EXT		= 0x8005, 

	/* GL_EXT_polygon_offset */
 GL_POLYGON_OFFSET_EXT = 0x8037, 
 GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, 
 GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, 

	/* GL_EXT_vertex_array */
	GL_VERTEX_ARRAY_EXT		= 0x8074, 
	GL_NORMAL_ARRAY_EXT		= 0x8075, 
	GL_COLOR_ARRAY_EXT		= 0x8076, 
	GL_INDEX_ARRAY_EXT		= 0x8077, 
	GL_TEXTURE_COORD_ARRAY_EXT	= 0x8078, 
	GL_EDGE_FLAG_ARRAY_EXT		= 0x8079, 
	GL_VERTEX_ARRAY_SIZE_EXT	= 0x807A, 
	GL_VERTEX_ARRAY_TYPE_EXT	= 0x807B, 
	GL_VERTEX_ARRAY_STRIDE_EXT	= 0x807C, 
	GL_VERTEX_ARRAY_COUNT_EXT	= 0x807D, 
	GL_NORMAL_ARRAY_TYPE_EXT	= 0x807E, 
	GL_NORMAL_ARRAY_STRIDE_EXT	= 0x807F, 
	GL_NORMAL_ARRAY_COUNT_EXT	= 0x8080, 
	GL_COLOR_ARRAY_SIZE_EXT		= 0x8081, 
	GL_COLOR_ARRAY_TYPE_EXT		= 0x8082, 
	GL_COLOR_ARRAY_STRIDE_EXT	= 0x8083, 
	GL_COLOR_ARRAY_COUNT_EXT	= 0x8084, 
	GL_INDEX_ARRAY_TYPE_EXT		= 0x8085, 
	GL_INDEX_ARRAY_STRIDE_EXT	= 0x8086, 
	GL_INDEX_ARRAY_COUNT_EXT	= 0x8087, 
	GL_TEXTURE_COORD_ARRAY_SIZE_EXT	= 0x8088, 
	GL_TEXTURE_COORD_ARRAY_TYPE_EXT	= 0x8089, 
	GL_TEXTURE_COORD_ARRAY_STRIDE_EXT= 0x808A, 
	GL_TEXTURE_COORD_ARRAY_COUNT_EXT= 0x808B, 
	GL_EDGE_FLAG_ARRAY_STRIDE_EXT	= 0x808C, 
	GL_EDGE_FLAG_ARRAY_COUNT_EXT	= 0x808D, 
	GL_VERTEX_ARRAY_POINTER_EXT	= 0x808E, 
	GL_NORMAL_ARRAY_POINTER_EXT	= 0x808F, 
	GL_COLOR_ARRAY_POINTER_EXT	= 0x8090, 
	GL_INDEX_ARRAY_POINTER_EXT	= 0x8091, 
	GL_TEXTURE_COORD_ARRAY_POINTER_EXT= 0x8092, 
	GL_EDGE_FLAG_ARRAY_POINTER_EXT	= 0x8093

};

enum {
	GL_CURRENT_BIT		= 0x00000001, 
	GL_POINT_BIT		= 0x00000002, 
	GL_LINE_BIT		= 0x00000004, 
	GL_POLYGON_BIT		= 0x00000008, 
	GL_POLYGON_STIPPLE_BIT	= 0x00000010, 
	GL_PIXEL_MODE_BIT	= 0x00000020, 
	GL_LIGHTING_BIT		= 0x00000040, 
	GL_FOG_BIT		= 0x00000080, 
	GL_DEPTH_BUFFER_BIT	= 0x00000100, 
	GL_ACCUM_BUFFER_BIT	= 0x00000200, 
	GL_STENCIL_BUFFER_BIT	= 0x00000400, 
	GL_VIEWPORT_BIT		= 0x00000800, 
	GL_TRANSFORM_BIT	= 0x00001000, 
	GL_ENABLE_BIT		= 0x00002000, 
	GL_COLOR_BUFFER_BIT	= 0x00004000, 
	GL_HINT_BIT		= 0x00008000, 
	GL_EVAL_BIT		= 0x00010000, 
	GL_LIST_BIT		= 0x00020000, 
	GL_TEXTURE_BIT		= 0x00040000, 
	GL_SCISSOR_BIT		= 0x00080000, 
	GL_ALL_ATTRIB_BITS	= 0x000fffff
};

/* some types */

typedef int  GLenum;
typedef void GLvoid;
typedef unsigned char GLboolean;
typedef signed char	GLbyte;    /* 1-byte signed */
typedef short int   GLshort;   /* 2-byte signed */
typedef long int    GLint;     /* 4-byte signed */
typedef unsigned char GLubyte; /* 1-byte unsigned */
typedef unsigned short int GLushort; /* 2-byte unsigned */
typedef unsigned long int GLuint;    /* 4-byte unsigned */
typedef float  GLfloat;  /* single precision float */
typedef double GLdouble; /* double precision float */
typedef int    GLsizei;

struct ZBuffer
{
	long int xsize, ysize;
	int linesize; //line size, in bytes
	int mode;

	unsigned short int* zbuf;
	unsigned char* pbuf; //PIXEL
	int frame_buffer_allocated;

	int nb_colors;
	unsigned char* dctable;
	int* ctable;
	unsigned char* current_texture; //PIXEL
	unsigned int s_log2;
	unsigned int s_bound;
	unsigned int t_bound;
};

struct TinyGLContext
{
	ZBuffer* gl_context;
	long int xsize, ysize;
	long int dx, dy, x, y;
};

//
// tinygl - import table
//
#define import_tinygl glEnable
void (__stdcall* glEnable)(int code) = (void (__stdcall*)(int))&"glEnable";
void (__stdcall* glDisable)(int code) = (void (__stdcall*)(int))&"glDisable";
void (__stdcall* glShadeModel)(int mode) = (void (__stdcall*)(int))&"glShadeModel";
void (__stdcall* glCullFace)(int mode) = (void (__stdcall*)(int))&"glCullFace";
void (__stdcall* glPolygonMode)(int face, int mode) = (void (__stdcall*)(int, int))&"glPolygonMode";
void (__stdcall* glBegin)(int type) = (void (__stdcall*)(int))&"glBegin";
void (__stdcall* glEnd)() = (void (__stdcall*)())&"glEnd";
void (__stdcall* glVertex2f)(float x, float y) = (void (__stdcall*)(float, float))&"glVertex2f";
void (__stdcall* glVertex2d)(double x, double y) = (void (__stdcall*)(double, double))&"glVertex2d";
void (__stdcall* glVertex2fv)(float* v) = (void (__stdcall*)(float*))&"glVertex2fv";
void (__stdcall* glVertex2dv)(double* v) = (void (__stdcall*)(double*))&"glVertex2dv";
void (__stdcall* glVertex3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glVertex3f";
void (__stdcall* glVertex3d)(double x, double y, double z) = (void (__stdcall*)(double, double, double))&"glVertex3d";
void (__stdcall* glVertex3fv)(float* v) = (void (__stdcall*)(float*))&"glVertex3fv";
void (__stdcall* glVertex3dv)(double* v) = (void (__stdcall*)(double*))&"glVertex3dv";
void (__stdcall* glVertex4f)(float x, float y, float z, float w) = (void (__stdcall*)(float, float, float, float))&"glVertex4f";
void (__stdcall* glVertex4d)(double x, double y, double z, double w) = (void (__stdcall*)(double, double, double, double))&"glVertex4d";
void (__stdcall* glVertex4fv)(float* v) = (void (__stdcall*)(float*))&"glVertex4fv";
void (__stdcall* glVertex4dv)(double* v) = (void (__stdcall*)(double*))&"glVertex4dv";
void (__stdcall* glColor3f)(float r, float g, float b) = (void (__stdcall*)(float, float, float))&"glColor3f";
void (__stdcall* glColor3d)(double r, double g, double b) = (void (__stdcall*)(double, double, double))&"glColor3d";
void (__stdcall* glColor3fv)(float* v) = (void (__stdcall*)(float*))&"glColor3fv";
void (__stdcall* glColor3dv)(double* v) = (void (__stdcall*)(double*))&"glColor3dv";
void (__stdcall* glColor3ub)(unsigned char r, unsigned char g, unsigned char b) = (void (__stdcall*)(unsigned char, unsigned char, unsigned char))&"glColor3ub";
void (__stdcall* glColor4f)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glColor4f";
void (__stdcall* glColor4d)(double r, double g, double b, double a) = (void (__stdcall*)(double, double, double, double))&"glColor4d";
void (__stdcall* glColor4fv)(float* v) = (void (__stdcall*)(float*))&"glColor4fv";
void (__stdcall* glColor4dv)(double* v) = (void (__stdcall*)(double*))&"glColor4dv";
void (__stdcall* glNormal3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glNormal3f";
void (__stdcall* glNormal3d)(double x, double y, double z) = (void (__stdcall*)(double, double, double))&"glNormal3d";
void (__stdcall* glNormal3fv)(float* v) = (void (__stdcall*)(float*))&"glNormal3fv";
void (__stdcall* glNormal3dv)(double* v) = (void (__stdcall*)(double*))&"glNormal3dv";
void (__stdcall* glTexCoord1f)(float s) = (void (__stdcall*)(float))&"glTexCoord1f";
void (__stdcall* glTexCoord1d)(double s) = (void (__stdcall*)(double))&"glTexCoord1d";
void (__stdcall* glTexCoord1fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord1fv";
void (__stdcall* glTexCoord1dv)(double* v) = (void (__stdcall*)(double*))&"glTexCoord1dv";
void (__stdcall* glTexCoord2f)(float s, float t) = (void (__stdcall*)(float, float))&"glTexCoord2f";
void (__stdcall* glTexCoord2d)(double s, double t) = (void (__stdcall*)(double, double))&"glTexCoord2d";
void (__stdcall* glTexCoord2fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord2fv";
void (__stdcall* glTexCoord2dv)(double* v) = (void (__stdcall*)(double*))&"glTexCoord2dv";
void (__stdcall* glTexCoord3f)(float s, float t, float r) = (void (__stdcall*)(float, float, float))&"glTexCoord3f";
void (__stdcall* glTexCoord3d)(double s, double t, double r) = (void (__stdcall*)(double, double, double))&"glTexCoord3d";
void (__stdcall* glTexCoord3fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord3fv";
void (__stdcall* glTexCoord3dv)(double* v) = (void (__stdcall*)(double*))&"glTexCoord3dv";
void (__stdcall* glTexCoord4f)(float s, float t, float r, float q) = (void (__stdcall*)(float, float, float, float))&"glTexCoord4f";
void (__stdcall* glTexCoord4d)(double s, double t, double r, double q) = (void (__stdcall*)(double, double, double, double))&"glTexCoord4d";
void (__stdcall* glTexCoord4fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord4fv";
void (__stdcall* glTexCoord4dv)(double* v) = (void (__stdcall*)(double*))&"glTexCoord4dv";
void (__stdcall* glEdgeFlag)(int flag) = (void (__stdcall*)(int))&"glEdgeFlag";
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode";
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf";
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity";
//void (__stdcall* glMultMatrixf)(...) = (void (__stdcall*)(...))&"glMultMatrixf";
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix";
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix";
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef";
void (__stdcall* glTranslatef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glTranslatef";
void (__stdcall* glScalef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glScalef";
void (__stdcall* glViewport)(int x, int y, int width, int height) = (void (__stdcall*)(int, int, int, int))&"glViewport";
void (__stdcall* glFrustum)(double l, double r, double b, double t, double n, double f) = (void (__stdcall*)(double, double, double, double, double, double))&"glFrustum";
int (__stdcall* glGenLists)(int range) = (int (__stdcall*)(int))&"glGenLists";
//void (__stdcall* glIsList)(...) = (void (__stdcall*)(...))&"glIsList";
void (__stdcall* glNewList)(unsigned int list, int mode) = (void (__stdcall*)(unsigned int, int))&"glNewList";
void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList";
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList";
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear";
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor";
//void (__stdcall* glClearDepth)(...) = (void (__stdcall*)(...))&"glClearDepth";
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode";
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer";
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames";
//void (__stdcall* glPushName)(...) = (void (__stdcall*)(...))&"glPushName";
//void (__stdcall* glPopName)(...) = (void (__stdcall*)(...))&"glPopName";
//void (__stdcall* glLoadName)(...) = (void (__stdcall*)(...))&"glLoadName";
void (__stdcall* glGenTextures)(int n, unsigned int* textures) = (void (__stdcall*)(int, unsigned int *))&"glGenTextures";
//void (__stdcall* glDeleteTextures)(...) = (void (__stdcall*)(...))&"glDeleteTextures";
void (__stdcall* glBindTexture)(int target, int texture) = (void (__stdcall*)(int, int))&"glBindTexture";
void (__stdcall* glTexImage2D)(int target, int level, int components, int width, int height, int border, int format, int type, void *pixels) = (void (__stdcall*)(int, int, int, int, int, int, int, int, void*))&"glTexImage2D";
void (__stdcall* glTexEnvi)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexEnvi";
void (__stdcall* glTexParameteri)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexParameteri";
void (__stdcall* glPixelStorei)(int pname, int param) = (void (__stdcall*)(int, int))&"glPixelStorei";
void (__stdcall* glMaterialfv)(int mode, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glMaterialfv";
void (__stdcall* glMaterialf)(int mode, int type, float v) = (void (__stdcall*)(int, int, float))&"glMaterialf";
void (__stdcall* glColorMaterial)(int mode, int type) = (void (__stdcall*)(int, int))&"glColorMaterial";
void (__stdcall* glLightfv)(int light, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glLightfv";
void (__stdcall* glLightf)(int light, int type, float v) = (void (__stdcall*)(int, int, float))&"glLightf";
void (__stdcall* glLightModeli)(int pname, int param) = (void (__stdcall*)(int, int))&"glLightModeli";
void (__stdcall* glLightModelfv)(int pname, float* param) = (void (__stdcall*)(int, float*))&"glLightModelfv";
void (__stdcall* glFlush)() = (void (__stdcall*)())&"glFlush";
void (__stdcall* glHint)(int target, int mode) = (void (__stdcall*)(int, int))&"glHint";
void (__stdcall* glGetIntegerv)(int pname, int *params) = (void (__stdcall*)(int, int*))&"glGetIntegerv";
//void (__stdcall* glGetFloatv)(...) = (void (__stdcall*)(...))&"glGetFloatv";
void (__stdcall* glFrontFace)(int mode) = (void (__stdcall*)(int))&"glFrontFace";
void (__stdcall* glEnableClientState)(GLenum array) = (void (__stdcall*)(GLenum))&"glEnableClientState";
void (__stdcall* glDisableClientState)(GLenum array) = (void (__stdcall*)(GLenum))&"glDisableClientState";
void (__stdcall* glArrayElement)(GLint index) = (void (__stdcall*)(GLint))&"glArrayElement";
void (__stdcall* glDrawArrays)(GLenum mode, GLint first, GLsizei count) = (void (__stdcall*)(GLenum, GLint, GLsizei))&"glDrawArrays";
void (__stdcall* glDrawElements)(GLenum  mode, GLsizei count, GLenum type, const GLvoid *indices) = (void (__stdcall*)(GLenum, GLsizei, GLenum, const GLvoid*))&"glDrawElements";
void (__stdcall* glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glVertexPointer";
void (__stdcall* glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glColorPointer";
void (__stdcall* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLenum, GLsizei, const GLvoid*))&"glNormalPointer";
void (__stdcall* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glTexCoordPointer";
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset";
//void (__stdcall* glOrtho)(...) = (void (__stdcall*)(...))&"glOrtho";
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug";
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit";
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose";
//void (__stdcall* gluPerspective)(...) = (void (__stdcall*)(...))&"gluPerspective";
//void (__stdcall* gluNewQuadric)(...) = (void (__stdcall*)(...))&"gluNewQuadric";
//void (__stdcall* gluDeleteQuadric)(...) = (void (__stdcall*)(...))&"gluDeleteQuadric";
//void (__stdcall* gluQuadricDrawStyle)(...) = (void (__stdcall*)(...))&"gluQuadricDrawStyle";
//void (__stdcall* gluQuadricOrientation)(...) = (void (__stdcall*)(...))&"gluQuadricOrientation";
//void (__stdcall* gluQuadricTexture)(...) = (void (__stdcall*)(...))&"gluQuadricTexture";
//void (__stdcall* gluCylinder)(...) = (void (__stdcall*)(...))&"gluCylinder";
//void (__stdcall* gluSphere)(...) = (void (__stdcall*)(...))&"gluSphere";
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent";
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers";
asm{
	dd 0, 0
}
#endif