add getter functions
This commit is contained in:
parent
26dfe69e5f
commit
2009490151
284
src/external/rlsw.h
vendored
284
src/external/rlsw.h
vendored
|
|
@ -81,92 +81,125 @@
|
||||||
|
|
||||||
/* === OpenGL Definitions === */
|
/* === OpenGL Definitions === */
|
||||||
|
|
||||||
#define GL_SCISSOR_TEST 0x0C11
|
#define GL_SCISSOR_TEST 0x0C11
|
||||||
#define GL_TEXTURE_2D 0x0DE1
|
#define GL_TEXTURE_2D 0x0DE1
|
||||||
#define GL_DEPTH_TEST 0x0B71
|
#define GL_DEPTH_TEST 0x0B71
|
||||||
#define GL_CULL_FACE 0x0B44
|
#define GL_CULL_FACE 0x0B44
|
||||||
#define GL_BLEND 0x0BE2
|
#define GL_BLEND 0x0BE2
|
||||||
|
|
||||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
#define GL_VENDOR 0x1F00
|
||||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
#define GL_RENDERER 0x1F01
|
||||||
|
#define GL_VERSION 0x1F02
|
||||||
|
#define GL_EXTENSIONS 0x1F03
|
||||||
|
|
||||||
#define GL_MODELVIEW 0x1700
|
//#define GL_ATTRIB_STACK_DEPTH 0x0BB0
|
||||||
#define GL_PROJECTION 0x1701
|
//#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
|
||||||
#define GL_TEXTURE 0x1702
|
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||||
|
//#define GL_COLOR_WRITEMASK 0x0C23
|
||||||
|
//#define GL_CURRENT_INDEX 0x0B01
|
||||||
|
#define GL_CURRENT_COLOR 0x0B00
|
||||||
|
#define GL_CURRENT_NORMAL 0x0B02
|
||||||
|
//#define GL_CURRENT_RASTER_COLOR 0x0B04
|
||||||
|
//#define GL_CURRENT_RASTER_DISTANCE 0x0B09
|
||||||
|
//#define GL_CURRENT_RASTER_INDEX 0x0B05
|
||||||
|
//#define GL_CURRENT_RASTER_POSITION 0x0B07
|
||||||
|
//#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
|
||||||
|
//#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
|
||||||
|
#define GL_CURRENT_TEXTURE_COORDS 0x0B03
|
||||||
|
//#define GL_INDEX_CLEAR_VALUE 0x0C20
|
||||||
|
//#define GL_INDEX_MODE 0x0C30
|
||||||
|
//#define GL_INDEX_WRITEMASK 0x0C21
|
||||||
|
#define GL_MODELVIEW_MATRIX 0x0BA6
|
||||||
|
#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
|
||||||
|
//#define GL_NAME_STACK_DEPTH 0x0D70
|
||||||
|
#define GL_PROJECTION_MATRIX 0x0BA7
|
||||||
|
#define GL_PROJECTION_STACK_DEPTH 0x0BA4
|
||||||
|
//#define GL_RENDER_MODE 0x0C40
|
||||||
|
//#define GL_RGBA_MODE 0x0C31
|
||||||
|
#define GL_TEXTURE_MATRIX 0x0BA8
|
||||||
|
#define GL_TEXTURE_STACK_DEPTH 0x0BA5
|
||||||
|
#define GL_VIEWPORT 0x0BA2
|
||||||
|
|
||||||
#define GL_VERTEX_ARRAY 0x8074
|
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||||
#define GL_NORMAL_ARRAY 0x8075
|
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||||
#define GL_COLOR_ARRAY 0x8076
|
|
||||||
//#define GL_INDEX_ARRAY 0x8077
|
|
||||||
#define GL_TEXTURE_COORD_ARRAY 0x8078
|
|
||||||
|
|
||||||
#define GL_POINTS 0x0000
|
#define GL_MODELVIEW 0x1700
|
||||||
#define GL_LINES 0x0001
|
#define GL_PROJECTION 0x1701
|
||||||
//#define GL_LINE_LOOP 0x0002
|
#define GL_TEXTURE 0x1702
|
||||||
//#define GL_LINE_STRIP 0x0003
|
|
||||||
#define GL_TRIANGLES 0x0004
|
|
||||||
//#define GL_TRIANGLE_STRIP 0x0005
|
|
||||||
//#define GL_TRIANGLE_FAN 0x0006
|
|
||||||
#define GL_QUADS 0x0007
|
|
||||||
//#define GL_QUAD_STRIP 0x0008
|
|
||||||
//#define GL_POLYGON 0x0009
|
|
||||||
|
|
||||||
#define GL_POINT 0x1B00
|
#define GL_VERTEX_ARRAY 0x8074
|
||||||
#define GL_LINE 0x1B01
|
#define GL_NORMAL_ARRAY 0x8075
|
||||||
#define GL_FILL 0x1B02
|
#define GL_COLOR_ARRAY 0x8076
|
||||||
|
//#define GL_INDEX_ARRAY 0x8077
|
||||||
|
#define GL_TEXTURE_COORD_ARRAY 0x8078
|
||||||
|
|
||||||
//#define GL_CW 0x0900
|
#define GL_POINTS 0x0000
|
||||||
//#define GL_CCW 0x0901
|
#define GL_LINES 0x0001
|
||||||
|
//#define GL_LINE_LOOP 0x0002
|
||||||
|
//#define GL_LINE_STRIP 0x0003
|
||||||
|
#define GL_TRIANGLES 0x0004
|
||||||
|
//#define GL_TRIANGLE_STRIP 0x0005
|
||||||
|
//#define GL_TRIANGLE_FAN 0x0006
|
||||||
|
#define GL_QUADS 0x0007
|
||||||
|
//#define GL_QUAD_STRIP 0x0008
|
||||||
|
//#define GL_POLYGON 0x0009
|
||||||
|
|
||||||
#define GL_FRONT 0x0404
|
#define GL_POINT 0x1B00
|
||||||
#define GL_BACK 0x0405
|
#define GL_LINE 0x1B01
|
||||||
|
#define GL_FILL 0x1B02
|
||||||
|
|
||||||
#define GL_ZERO 0
|
//#define GL_CW 0x0900
|
||||||
#define GL_ONE 1
|
//#define GL_CCW 0x0901
|
||||||
#define GL_SRC_COLOR 0x0300
|
|
||||||
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
|
||||||
#define GL_SRC_ALPHA 0x0302
|
|
||||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
|
||||||
#define GL_DST_ALPHA 0x0304
|
|
||||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
|
||||||
#define GL_DST_COLOR 0x0306
|
|
||||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
|
||||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
|
||||||
|
|
||||||
#define GL_NEAREST 0x2600
|
#define GL_FRONT 0x0404
|
||||||
#define GL_LINEAR 0x2601
|
#define GL_BACK 0x0405
|
||||||
|
|
||||||
#define GL_REPEAT 0x2901
|
#define GL_ZERO 0
|
||||||
#define GL_CLAMP_TO_EDGE 0x812F //< (OpenGL 1.2)
|
#define GL_ONE 1
|
||||||
#define GL_MIRRORED_REPEAT 0x8370 //< (OpenGL 2.0)
|
#define GL_SRC_COLOR 0x0300
|
||||||
|
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
||||||
|
#define GL_SRC_ALPHA 0x0302
|
||||||
|
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||||
|
#define GL_DST_ALPHA 0x0304
|
||||||
|
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||||
|
#define GL_DST_COLOR 0x0306
|
||||||
|
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||||
|
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||||
|
|
||||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
#define GL_NEAREST 0x2600
|
||||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
#define GL_LINEAR 0x2601
|
||||||
|
|
||||||
#define GL_TEXTURE_WRAP_S 0x2802
|
#define GL_REPEAT 0x2901
|
||||||
#define GL_TEXTURE_WRAP_T 0x2803
|
#define GL_CLAMP_TO_EDGE 0x812F //< (OpenGL 1.2)
|
||||||
|
#define GL_MIRRORED_REPEAT 0x8370 //< (OpenGL 2.0)
|
||||||
|
|
||||||
#define GL_NO_ERROR 0
|
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||||
#define GL_INVALID_ENUM 0x0500
|
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||||
#define GL_INVALID_VALUE 0x0501
|
|
||||||
#define GL_INVALID_OPERATION 0x0502
|
|
||||||
#define GL_STACK_OVERFLOW 0x0503
|
|
||||||
#define GL_STACK_UNDERFLOW 0x0504
|
|
||||||
#define GL_OUT_OF_MEMORY 0x0505
|
|
||||||
|
|
||||||
#define GL_ALPHA 0x1906
|
#define GL_TEXTURE_WRAP_S 0x2802
|
||||||
#define GL_LUMINANCE 0x1909
|
#define GL_TEXTURE_WRAP_T 0x2803
|
||||||
#define GL_LUMINANCE_ALPHA 0x190A
|
|
||||||
#define GL_RGB 0x1907
|
|
||||||
#define GL_RGBA 0x1908
|
|
||||||
|
|
||||||
#define GL_BYTE 0x1400
|
#define GL_NO_ERROR 0
|
||||||
#define GL_UNSIGNED_BYTE 0x1401
|
#define GL_INVALID_ENUM 0x0500
|
||||||
#define GL_SHORT 0x1402
|
#define GL_INVALID_VALUE 0x0501
|
||||||
#define GL_UNSIGNED_SHORT 0x1403
|
#define GL_INVALID_OPERATION 0x0502
|
||||||
#define GL_INT 0x1404
|
#define GL_STACK_OVERFLOW 0x0503
|
||||||
#define GL_UNSIGNED_INT 0x1405
|
#define GL_STACK_UNDERFLOW 0x0504
|
||||||
#define GL_FLOAT 0x1406
|
#define GL_OUT_OF_MEMORY 0x0505
|
||||||
|
|
||||||
|
#define GL_ALPHA 0x1906
|
||||||
|
#define GL_LUMINANCE 0x1909
|
||||||
|
#define GL_LUMINANCE_ALPHA 0x190A
|
||||||
|
#define GL_RGB 0x1907
|
||||||
|
#define GL_RGBA 0x1908
|
||||||
|
|
||||||
|
#define GL_BYTE 0x1400
|
||||||
|
#define GL_UNSIGNED_BYTE 0x1401
|
||||||
|
#define GL_SHORT 0x1402
|
||||||
|
#define GL_UNSIGNED_SHORT 0x1403
|
||||||
|
#define GL_INT 0x1404
|
||||||
|
#define GL_UNSIGNED_INT 0x1405
|
||||||
|
#define GL_FLOAT 0x1406
|
||||||
|
|
||||||
|
|
||||||
/* === Not Implemented === */
|
/* === Not Implemented === */
|
||||||
|
|
@ -185,6 +218,24 @@ typedef enum {
|
||||||
SW_BLEND = GL_BLEND
|
SW_BLEND = GL_BLEND
|
||||||
} SWstate;
|
} SWstate;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SW_VENDOR = GL_VENDOR,
|
||||||
|
SW_RENDERER = GL_RENDERER,
|
||||||
|
SW_VERSION = GL_VERSION,
|
||||||
|
SW_EXTENSIONS = GL_EXTENSIONS,
|
||||||
|
SW_COLOR_CLEAR_VALUE = GL_COLOR_CLEAR_VALUE,
|
||||||
|
SW_CURRENT_COLOR = GL_CURRENT_COLOR,
|
||||||
|
SW_CURRENT_NORMAL = GL_CURRENT_NORMAL,
|
||||||
|
SW_CURRENT_TEXTURE_COORDS = GL_CURRENT_TEXTURE_COORDS,
|
||||||
|
SW_MODELVIEW_MATRIX = GL_MODELVIEW_MATRIX,
|
||||||
|
SW_MODELVIEW_STACK_DEPTH = GL_MODELVIEW_STACK_DEPTH,
|
||||||
|
SW_PROJECTION_MATRIX = GL_PROJECTION_MATRIX,
|
||||||
|
SW_PROJECTION_STACK_DEPTH = GL_PROJECTION_STACK_DEPTH,
|
||||||
|
SW_TEXTURE_MATRIX = GL_TEXTURE_MATRIX,
|
||||||
|
SW_TEXTURE_STACK_DEPTH = GL_TEXTURE_STACK_DEPTH,
|
||||||
|
SW_VIEWPORT = GL_VIEWPORT
|
||||||
|
} SWget;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SW_COLOR_BUFFER_BIT = GL_COLOR_BUFFER_BIT,
|
SW_COLOR_BUFFER_BIT = GL_COLOR_BUFFER_BIT,
|
||||||
SW_DEPTH_BUFFER_BIT = GL_DEPTH_BUFFER_BIT
|
SW_DEPTH_BUFFER_BIT = GL_DEPTH_BUFFER_BIT
|
||||||
|
|
@ -291,6 +342,9 @@ bool swResizeFramebuffer(int w, int h);
|
||||||
void swEnable(SWstate state);
|
void swEnable(SWstate state);
|
||||||
void swDisable(SWstate state);
|
void swDisable(SWstate state);
|
||||||
|
|
||||||
|
void swGetFloatv(SWget name, float* v);
|
||||||
|
const char* glGetString(SWget name);
|
||||||
|
|
||||||
void swViewport(int x, int y, int width, int height);
|
void swViewport(int x, int y, int width, int height);
|
||||||
void swScissor(int x, int y, int width, int height);
|
void swScissor(int x, int y, int width, int height);
|
||||||
|
|
||||||
|
|
@ -2824,6 +2878,94 @@ void swDisable(SWstate state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void swGetIntegerv(SWget name, int* v)
|
||||||
|
{
|
||||||
|
switch (name) {
|
||||||
|
case SW_MODELVIEW_STACK_DEPTH:
|
||||||
|
*v = SW_MODELVIEW_STACK_DEPTH;
|
||||||
|
break;
|
||||||
|
case SW_PROJECTION_STACK_DEPTH:
|
||||||
|
*v = SW_PROJECTION_STACK_DEPTH;
|
||||||
|
break;
|
||||||
|
case SW_TEXTURE_STACK_DEPTH:
|
||||||
|
*v = SW_TEXTURE_STACK_DEPTH;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RLSW.errCode = SW_INVALID_ENUM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void swGetFloatv(SWget name, float* v)
|
||||||
|
{
|
||||||
|
switch (name) {
|
||||||
|
case SW_COLOR_CLEAR_VALUE:
|
||||||
|
v[0] = RLSW.clearColor[0];
|
||||||
|
v[1] = RLSW.clearColor[1];
|
||||||
|
v[2] = RLSW.clearColor[2];
|
||||||
|
v[3] = RLSW.clearColor[3];
|
||||||
|
break;
|
||||||
|
case SW_CURRENT_COLOR:
|
||||||
|
v[0] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].color[0];
|
||||||
|
v[1] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].color[1];
|
||||||
|
v[2] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].color[2];
|
||||||
|
v[3] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].color[3];
|
||||||
|
break;
|
||||||
|
case SW_CURRENT_NORMAL:
|
||||||
|
v[0] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].normal[0];
|
||||||
|
v[1] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].normal[1];
|
||||||
|
v[2] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].normal[2];
|
||||||
|
break;
|
||||||
|
case SW_CURRENT_TEXTURE_COORDS:
|
||||||
|
v[0] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].texcoord[0];
|
||||||
|
v[1] = RLSW.vertexBuffer[RLSW.vertexCounter - 1].texcoord[1];
|
||||||
|
break;
|
||||||
|
case SW_MODELVIEW_MATRIX:
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
v[i] = RLSW.stackModelview[RLSW.stackModelviewCounter - 1][i];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SW_PROJECTION_MATRIX:
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
v[i] = RLSW.stackProjection[RLSW.stackProjectionCounter - 1][i];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SW_TEXTURE_MATRIX:
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
v[i] = RLSW.stackTexture[RLSW.stackTextureCounter - 1][i];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RLSW.errCode = SW_INVALID_ENUM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* glGetString(SWget name)
|
||||||
|
{
|
||||||
|
const char* result = NULL;
|
||||||
|
|
||||||
|
switch (name) {
|
||||||
|
case SW_VENDOR:
|
||||||
|
result = "RLSW Header";
|
||||||
|
break;
|
||||||
|
case SW_RENDERER:
|
||||||
|
result = "RLSW Software Renderer";
|
||||||
|
break;
|
||||||
|
case SW_VERSION:
|
||||||
|
result = "RLSW 1.0";
|
||||||
|
break;
|
||||||
|
case SW_EXTENSIONS:
|
||||||
|
result = "None";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RLSW.errCode = SW_INVALID_ENUM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void swViewport(int x, int y, int width, int height)
|
void swViewport(int x, int y, int width, int height)
|
||||||
{
|
{
|
||||||
if (x <= -width || y <= -height) {
|
if (x <= -width || y <= -height) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user