ref: 138a63d0ad59c454edf25ebb7903aabfa331f9c4
parent: 5c333c57f72ca687986e4b39d7d061abd730cb9b
author: David <gek@katherine>
date: Sun Feb 14 09:35:19 EST 2021
Major project restructuring
--- a/SDL_Examples/gears.c
+++ b/SDL_Examples/gears.c
@@ -10,11 +10,11 @@
#include <stdio.h>
#include <string.h>
-#include "../src/include/GL/gl.h"
+#include "../include/GL/gl.h"
#define CHAD_API_IMPL
#include "include/api_audio.h"
#include <SDL/SDL.h>
-#include "../src/include/zbuffer.h"
+#include "../include/zbuffer.h"
#ifndef M_PI
# define M_PI 3.14159265
--- a/SDL_Examples/model.c
+++ b/SDL_Examples/model.c
@@ -10,7 +10,7 @@
#include <stdio.h>
#include <string.h>
-#include "../src/include/GL/gl.h"
+#include "../include/GL/gl.h"
#define STB_IMAGE_IMPLEMENTATION
#include "include/stb_image.h"
#define CHAD_MATH_IMPL
@@ -19,7 +19,7 @@
#define CHAD_API_IMPL
#include "include/api_audio.h"
#include <SDL/SDL.h>
-#include "../src/include/zbuffer.h"
+#include "../include/zbuffer.h"
#include <time.h>
#ifndef M_PI
--- a/SDL_Examples/texture.c
+++ b/SDL_Examples/texture.c
@@ -10,13 +10,13 @@
#include <stdio.h>
#include <string.h>
-#include "../src/include/GL/gl.h"
+#include "../include/GL/gl.h"
#define CHAD_API_IMPL
#include "include/api_audio.h"
#define STB_IMAGE_IMPLEMENTATION
#include "include/stb_image.h"
#include <SDL/SDL.h>
-#include "../src/include/zbuffer.h"
+#include "../include/zbuffer.h"
#ifndef M_PI
# define M_PI 3.14159265
--- /dev/null
+++ b/include/GL/gl.h
@@ -1,0 +1,858 @@
+/*
+ * The following constants come from Mesa
+ */
+#ifndef GL_H
+#define GL_H
+
+#define GL_VERSION_1_1 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+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
+
+};
+
+typedef enum {
+ GL_TEXT_SIZE8x8 = 1,
+ GL_TEXT_SIZE16x16 = 2,
+ GL_TEXT_SIZE24x24 = 3,
+ GL_TEXT_SIZE32x32 = 4,
+ GL_TEXT_SIZE40x40 = 5,
+ GL_TEXT_SIZE48x48 = 6,
+ GL_TEXT_SIZE56x56 = 7,
+ GL_TEXT_SIZE64x64 = 8
+} GLTEXTSIZE;
+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 GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef float GLfloat; /* single precision float */
+typedef double GLdouble; /* double precision float */
+typedef int GLsizei;
+
+/* functions */
+
+void glEnable(int code);
+void glDisable(int code);
+
+
+void glShadeModel(int mode);
+void glCullFace(int mode);
+void glPolygonMode(int face,int mode);
+
+void glBegin(int type);
+void glEnd(void);
+
+//NEW functions added by GEK!!!
+void glSetEnableSpecular(int s); //Toggle specular rendering (Speedup!!!)
+void* glGetTexturePixmap(int text, int level, int* xsize, int* ysize); //Get the raw data of a texture!
+void glDrawText(const unsigned char* text, int x, int y, unsigned int pixel); //Blit 8x8 text to he screen
+void glTextSize(GLTEXTSIZE mode); //Set text size
+void glPlotPixel(int x, int y, unsigned int pixel); //plot a pixel to the screen.
+
+#define PROTO_GL1(name) \
+void gl ## name ## 1f(float); \
+void gl ## name ## 1d(double); \
+void gl ## name ## 1fv(float *); \
+void gl ## name ## 1dv(double *);
+
+#define PROTO_GL2(name) \
+void gl ## name ## 2f(float ,float); \
+void gl ## name ## 2d(double ,double); \
+void gl ## name ## 2fv(float *); \
+void gl ## name ## 2dv(double *);
+
+#define PROTO_GL3(name) \
+void gl ## name ## 3f(float ,float ,float); \
+void gl ## name ## 3d(double ,double ,double); \
+void gl ## name ## 3fv(float *); \
+void gl ## name ## 3dv(double *);
+
+#define PROTO_GL4(name) \
+void gl ## name ## 4f(float ,float ,float, float ); \
+void gl ## name ## 4d(double ,double ,double, double ); \
+void gl ## name ## 4fv(float *); \
+void gl ## name ## 4dv(double *);
+
+PROTO_GL2(Vertex)
+PROTO_GL3(Vertex)
+PROTO_GL4(Vertex)
+
+PROTO_GL3(Color)
+PROTO_GL4(Color)
+
+PROTO_GL3(Normal)
+
+PROTO_GL1(TexCoord)
+PROTO_GL2(TexCoord)
+PROTO_GL3(TexCoord)
+PROTO_GL4(TexCoord)
+
+void glEdgeFlag(int flag);
+
+/* matrix */
+void glMatrixMode(int mode);
+void glLoadMatrixf(const float *m);
+void glLoadIdentity(void);
+void glMultMatrixf(const float *m);
+void glPushMatrix(void);
+void glPopMatrix(void);
+void glRotatef(float angle,float x,float y,float z);
+void glTranslatef(float x,float y,float z);
+void glScalef(float x,float y,float z);
+
+void glViewport(int x,int y,int width,int height);
+void glFrustum(double left,double right,double bottom,double top,
+ double near,double far);
+
+/* lists */
+unsigned int glGenLists(int range);
+int glIsList(unsigned int list);
+void glNewList(unsigned int list,int mode);
+void glEndList(void);
+void glCallList(unsigned int list);
+void glDeleteList(unsigned int list);
+void glDeleteLists(unsigned int list, unsigned int range);
+/* clear */
+void glClear(int mask);
+void glClearColor(float r,float g,float b,float a);
+void glClearDepth(double depth);
+
+/* selection */
+int glRenderMode(int mode);
+void glSelectBuffer(int size,unsigned int *buf);
+
+void glInitNames(void);
+void glPushName(unsigned int name);
+void glPopName(void);
+void glLoadName(unsigned int name);
+
+/* textures */
+void glGenTextures(int n, unsigned int *textures);
+void glDeleteTextures(int n, const unsigned int *textures);
+void glBindTexture(int target,int texture);
+void glTexImage2D( int target, int level, int components,
+ int width, int height, int border,
+ int format, int type, void *pixels);
+void glTexEnvi(int target,int pname,int param);
+void glTexParameteri(int target,int pname,int param);
+void glPixelStorei(int pname,int param);
+
+/* lighting */
+
+void glMaterialfv(int mode,int type,float *v);
+void glMaterialf(int mode,int type,float v);
+void glColorMaterial(int mode,int type);
+
+void glLightfv(int light,int type,float *v);
+void glLightf(int light,int type,float v);
+void glLightModeli(int pname,int param);
+void glLightModelfv(int pname,float *param);
+
+/* misc */
+
+void glFlush(void);
+void glHint(int target,int mode);
+void glGetIntegerv(int pname,int *params);
+void glGetFloatv(int pname, float *v);
+void glFrontFace(int mode);
+
+/* opengl 1.2 arrays */
+void glEnableClientState(GLenum array);
+void glDisableClientState(GLenum array);
+void glArrayElement(GLint i);
+void glVertexPointer(GLint size, GLenum type, GLsizei stride,
+ const GLvoid *pointer);
+void glColorPointer(GLint size, GLenum type, GLsizei stride,
+ const GLvoid *pointer);
+void glNormalPointer(GLenum type, GLsizei stride,
+ const GLvoid *pointer);
+void glTexCoordPointer(GLint size, GLenum type, GLsizei stride,
+ const GLvoid *pointer);
+
+/* opengl 1.2 polygon offset */
+void glPolygonOffset(GLfloat factor, GLfloat units);
+
+/* not implemented, just added to compile */
+ /*
+inline void glPointSize(float) {}
+inline void glLineWidth(float) {}
+inline void glDeleteLists(int, int) {}
+inline void glDepthFunc(int) {}
+inline void glBlendFunc(int, int) {}
+inline void glTexEnvf(int, int, int) {}
+inline void glOrtho(float,float,float,float,float,float){}
+inline void glVertex2i(int,int) {}
+inline void glDepthMask(int) {}
+inline void glFogi(int, int) {}
+inline void glFogfv(int, const float*) {}
+inline void glFogf(int, float) {}
+inline void glRasterPos2f(float, float) {}
+inline void glPolygonStipple(void*) {}
+inline void glTexParameterf(int, int, int) {};
+ */
+void glPolygonStipple(void* a); //TODO: implement
+/* non compatible functions */
+
+void glDebug(int mode);
+
+void glInit(void *zbuffer);
+void glClose(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+++ b/include/GL/glx_unused.h
@@ -1,0 +1,144 @@
+#ifndef GLX_H
+#define GLX_H
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include "GL/gl.h"
+
+
+/* the following comes from Mesa */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define GLX_VERSION_1_1 1
+
+
+/*
+ * Tokens for glXChooseVisual and glXGetConfig:
+ */
+enum _GLX_CONFIGS {
+ GLX_USE_GL = 1,
+ GLX_BUFFER_SIZE = 2,
+ GLX_LEVEL = 3,
+ GLX_RGBA = 4,
+ GLX_DOUBLEBUFFER = 5,
+ GLX_STEREO = 6,
+ GLX_AUX_BUFFERS = 7,
+ GLX_RED_SIZE = 8,
+ GLX_GREEN_SIZE = 9,
+ GLX_BLUE_SIZE = 10,
+ GLX_ALPHA_SIZE = 11,
+ GLX_DEPTH_SIZE = 12,
+ GLX_STENCIL_SIZE = 13,
+ GLX_ACCUM_RED_SIZE = 14,
+ GLX_ACCUM_GREEN_SIZE = 15,
+ GLX_ACCUM_BLUE_SIZE = 16,
+ GLX_ACCUM_ALPHA_SIZE = 17,
+
+ /* GLX_EXT_visual_info extension */
+ GLX_X_VISUAL_TYPE_EXT = 0x22,
+ GLX_TRANSPARENT_TYPE_EXT = 0x23,
+ GLX_TRANSPARENT_INDEX_VALUE_EXT = 0x24,
+ GLX_TRANSPARENT_RED_VALUE_EXT = 0x25,
+ GLX_TRANSPARENT_GREEN_VALUE_EXT = 0x26,
+ GLX_TRANSPARENT_BLUE_VALUE_EXT = 0x27,
+ GLX_TRANSPARENT_ALPHA_VALUE_EXT = 0x28
+};
+
+
+/*
+ * Error codes returned by glXGetConfig:
+ */
+#define GLX_BAD_SCREEN 1
+#define GLX_BAD_ATTRIBUTE 2
+#define GLX_NO_EXTENSION 3
+#define GLX_BAD_VISUAL 4
+#define GLX_BAD_CONTEXT 5
+#define GLX_BAD_VALUE 6
+#define GLX_BAD_ENUM 7
+
+
+/*
+ * GLX 1.1 and later:
+ */
+#define GLX_VENDOR 1
+#define GLX_VERSION 2
+#define GLX_EXTENSIONS 3
+
+
+/*
+ * GLX_visual_info extension
+ */
+#define GLX_TRUE_COLOR_EXT 0x8002
+#define GLX_DIRECT_COLOR_EXT 0x8003
+#define GLX_PSEUDO_COLOR_EXT 0x8004
+#define GLX_STATIC_COLOR_EXT 0x8005
+#define GLX_GRAY_SCALE_EXT 0x8006
+#define GLX_STATIC_GRAY_EXT 0x8007
+#define GLX_NONE_EXT 0x8000
+#define GLX_TRANSPARENT_RGB_EXT 0x8008
+#define GLX_TRANSPARENT_INDEX_EXT 0x8009
+
+
+typedef void *GLXContext;
+typedef Pixmap GLXPixmap;
+typedef Drawable GLXDrawable;
+typedef XID GLXContextID;
+
+
+extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
+ int *attribList );
+
+extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis,
+ GLXContext shareList, Bool direct );
+
+extern void glXDestroyContext( Display *dpy, GLXContext ctx );
+
+extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
+ GLXContext ctx);
+
+extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
+ GLuint mask );
+
+extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
+
+extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual,
+ Pixmap pixmap );
+
+extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap );
+
+extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event );
+
+extern Bool glXQueryVersion( Display *dpy, int *maj, int *min );
+
+extern Bool glXIsDirect( Display *dpy, GLXContext ctx );
+
+extern int glXGetConfig( Display *dpy, XVisualInfo *visual,
+ int attrib, int *value );
+
+extern GLXContext glXGetCurrentContext( void );
+
+extern GLXDrawable glXGetCurrentDrawable( void );
+
+extern void glXWaitGL( void );
+
+extern void glXWaitX( void );
+
+extern void glXUseXFont( Font font, int first, int count, int list );
+
+
+/* GLX 1.1 and later */
+extern const char *glXQueryExtensionsString( Display *dpy, int screen );
+
+extern const char *glXQueryServerString( Display *dpy, int screen, int name );
+
+extern const char *glXGetClientString( Display *dpy, int name );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+++ b/include/GL/nglx_unused.h
@@ -1,0 +1,27 @@
+#ifndef NGLX_H
+#define NGLX_H
+
+#include <microwin/nano-X.h>
+#include "GL/gl.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *NGLXContext;
+typedef GR_DRAW_ID NGLXDrawable;
+
+extern NGLXContext nglXCreateContext( NGLXContext shareList, int flags );
+
+extern void nglXDestroyContext( NGLXContext ctx );
+
+extern int nglXMakeCurrent( NGLXDrawable drawable,
+ NGLXContext ctx);
+
+extern void nglXSwapBuffers( NGLXDrawable drawable );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+++ b/include/GL/oscontext_unused.h
@@ -1,0 +1,37 @@
+#ifndef _tgl_osbuffer_h_
+#define _tgl_osbuffer_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ void **zbs;
+ void **framebuffers;
+ int numbuffers;
+ int xsize, ysize;
+} ostgl_context;
+
+ostgl_context *
+ostgl_create_context(const int xsize,
+ const int ysize,
+ const int depth,
+ void **framebuffers,
+ const int numbuffers);
+void
+ostgl_delete_context(ostgl_context *context);
+
+void
+ostgl_make_current(ostgl_context *context, const int index);
+
+void
+ostgl_resize(ostgl_context * context,
+ const int xsize,
+ const int ysize,
+ void **framebuffers);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _tgl_osbuffer_h_ */
--- /dev/null
+++ b/include/zbuffer.h
@@ -1,0 +1,142 @@
+#ifndef _tgl_zbuffer_h_
+#define _tgl_zbuffer_h_
+
+/*
+ * Z buffer
+ */
+
+#include "zfeatures.h"
+
+#define ZB_Z_BITS 16
+
+#define ZB_POINT_Z_FRAC_BITS 14
+
+#define ZB_POINT_S_MIN ( (1<<13) )
+#define ZB_POINT_S_MAX ( (1<<22)-(1<<13) )
+#define ZB_POINT_T_MIN ( (1<<21) )
+#define ZB_POINT_T_MAX ( (1<<30)-(1<<21) )
+/*
+#define ZB_POINT_RED_MIN ( (1<<10) )
+#define ZB_POINT_RED_MAX ( (1<<16)-(1<<10) )
+#define ZB_POINT_GREEN_MIN ( (1<<9) )
+#define ZB_POINT_GREEN_MAX ( (1<<16)-(1<<9) )
+#define ZB_POINT_BLUE_MIN ( (1<<10) )
+#define ZB_POINT_BLUE_MAX ( (1<<16)-(1<<10) )
+*/
+/* display modes */
+#define ZB_MODE_5R6G5B 1 /* true color 16 bits */
+#define ZB_MODE_INDEX 2 /* color index 8 bits */
+#define ZB_MODE_RGBA 3 /* 32 bit ABGR mode */
+#define ZB_MODE_RGB24 4 /* 24 bit rgb mode */
+#define ZB_NB_COLORS 225 /* number of colors for 8 bit display */
+
+
+
+
+
+#if TGL_FEATURE_RENDER_BITS == 32
+
+/* 32 bit mode */
+#define RGB_TO_PIXEL(r,g,b) ( ((b&65280)<<8) | ((g&65280)) | ((r&65280)>>8) )
+typedef unsigned int PIXEL;
+#define PSZB 4
+#define PSZSH 5
+
+#elif TGL_FEATURE_RENDER_BITS == 16
+
+/* 16 bit mode */
+#define RGB_TO_PIXEL(r,g,b) (((r) & 0xF800) | (((g) >> 5) & 0x07E0) | ((b) >> 11))
+typedef unsigned short PIXEL;
+#define PSZB 2
+#define PSZSH 4
+
+
+#else
+
+#error wrong TGL_FEATURE_RENDER_BITS buddy
+
+#endif
+
+typedef struct {
+ int xsize,ysize;
+ int linesize; /* line size, in bytes */
+ int mode;
+
+ unsigned short *zbuf;
+ PIXEL *pbuf;
+ int frame_buffer_allocated;
+ /* opengl polygon stipple*/
+ int dostipple;
+ unsigned char stipplepattern[TGL_POLYGON_STIPPLE_BYTES]; //32 bits wide, 32 bits tall. 32 * 4 bytes.
+
+ int nb_colors;
+ unsigned char *dctable;
+ int *ctable;
+ PIXEL *current_texture;
+} ZBuffer;
+
+typedef struct {
+ int x,y,z; /* integer coordinates in the zbuffer */
+ int s,t; /* coordinates for the mapping */
+ int r,g,b; /* color indexes */
+
+ float sz,tz; /* temporary coordinates for mapping */
+} ZBufferPoint;
+
+/* zbuffer.c */
+
+ZBuffer *ZB_open(int xsize,int ysize,int mode,
+ int nb_colors,
+ unsigned char *color_indexes,
+ int *color_table,
+ void *frame_buffer);
+
+
+void ZB_close(ZBuffer *zb);
+
+void ZB_resize(ZBuffer *zb,void *frame_buffer,int xsize,int ysize);
+void ZB_clear(ZBuffer *zb,int clear_z,int z,
+ int clear_color,int r,int g,int b);
+/* linesize is in BYTES */
+void ZB_copyFrameBuffer(ZBuffer *zb,void *buf,int linesize);
+
+/* zdither.c */
+
+void ZB_initDither(ZBuffer *zb,int nb_colors,
+ unsigned char *color_indexes,int *color_table);
+void ZB_closeDither(ZBuffer *zb);
+void ZB_ditherFrameBuffer(ZBuffer *zb,unsigned char *dest,
+ int linesize);
+
+/* zline.c */
+
+void ZB_plot(ZBuffer *zb,ZBufferPoint *p);
+void ZB_line(ZBuffer *zb,ZBufferPoint *p1,ZBufferPoint *p2);
+void ZB_line_z(ZBuffer * zb, ZBufferPoint * p1, ZBufferPoint * p2);
+
+/* ztriangle.c */
+
+void ZB_setTexture(ZBuffer *zb, PIXEL *texture);
+
+void ZB_fillTriangleFlat(ZBuffer *zb,
+ ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
+
+void ZB_fillTriangleSmooth(ZBuffer *zb,
+ ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
+
+void ZB_fillTriangleMapping(ZBuffer *zb,
+ ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
+
+void ZB_fillTriangleMappingPerspective(ZBuffer *zb,
+ ZBufferPoint *p0,ZBufferPoint *p1,ZBufferPoint *p2);
+
+
+typedef void (*ZB_fillTriangleFunc)(ZBuffer *,
+ ZBufferPoint *,ZBufferPoint *,ZBufferPoint *);
+
+/* memory.c */
+void gl_free(void *p);
+void *gl_malloc(int size);
+void *gl_zalloc(int size);
+
+#endif /* _tgl_zbuffer_h_ */
--- /dev/null
+++ b/include/zfeatures.h
@@ -1,0 +1,76 @@
+#ifndef _tgl_features_h_
+#define _tgl_features_h_
+
+/* It is possible to enable/disable (compile time) features in this
+ header file. */
+
+#define TGL_FEATURE_ARRAYS 1
+#define TGL_FEATURE_DISPLAYLISTS 1
+#define TGL_FEATURE_POLYGON_OFFSET 1
+
+#define TGL_FEATURE_POLYGON_STIPPLE 1
+//A stipple pattern is 128 bytes in size.
+#define TGL_POLYGON_STIPPLE_BYTES 128
+//A stipple pattern is 2^5 (32) bits wide.
+#define TGL_POLYGON_STIPPLE_POW2_WIDTH 5
+//The stipple pattern mask (the last bits of the screen coordinates used for indexing)
+//The default pattern is 32 bits wide and 32 bits tall, or 4 bytes per row and 32 tall, 4 * 32 128 bytes.
+#define TGL_POLYGON_STIPPLE_MASK_X 31
+#define TGL_POLYGON_STIPPLE_MASK_Y 31
+
+//These are features useful for integrating TinyGL with other renderers.
+#define TGL_FEATURE_NO_COPY_COLOR 0
+#define TGL_FEATURE_FORCE_CLEAR_NO_COPY_COLOR 0
+#define TGL_NO_COPY_COLOR 0xff00ff
+//NOTE: fc02fc is what you'll get if you set glColor3f to 1,0,1.
+//^ solid debug pink.
+#define TGL_COLOR_MASK 0xffffffff
+//^ mask to check for copybuffer. This is configured for the default mode.
+
+/*
+ * Matrix of internal and external pixel formats supported. 'Y' means
+ * supported.
+ *
+ * External 8 16 24 32
+ * Internal
+ * 15 . . . .
+ * 16 Y Y Y Y
+ * 24 . Y Y .
+ * 32 . Y . Y
+ *
+ *
+ * 15 bpp does not work yet (although it is easy to add it - ask me if
+ * you need it).
+ *
+ * Internal pixel format: see TGL_FEATURE_RENDER_BITS
+ * External pixel format: see TGL_FEATURE_xxx_BITS
+ */
+
+/* enable various convertion code from internal pixel format (usually
+ 16 bits per pixel) to any external format */
+#define TGL_FEATURE_8_BITS 0
+#define TGL_FEATURE_24_BITS 0
+//These are the only maintained modes.
+#define TGL_FEATURE_16_BITS 0
+#define TGL_FEATURE_32_BITS 1
+
+//MAINTAINER'S NOTE: Only TGL_FEATURE_RENDER_BITS 32 is maintained.
+//TODO: Include support for 16 bit.
+//All others are experimental.
+//24 bit is broken.
+//#define TGL_FEATURE_RENDER_BITS 15
+//#define TGL_FEATURE_RENDER_BITS 16
+//#define TGL_FEATURE_RENDER_BITS 24 //BROKEN!
+#if TGL_FEATURE_32_BITS == 1
+#define TGL_FEATURE_RENDER_BITS 32
+
+#elif TGL_FEATURE_16_BITS == 1
+#define TGL_FEATURE_RENDER_BITS 16
+
+#else
+#error Unsupported TGL_FEATURE_RENDER_BITS
+
+#endif
+
+
+#endif /* _tgl_features_h_ */
--- a/src/Makefile
+++ b/src/Makefile
@@ -3,7 +3,7 @@
OBJS= api.o list.o vertex.o init.o matrix.o texture.o \
misc.o clear.o light.o clip.o select.o get.o error.o \
zbuffer.o zline.o zdither.o ztriangle.o \
- zmath.o image_util.o oscontext.o msghandling.o \
+ zmath.o image_util.o msghandling.o \
arrays.o specbuf.o memory.o ztext.o
ifdef TINYGL_USE_GLX
#OBJS += glx.o
@@ -29,16 +29,16 @@
.c.o:
$(CC) $(CFLAGS) $(INCLUDES) -c $*.c
-clip.o: zgl.h include/zfeatures.h
-vertex.o: zgl.h include/zfeatures.h
-light.o: zgl.h include/zfeatures.h
-matrix.o: zgl.h include/zfeatures.h
-list.o: zgl.h opinfo.h include/zfeatures.h
-arrays.c: zgl.h include/zfeatures.h
-specbuf.o: zgl.h include/zfeatures.h
-glx.o: zgl.h include/zfeatures.h
-nglx.o: zgl.h include/zfeatures.h
-zline.o: zgl.h include/zfeatures.h zline.h
+clip.o: zgl.h ../include/zfeatures.h
+vertex.o: zgl.h ../include/zfeatures.h
+light.o: zgl.h ../include/zfeatures.h
+matrix.o: zgl.h ../include/zfeatures.h
+list.o: zgl.h opinfo.h ../include/zfeatures.h
+arrays.c: zgl.h ../include/zfeatures.h
+specbuf.o: zgl.h ../include/zfeatures.h
+glx.o: zgl.h ../include/zfeatures.h
+nglx.o: zgl.h ../include/zfeatures.h
+zline.o: zgl.h ../include/zfeatures.h zline.h
-ztriangle.o: ztriangle.c ztriangle.h zgl.h include/zfeatures.h
+ztriangle.o: ztriangle.c ztriangle.h zgl.h ../include/zfeatures.h
$(CC) $(CFLAGS) -Wno-uninitialized $(INCLUDES) -c $*.c
--- a/src/include/GL/gl.h
+++ /dev/null
@@ -1,858 +1,0 @@
-/*
- * The following constants come from Mesa
- */
-#ifndef GL_H
-#define GL_H
-
-#define GL_VERSION_1_1 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-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
-
-};
-
-typedef enum {
- GL_TEXT_SIZE8x8 = 1,
- GL_TEXT_SIZE16x16 = 2,
- GL_TEXT_SIZE24x24 = 3,
- GL_TEXT_SIZE32x32 = 4,
- GL_TEXT_SIZE40x40 = 5,
- GL_TEXT_SIZE48x48 = 6,
- GL_TEXT_SIZE56x56 = 7,
- GL_TEXT_SIZE64x64 = 8
-} GLTEXTSIZE;
-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 GLshort; /* 2-byte signed */
-typedef int GLint; /* 4-byte signed */
-typedef unsigned char GLubyte; /* 1-byte unsigned */
-typedef unsigned short GLushort; /* 2-byte unsigned */
-typedef unsigned int GLuint; /* 4-byte unsigned */
-typedef float GLfloat; /* single precision float */
-typedef double GLdouble; /* double precision float */
-typedef int GLsizei;
-
-/* functions */
-
-void glEnable(int code);
-void glDisable(int code);
-
-
-void glShadeModel(int mode);
-void glCullFace(int mode);
-void glPolygonMode(int face,int mode);
-
-void glBegin(int type);
-void glEnd(void);
-
-//NEW functions added by GEK!!!
-void glSetEnableSpecular(int s); //Toggle specular rendering (Speedup!!!)
-void* glGetTexturePixmap(int text, int level, int* xsize, int* ysize); //Get the raw data of a texture!
-void glDrawText(const unsigned char* text, int x, int y, unsigned int pixel); //Blit 8x8 text to he screen
-void glTextSize(GLTEXTSIZE mode); //Set text size
-void glPlotPixel(int x, int y, unsigned int pixel); //plot a pixel to the screen.
-
-#define PROTO_GL1(name) \
-void gl ## name ## 1f(float); \
-void gl ## name ## 1d(double); \
-void gl ## name ## 1fv(float *); \
-void gl ## name ## 1dv(double *);
-
-#define PROTO_GL2(name) \
-void gl ## name ## 2f(float ,float); \
-void gl ## name ## 2d(double ,double); \
-void gl ## name ## 2fv(float *); \
-void gl ## name ## 2dv(double *);
-
-#define PROTO_GL3(name) \
-void gl ## name ## 3f(float ,float ,float); \
-void gl ## name ## 3d(double ,double ,double); \
-void gl ## name ## 3fv(float *); \
-void gl ## name ## 3dv(double *);
-
-#define PROTO_GL4(name) \
-void gl ## name ## 4f(float ,float ,float, float ); \
-void gl ## name ## 4d(double ,double ,double, double ); \
-void gl ## name ## 4fv(float *); \
-void gl ## name ## 4dv(double *);
-
-PROTO_GL2(Vertex)
-PROTO_GL3(Vertex)
-PROTO_GL4(Vertex)
-
-PROTO_GL3(Color)
-PROTO_GL4(Color)
-
-PROTO_GL3(Normal)
-
-PROTO_GL1(TexCoord)
-PROTO_GL2(TexCoord)
-PROTO_GL3(TexCoord)
-PROTO_GL4(TexCoord)
-
-void glEdgeFlag(int flag);
-
-/* matrix */
-void glMatrixMode(int mode);
-void glLoadMatrixf(const float *m);
-void glLoadIdentity(void);
-void glMultMatrixf(const float *m);
-void glPushMatrix(void);
-void glPopMatrix(void);
-void glRotatef(float angle,float x,float y,float z);
-void glTranslatef(float x,float y,float z);
-void glScalef(float x,float y,float z);
-
-void glViewport(int x,int y,int width,int height);
-void glFrustum(double left,double right,double bottom,double top,
- double near,double far);
-
-/* lists */
-unsigned int glGenLists(int range);
-int glIsList(unsigned int list);
-void glNewList(unsigned int list,int mode);
-void glEndList(void);
-void glCallList(unsigned int list);
-void glDeleteList(unsigned int list);
-void glDeleteLists(unsigned int list, unsigned int range);
-/* clear */
-void glClear(int mask);
-void glClearColor(float r,float g,float b,float a);
-void glClearDepth(double depth);
-
-/* selection */
-int glRenderMode(int mode);
-void glSelectBuffer(int size,unsigned int *buf);
-
-void glInitNames(void);
-void glPushName(unsigned int name);
-void glPopName(void);
-void glLoadName(unsigned int name);
-
-/* textures */
-void glGenTextures(int n, unsigned int *textures);
-void glDeleteTextures(int n, const unsigned int *textures);
-void glBindTexture(int target,int texture);
-void glTexImage2D( int target, int level, int components,
- int width, int height, int border,
- int format, int type, void *pixels);
-void glTexEnvi(int target,int pname,int param);
-void glTexParameteri(int target,int pname,int param);
-void glPixelStorei(int pname,int param);
-
-/* lighting */
-
-void glMaterialfv(int mode,int type,float *v);
-void glMaterialf(int mode,int type,float v);
-void glColorMaterial(int mode,int type);
-
-void glLightfv(int light,int type,float *v);
-void glLightf(int light,int type,float v);
-void glLightModeli(int pname,int param);
-void glLightModelfv(int pname,float *param);
-
-/* misc */
-
-void glFlush(void);
-void glHint(int target,int mode);
-void glGetIntegerv(int pname,int *params);
-void glGetFloatv(int pname, float *v);
-void glFrontFace(int mode);
-
-/* opengl 1.2 arrays */
-void glEnableClientState(GLenum array);
-void glDisableClientState(GLenum array);
-void glArrayElement(GLint i);
-void glVertexPointer(GLint size, GLenum type, GLsizei stride,
- const GLvoid *pointer);
-void glColorPointer(GLint size, GLenum type, GLsizei stride,
- const GLvoid *pointer);
-void glNormalPointer(GLenum type, GLsizei stride,
- const GLvoid *pointer);
-void glTexCoordPointer(GLint size, GLenum type, GLsizei stride,
- const GLvoid *pointer);
-
-/* opengl 1.2 polygon offset */
-void glPolygonOffset(GLfloat factor, GLfloat units);
-
-/* not implemented, just added to compile */
- /*
-inline void glPointSize(float) {}
-inline void glLineWidth(float) {}
-inline void glDeleteLists(int, int) {}
-inline void glDepthFunc(int) {}
-inline void glBlendFunc(int, int) {}
-inline void glTexEnvf(int, int, int) {}
-inline void glOrtho(float,float,float,float,float,float){}
-inline void glVertex2i(int,int) {}
-inline void glDepthMask(int) {}
-inline void glFogi(int, int) {}
-inline void glFogfv(int, const float*) {}
-inline void glFogf(int, float) {}
-inline void glRasterPos2f(float, float) {}
-inline void glPolygonStipple(void*) {}
-inline void glTexParameterf(int, int, int) {};
- */
-void glPolygonStipple(void* a); //TODO: implement
-/* non compatible functions */
-
-void glDebug(int mode);
-
-void glInit(void *zbuffer);
-void glClose(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src/include/GL/glx.h
+++ /dev/null
@@ -1,144 +1,0 @@
-#ifndef GLX_H
-#define GLX_H
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include "GL/gl.h"
-
-
-/* the following comes from Mesa */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define GLX_VERSION_1_1 1
-
-
-/*
- * Tokens for glXChooseVisual and glXGetConfig:
- */
-enum _GLX_CONFIGS {
- GLX_USE_GL = 1,
- GLX_BUFFER_SIZE = 2,
- GLX_LEVEL = 3,
- GLX_RGBA = 4,
- GLX_DOUBLEBUFFER = 5,
- GLX_STEREO = 6,
- GLX_AUX_BUFFERS = 7,
- GLX_RED_SIZE = 8,
- GLX_GREEN_SIZE = 9,
- GLX_BLUE_SIZE = 10,
- GLX_ALPHA_SIZE = 11,
- GLX_DEPTH_SIZE = 12,
- GLX_STENCIL_SIZE = 13,
- GLX_ACCUM_RED_SIZE = 14,
- GLX_ACCUM_GREEN_SIZE = 15,
- GLX_ACCUM_BLUE_SIZE = 16,
- GLX_ACCUM_ALPHA_SIZE = 17,
-
- /* GLX_EXT_visual_info extension */
- GLX_X_VISUAL_TYPE_EXT = 0x22,
- GLX_TRANSPARENT_TYPE_EXT = 0x23,
- GLX_TRANSPARENT_INDEX_VALUE_EXT = 0x24,
- GLX_TRANSPARENT_RED_VALUE_EXT = 0x25,
- GLX_TRANSPARENT_GREEN_VALUE_EXT = 0x26,
- GLX_TRANSPARENT_BLUE_VALUE_EXT = 0x27,
- GLX_TRANSPARENT_ALPHA_VALUE_EXT = 0x28
-};
-
-
-/*
- * Error codes returned by glXGetConfig:
- */
-#define GLX_BAD_SCREEN 1
-#define GLX_BAD_ATTRIBUTE 2
-#define GLX_NO_EXTENSION 3
-#define GLX_BAD_VISUAL 4
-#define GLX_BAD_CONTEXT 5
-#define GLX_BAD_VALUE 6
-#define GLX_BAD_ENUM 7
-
-
-/*
- * GLX 1.1 and later:
- */
-#define GLX_VENDOR 1
-#define GLX_VERSION 2
-#define GLX_EXTENSIONS 3
-
-
-/*
- * GLX_visual_info extension
- */
-#define GLX_TRUE_COLOR_EXT 0x8002
-#define GLX_DIRECT_COLOR_EXT 0x8003
-#define GLX_PSEUDO_COLOR_EXT 0x8004
-#define GLX_STATIC_COLOR_EXT 0x8005
-#define GLX_GRAY_SCALE_EXT 0x8006
-#define GLX_STATIC_GRAY_EXT 0x8007
-#define GLX_NONE_EXT 0x8000
-#define GLX_TRANSPARENT_RGB_EXT 0x8008
-#define GLX_TRANSPARENT_INDEX_EXT 0x8009
-
-
-typedef void *GLXContext;
-typedef Pixmap GLXPixmap;
-typedef Drawable GLXDrawable;
-typedef XID GLXContextID;
-
-
-extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
- int *attribList );
-
-extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis,
- GLXContext shareList, Bool direct );
-
-extern void glXDestroyContext( Display *dpy, GLXContext ctx );
-
-extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
- GLXContext ctx);
-
-extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
- GLuint mask );
-
-extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
-
-extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual,
- Pixmap pixmap );
-
-extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap );
-
-extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event );
-
-extern Bool glXQueryVersion( Display *dpy, int *maj, int *min );
-
-extern Bool glXIsDirect( Display *dpy, GLXContext ctx );
-
-extern int glXGetConfig( Display *dpy, XVisualInfo *visual,
- int attrib, int *value );
-
-extern GLXContext glXGetCurrentContext( void );
-
-extern GLXDrawable glXGetCurrentDrawable( void );
-
-extern void glXWaitGL( void );
-
-extern void glXWaitX( void );
-
-extern void glXUseXFont( Font font, int first, int count, int list );
-
-
-/* GLX 1.1 and later */
-extern const char *glXQueryExtensionsString( Display *dpy, int screen );
-
-extern const char *glXQueryServerString( Display *dpy, int screen, int name );
-
-extern const char *glXGetClientString( Display *dpy, int name );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src/include/GL/nglx.h
+++ /dev/null
@@ -1,27 +1,0 @@
-#ifndef NGLX_H
-#define NGLX_H
-
-#include <microwin/nano-X.h>
-#include "GL/gl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void *NGLXContext;
-typedef GR_DRAW_ID NGLXDrawable;
-
-extern NGLXContext nglXCreateContext( NGLXContext shareList, int flags );
-
-extern void nglXDestroyContext( NGLXContext ctx );
-
-extern int nglXMakeCurrent( NGLXDrawable drawable,
- NGLXContext ctx);
-
-extern void nglXSwapBuffers( NGLXDrawable drawable );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src/include/GL/oscontext.h
+++ /dev/null
@@ -1,37 +1,0 @@
-#ifndef _tgl_osbuffer_h_
-#define _tgl_osbuffer_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- void **zbs;
- void **framebuffers;
- int numbuffers;
- int xsize, ysize;
-} ostgl_context;
-
-ostgl_context *
-ostgl_create_context(const int xsize,
- const int ysize,
- const int depth,
- void **framebuffers,
- const int numbuffers);
-void
-ostgl_delete_context(ostgl_context *context);
-
-void
-ostgl_make_current(ostgl_context *context, const int index);
-
-void
-ostgl_resize(ostgl_context * context,
- const int xsize,
- const int ysize,
- void **framebuffers);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _tgl_osbuffer_h_ */
--- a/src/include/zbuffer.h
+++ /dev/null
@@ -1,142 +1,0 @@
-#ifndef _tgl_zbuffer_h_
-#define _tgl_zbuffer_h_
-
-/*
- * Z buffer
- */
-
-#include "zfeatures.h"
-
-#define ZB_Z_BITS 16
-
-#define ZB_POINT_Z_FRAC_BITS 14
-
-#define ZB_POINT_S_MIN ( (1<<13) )
-#define ZB_POINT_S_MAX ( (1<<22)-(1<<13) )
-#define ZB_POINT_T_MIN ( (1<<21) )
-#define ZB_POINT_T_MAX ( (1<<30)-(1<<21) )
-/*
-#define ZB_POINT_RED_MIN ( (1<<10) )
-#define ZB_POINT_RED_MAX ( (1<<16)-(1<<10) )
-#define ZB_POINT_GREEN_MIN ( (1<<9) )
-#define ZB_POINT_GREEN_MAX ( (1<<16)-(1<<9) )
-#define ZB_POINT_BLUE_MIN ( (1<<10) )
-#define ZB_POINT_BLUE_MAX ( (1<<16)-(1<<10) )
-*/
-/* display modes */
-#define ZB_MODE_5R6G5B 1 /* true color 16 bits */
-#define ZB_MODE_INDEX 2 /* color index 8 bits */
-#define ZB_MODE_RGBA 3 /* 32 bit ABGR mode */
-#define ZB_MODE_RGB24 4 /* 24 bit rgb mode */
-#define ZB_NB_COLORS 225 /* number of colors for 8 bit display */
-
-
-
-
-
-#if TGL_FEATURE_RENDER_BITS == 32
-
-/* 32 bit mode */
-#define RGB_TO_PIXEL(r,g,b) ( ((b&65280)<<8) | ((g&65280)) | ((r&65280)>>8) )
-typedef unsigned int PIXEL;
-#define PSZB 4
-#define PSZSH 5
-
-#elif TGL_FEATURE_RENDER_BITS == 16
-
-/* 16 bit mode */
-#define RGB_TO_PIXEL(r,g,b) (((r) & 0xF800) | (((g) >> 5) & 0x07E0) | ((b) >> 11))
-typedef unsigned short PIXEL;
-#define PSZB 2
-#define PSZSH 4
-
-
-#else
-
-#error wrong TGL_FEATURE_RENDER_BITS buddy
-
-#endif
-
-typedef struct {
- int xsize,ysize;
- int linesize; /* line size, in bytes */
- int mode;
-
- unsigned short *zbuf;
- PIXEL *pbuf;
- int frame_buffer_allocated;
- /* opengl polygon stipple*/
- int dostipple;
- unsigned char stipplepattern[TGL_POLYGON_STIPPLE_BYTES]; //32 bits wide, 32 bits tall. 32 * 4 bytes.
-
- int nb_colors;
- unsigned char *dctable;
- int *ctable;
- PIXEL *current_texture;
-} ZBuffer;
-
-typedef struct {
- int x,y,z; /* integer coordinates in the zbuffer */
- int s,t; /* coordinates for the mapping */
- int r,g,b; /* color indexes */
-
- float sz,tz; /* temporary coordinates for mapping */
-} ZBufferPoint;
-
-/* zbuffer.c */
-
-ZBuffer *ZB_open(int xsize,int ysize,int mode,
- int nb_colors,
- unsigned char *color_indexes,
- int *color_table,
- void *frame_buffer);
-
-
-void ZB_close(ZBuffer *zb);
-
-void ZB_resize(ZBuffer *zb,void *frame_buffer,int xsize,int ysize);
-void ZB_clear(ZBuffer *zb,int clear_z,int z,
- int clear_color,int r,int g,int b);
-/* linesize is in BYTES */
-void ZB_copyFrameBuffer(ZBuffer *zb,void *buf,int linesize);
-
-/* zdither.c */
-
-void ZB_initDither(ZBuffer *zb,int nb_colors,
- unsigned char *color_indexes,int *color_table);
-void ZB_closeDither(ZBuffer *zb);
-void ZB_ditherFrameBuffer(ZBuffer *zb,unsigned char *dest,
- int linesize);
-
-/* zline.c */
-
-void ZB_plot(ZBuffer *zb,ZBufferPoint *p);
-void ZB_line(ZBuffer *zb,ZBufferPoint *p1,ZBufferPoint *p2);
-void ZB_line_z(ZBuffer * zb, ZBufferPoint * p1, ZBufferPoint * p2);
-
-/* ztriangle.c */
-
-void ZB_setTexture(ZBuffer *zb, PIXEL *texture);
-
-void ZB_fillTriangleFlat(ZBuffer *zb,
- ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
-
-void ZB_fillTriangleSmooth(ZBuffer *zb,
- ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
-
-void ZB_fillTriangleMapping(ZBuffer *zb,
- ZBufferPoint *p1,ZBufferPoint *p2,ZBufferPoint *p3);
-
-void ZB_fillTriangleMappingPerspective(ZBuffer *zb,
- ZBufferPoint *p0,ZBufferPoint *p1,ZBufferPoint *p2);
-
-
-typedef void (*ZB_fillTriangleFunc)(ZBuffer *,
- ZBufferPoint *,ZBufferPoint *,ZBufferPoint *);
-
-/* memory.c */
-void gl_free(void *p);
-void *gl_malloc(int size);
-void *gl_zalloc(int size);
-
-#endif /* _tgl_zbuffer_h_ */
--- a/src/include/zfeatures.h
+++ /dev/null
@@ -1,76 +1,0 @@
-#ifndef _tgl_features_h_
-#define _tgl_features_h_
-
-/* It is possible to enable/disable (compile time) features in this
- header file. */
-
-#define TGL_FEATURE_ARRAYS 1
-#define TGL_FEATURE_DISPLAYLISTS 1
-#define TGL_FEATURE_POLYGON_OFFSET 1
-
-#define TGL_FEATURE_POLYGON_STIPPLE 1
-//A stipple pattern is 128 bytes in size.
-#define TGL_POLYGON_STIPPLE_BYTES 128
-//A stipple pattern is 2^5 (32) bits wide.
-#define TGL_POLYGON_STIPPLE_POW2_WIDTH 5
-//The stipple pattern mask (the last bits of the screen coordinates used for indexing)
-//The default pattern is 32 bits wide and 32 bits tall, or 4 bytes per row and 32 tall, 4 * 32 128 bytes.
-#define TGL_POLYGON_STIPPLE_MASK_X 31
-#define TGL_POLYGON_STIPPLE_MASK_Y 31
-
-//These are features useful for integrating TinyGL with other renderers.
-#define TGL_FEATURE_NO_COPY_COLOR 0
-#define TGL_FEATURE_FORCE_CLEAR_NO_COPY_COLOR 0
-#define TGL_NO_COPY_COLOR 0xff00ff
-//NOTE: fc02fc is what you'll get if you set glColor3f to 1,0,1.
-//^ solid debug pink.
-#define TGL_COLOR_MASK 0xffffffff
-//^ mask to check for copybuffer. This is configured for the default mode.
-
-/*
- * Matrix of internal and external pixel formats supported. 'Y' means
- * supported.
- *
- * External 8 16 24 32
- * Internal
- * 15 . . . .
- * 16 Y Y Y Y
- * 24 . Y Y .
- * 32 . Y . Y
- *
- *
- * 15 bpp does not work yet (although it is easy to add it - ask me if
- * you need it).
- *
- * Internal pixel format: see TGL_FEATURE_RENDER_BITS
- * External pixel format: see TGL_FEATURE_xxx_BITS
- */
-
-/* enable various convertion code from internal pixel format (usually
- 16 bits per pixel) to any external format */
-#define TGL_FEATURE_8_BITS 0
-#define TGL_FEATURE_24_BITS 0
-//These are the only maintained modes.
-#define TGL_FEATURE_16_BITS 0
-#define TGL_FEATURE_32_BITS 1
-
-//MAINTAINER'S NOTE: Only TGL_FEATURE_RENDER_BITS 32 is maintained.
-//TODO: Include support for 16 bit.
-//All others are experimental.
-//24 bit is broken.
-//#define TGL_FEATURE_RENDER_BITS 15
-//#define TGL_FEATURE_RENDER_BITS 16
-//#define TGL_FEATURE_RENDER_BITS 24 //BROKEN!
-#if TGL_FEATURE_32_BITS == 1
-#define TGL_FEATURE_RENDER_BITS 32
-
-#elif TGL_FEATURE_16_BITS == 1
-#define TGL_FEATURE_RENDER_BITS 16
-
-#else
-#error Unsupported TGL_FEATURE_RENDER_BITS
-
-#endif
-
-
-#endif /* _tgl_features_h_ */
--- a/src/oscontext.c
+++ /dev/null
@@ -1,84 +1,0 @@
-#include "include/GL/oscontext.h"
-#include "include/zbuffer.h"
-#include "zgl.h"
-#include "include/GL/gl.h"
-#include <stdlib.h>
-#include <assert.h>
-
-static int buffercnt = 0;
-
-ostgl_context *
-ostgl_create_context(const int xsize,
- const int ysize,
- const int depth,
- void **framebuffers,
- const int numbuffers)
-{
- ostgl_context *context;
- int i;
- ZBuffer *zb;
-
- assert(depth == 16); /* support for other depths must include bpp
- convertion */
- assert(numbuffers >= 1);
-
- context = gl_malloc(sizeof(ostgl_context));
- assert(context);
- context->zbs = gl_malloc(sizeof(void*)*numbuffers);
- context->framebuffers = gl_malloc(sizeof(void*)*numbuffers);
-
- assert(context->zbs != NULL && context->framebuffers != NULL);
-
- for (i = 0; i < numbuffers; i++) {
- context->framebuffers[i] = framebuffers[i];
- zb = ZB_open(xsize, ysize, ZB_MODE_5R6G5B, 0, NULL, NULL, framebuffers[i]);
- if (zb == NULL) {
- fprintf(stderr, "Error while initializing Z buffer\n");
- exit(1);
- }
- context->zbs[i] = zb;
- }
- if (++buffercnt == 1) {
- glInit(context->zbs[0]);
- }
- context->xsize = xsize;
- context->ysize = ysize;
- context->numbuffers = numbuffers;
- return context;
-}
-
-void
-ostgl_delete_context(ostgl_context *context)
-{
- int i;
- for (i = 0; i < context->numbuffers; i++) {
- ZB_close(context->zbs[i]);
- }
- gl_free(context->zbs);
- gl_free(context->framebuffers);
- gl_free(context);
-
- if (--buffercnt == 0) {
- glClose();
- }
-}
-
-void
-ostgl_make_current(ostgl_context *oscontext, const int idx)
-{
- GLContext *context = gl_get_context();
- assert(idx < oscontext->numbuffers);
- context->zb = oscontext->zbs[idx];
-}
-
-void
-ostgl_resize(ostgl_context *context,
- const int xsize,
- const int ysize,
- void **framebuffers)
-{
- int i;
- for (i = 0; i < context->numbuffers; i++) {
- ZB_resize(context->zbs[i], framebuffers[i], xsize, ysize);
- }
-}
--- /dev/null
+++ b/src/oscontext.c.unused
@@ -1,0 +1,84 @@
+#include "include/GL/oscontext.h"
+#include "include/zbuffer.h"
+#include "zgl.h"
+#include "include/GL/gl.h"
+#include <stdlib.h>
+#include <assert.h>
+
+static int buffercnt = 0;
+
+ostgl_context *
+ostgl_create_context(const int xsize,
+ const int ysize,
+ const int depth,
+ void **framebuffers,
+ const int numbuffers)
+{
+ ostgl_context *context;
+ int i;
+ ZBuffer *zb;
+
+ assert(depth == 16); /* support for other depths must include bpp
+ convertion */
+ assert(numbuffers >= 1);
+
+ context = gl_malloc(sizeof(ostgl_context));
+ assert(context);
+ context->zbs = gl_malloc(sizeof(void*)*numbuffers);
+ context->framebuffers = gl_malloc(sizeof(void*)*numbuffers);
+
+ assert(context->zbs != NULL && context->framebuffers != NULL);
+
+ for (i = 0; i < numbuffers; i++) {
+ context->framebuffers[i] = framebuffers[i];
+ zb = ZB_open(xsize, ysize, ZB_MODE_5R6G5B, 0, NULL, NULL, framebuffers[i]);
+ if (zb == NULL) {
+ fprintf(stderr, "Error while initializing Z buffer\n");
+ exit(1);
+ }
+ context->zbs[i] = zb;
+ }
+ if (++buffercnt == 1) {
+ glInit(context->zbs[0]);
+ }
+ context->xsize = xsize;
+ context->ysize = ysize;
+ context->numbuffers = numbuffers;
+ return context;
+}
+
+void
+ostgl_delete_context(ostgl_context *context)
+{
+ int i;
+ for (i = 0; i < context->numbuffers; i++) {
+ ZB_close(context->zbs[i]);
+ }
+ gl_free(context->zbs);
+ gl_free(context->framebuffers);
+ gl_free(context);
+
+ if (--buffercnt == 0) {
+ glClose();
+ }
+}
+
+void
+ostgl_make_current(ostgl_context *oscontext, const int idx)
+{
+ GLContext *context = gl_get_context();
+ assert(idx < oscontext->numbuffers);
+ context->zb = oscontext->zbs[idx];
+}
+
+void
+ostgl_resize(ostgl_context *context,
+ const int xsize,
+ const int ysize,
+ void **framebuffers)
+{
+ int i;
+ for (i = 0; i < context->numbuffers; i++) {
+ ZB_resize(context->zbs[i], framebuffers[i], xsize, ysize);
+ }
+}
--- a/src/quick.sh
+++ b/src/quick.sh
@@ -3,4 +3,5 @@
#This script was used to move these files to include.
#sed -i 's/\"zbuffer.h/\"include\/zbuffer.h/g' *.c *.h
#sed -i 's/\"zfeatures.h/\"include\/zfeatures.h/g' *.c *.h
+sed -i 's/\"include/\"..\/include/g' *.c *.h
#gcc *.c -o executable.out -lglut -lGL -lm -lGLU
--- a/src/zbuffer.c
+++ b/src/zbuffer.c
@@ -7,7 +7,7 @@
#include <stdio.h>
#include <assert.h>
#include <string.h>
-#include "include/zbuffer.h"
+#include "../include/zbuffer.h"
ZBuffer *ZB_open(int xsize, int ysize, int mode,
int nb_colors,
--- a/src/zdither.c
+++ b/src/zdither.c
@@ -5,7 +5,7 @@
#include <stdlib.h>
#include <stdio.h>
-#include "include/zbuffer.h"
+#include "../include/zbuffer.h"
#include <assert.h>
#if defined(TGL_FEATURE_8_BITS)
--- a/src/zgl.h
+++ b/src/zgl.h
@@ -5,10 +5,10 @@
#include <stdio.h>
#include <math.h>
#include <assert.h>
-#include "include/GL/gl.h"
-#include "include/zbuffer.h"
+#include "../include/GL/gl.h"
+#include "../include/zbuffer.h"
#include "zmath.h"
-#include "include/zfeatures.h"
+#include "../include/zfeatures.h"
#ifndef M_PI
#define M_PI 3.14159265358979323
#endif
--- a/src/zline.c
+++ b/src/zline.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "include/zbuffer.h"
+#include "../include/zbuffer.h"
#define ZCMP(z,zpix) ((z) >= (zpix))
--- a/src/ztext.c
+++ b/src/ztext.c
@@ -2,8 +2,8 @@
#include <stdio.h>
#include <assert.h>
#include <string.h>
-#include "include/zbuffer.h"
-#include "include/GL/gl.h"
+#include "../include/zbuffer.h"
+#include "../include/GL/gl.h"
#include "zgl.h"
#include "font8x8_basic.h"
GLTEXTSIZE textsize = 1;
--- a/src/ztriangle.c
+++ b/src/ztriangle.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "include/zbuffer.h"
+#include "../include/zbuffer.h"