Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 3:0c3bcea5b4d0, committed 2012-03-05
- Comitter:
- sca8er
- Date:
- Mon Mar 05 04:56:58 2012 +0000
- Parent:
- 2:5853bf44af9f
- Commit message:
Changed in this revision
diff -r 5853bf44af9f -r 0c3bcea5b4d0 GL/gl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GL/gl.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,1470 @@ +/* + * Mesa 3-D graphics library + * Version: 4.0 + * + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +/************************************************************************ + * 2002-Apr-22, José Fonseca: + * Removed non Win32 system-specific stuff + * + * 2002-Apr-17, Marcus Geelnard: + * For win32, OpenGL 1.2 & 1.3 definitions are not made in this file + * anymore, since under Windows those are regarded as extensions, and + * are better defined in glext.h (especially the function prototypes may + * conflict with extension function pointers). A few "cosmetical" + * changes were also made to this file. + * + * 2002-Apr-15, Marcus Geelnard: + * Modified this file to better fit a wider range of compilers, removed + * Mesa specific stuff, and removed extension definitions (this file now + * relies on GL/glext.h). Hopefully this file should now function as a + * generic OpenGL gl.h include file for most compilers and environments. + * Changed GLAPIENTRY to APIENTRY (to be consistent with GL/glext.h). + ************************************************************************/ + + +#ifndef __gl_h_ +#define __gl_h_ + + + +/************************************************************************ + * Begin system-specific stuff. + */ +/* __WIN32__ */ +#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__)) +# define __WIN32__ +#endif + +/* GLAPI, part 1 (use WINGDIAPI, if defined) */ +#if defined(__WIN32__) && defined(WINGDIAPI) +# define GLAPI WINGDIAPI +#endif + +/* GLAPI, part 2 */ +#if !defined(GLAPI) +# if defined(_MSC_VER) /* Microsoft Visual C++ */ +# define GLAPI __declspec(dllimport) +# elif defined(__LCC__) && defined(__WIN32__) /* LCC-Win32 */ +# define GLAPI __stdcall +# else /* Others (e.g. MinGW, Cygwin, non-win32) */ +# define GLAPI extern +# endif +#endif + +/* APIENTRY */ +#if !defined(APIENTRY) +# if defined(__WIN32__) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +#endif +/* + * End system-specific stuff. + ************************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define GL_VERSION_1_1 1 + +#if !defined(__WIN32__) +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_ARB_imaging 1 +#endif + + +/* + * + * Datatypes + * + */ +#ifdef CENTERLINE_CLPP +#define signed +#endif +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +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 int GLsizei; /* 4-byte signed */ +typedef float GLfloat; /* single precision float */ +typedef float GLclampf; /* single precision float in [0,1] */ +typedef double GLdouble; /* double precision float */ +typedef double GLclampd; /* double precision float in [0,1] */ + + + +/************************************************************************ + * + * Constants + * + ************************************************************************/ + +/* Boolean values */ +#define GL_FALSE 0x0 +#define GL_TRUE 0x1 + +/* Data types */ +#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 +#define GL_DOUBLE 0x140A +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 + +/* Primitives */ +#define GL_POINTS 0x0000 +#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 + +/* Vertex Arrays */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* Matrix Mode */ +#define GL_MATRIX_MODE 0x0BA0 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* Points */ +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 + +/* Lines */ +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 + +/* Polygons */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* Display Lists */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_LIST_MODE 0x0B30 + +/* Depth buffer */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_BITS 0x0D56 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_COMPONENT 0x1902 + +/* Lighting */ +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_SHININESS 0x1601 +#define GL_EMISSION 0x1600 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_SHADE_MODEL 0x0B54 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_NORMALIZE 0x0BA1 + +/* User clipping planes */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* Accumulation buffer */ +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_ACCUM 0x0100 +#define GL_ADD 0x0104 +#define GL_LOAD 0x0101 +#define GL_MULT 0x0103 +#define GL_RETURN 0x0102 + +/* Alpha testing */ +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_ALPHA_TEST_FUNC 0x0BC1 + +/* Blending */ +#define GL_BLEND 0x0BE2 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND_DST 0x0BE0 +#define GL_ZERO 0x0 +#define GL_ONE 0x1 +#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_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 + +/* Render Mode */ +#define GL_FEEDBACK 0x1C01 +#define GL_RENDER 0x1C00 +#define GL_SELECT 0x1C02 + +/* Feedback */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 + +/* Selection */ +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 + +/* Fog */ +#define GL_FOG 0x0B60 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_COLOR 0x0B66 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_LINEAR 0x2601 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* Logic Ops */ +#define GL_LOGIC_OP 0x0BF1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_CLEAR 0x1500 +#define GL_SET 0x150F +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_NOOP 0x1505 +#define GL_INVERT 0x150A +#define GL_AND 0x1501 +#define GL_NAND 0x150E +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_XOR 0x1506 +#define GL_EQUIV 0x1509 +#define GL_AND_REVERSE 0x1502 +#define GL_AND_INVERTED 0x1504 +#define GL_OR_REVERSE 0x150B +#define GL_OR_INVERTED 0x150D + +/* Stencil */ +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STENCIL_BITS 0x0D57 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_INDEX 0x1901 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 + +/* Buffers, Pixel Drawing/Reading */ +#define GL_NONE 0x0 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +/*GL_FRONT 0x0404 */ +/*GL_BACK 0x0405 */ +/*GL_FRONT_AND_BACK 0x0408 */ +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_COLOR_INDEX 0x1900 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_ALPHA_BITS 0x0D55 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_INDEX_BITS 0x0D51 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_READ_BUFFER 0x0C02 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_BITMAP 0x1A00 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_DITHER 0x0BD0 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 + +/* Implementation limits */ +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B + +/* Gets */ +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#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 + +/* Evaluators */ +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_COEFF 0x0A00 +#define GL_DOMAIN 0x0A02 +#define GL_ORDER 0x0A01 + +/* Hints */ +#define GL_FOG_HINT 0x0C54 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* Scissor box */ +#define GL_SCISSOR_TEST 0x0C11 +#define GL_SCISSOR_BOX 0x0C10 + +/* Pixel Mode / Transfer */ +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 + +/* Texture mapping */ +#define GL_TEXTURE_ENV 0x2300 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_LINEAR 0x2400 +#define GL_EYE_PLANE 0x2502 +#define GL_SPHERE_MAP 0x2402 +#define GL_DECAL 0x2101 +#define GL_MODULATE 0x2100 +#define GL_NEAREST 0x2600 +#define GL_REPEAT 0x2901 +#define GL_CLAMP 0x2900 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 + +/* Utility */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* Errors */ +#define GL_NO_ERROR 0x0 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 + +/* glPush/PopAttrib bits */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000FFFFF + + +/* OpenGL 1.1 */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF + + +/* Under Windows, we do not define OpenGL 1.2 & 1.3 functionality, since + it is treated as extensions (defined in glext.h) */ +#if !defined(__WIN32__) + +/* OpenGL 1.2 */ +#define GL_RESCALE_NORMAL 0x803A +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_TEXTURE_BINDING_3D 0x806A + +/* OpenGL 1.2 imaging subset */ +/* GL_EXT_color_table */ +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +/* GL_EXT_convolution and GL_HP_convolution_border_modes */ +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +/* GL_SGI_color_matrix */ +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +/* GL_EXT_histogram */ +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +/* GL_EXT_blend_color, GL_EXT_blend_minmax */ +#define GL_BLEND_EQUATION 0x8009 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_BLEND_COLOR 0x8005 + + +/* OpenGL 1.3 */ +/* multitexture */ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +/* texture_cube_map */ +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +/* texture_compression */ +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +/* multisample */ +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +/* transpose_matrix */ +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +/* texture_env_combine */ +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +/* texture_env_dot3 */ +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +/* texture_border_clamp */ +#define GL_CLAMP_TO_BORDER 0x812D + +#endif /* __WIN32__ */ + + + +/************************************************************************ + * + * Function prototypes + * + ************************************************************************/ + +/* Miscellaneous */ +GLAPI void APIENTRY glClearIndex( GLfloat c ); +GLAPI void APIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); +GLAPI void APIENTRY glClear( GLbitfield mask ); +GLAPI void APIENTRY glIndexMask( GLuint mask ); +GLAPI void APIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); +GLAPI void APIENTRY glAlphaFunc( GLenum func, GLclampf ref ); +GLAPI void APIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); +GLAPI void APIENTRY glLogicOp( GLenum opcode ); +GLAPI void APIENTRY glCullFace( GLenum mode ); +GLAPI void APIENTRY glFrontFace( GLenum mode ); +GLAPI void APIENTRY glPointSize( GLfloat size ); +GLAPI void APIENTRY glLineWidth( GLfloat width ); +GLAPI void APIENTRY glLineStipple( GLint factor, GLushort pattern ); +GLAPI void APIENTRY glPolygonMode( GLenum face, GLenum mode ); +GLAPI void APIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); +GLAPI void APIENTRY glPolygonStipple( const GLubyte *mask ); +GLAPI void APIENTRY glGetPolygonStipple( GLubyte *mask ); +GLAPI void APIENTRY glEdgeFlag( GLboolean flag ); +GLAPI void APIENTRY glEdgeFlagv( const GLboolean *flag ); +GLAPI void APIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); +GLAPI void APIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); +GLAPI void APIENTRY glDrawBuffer( GLenum mode ); +GLAPI void APIENTRY glReadBuffer( GLenum mode ); +GLAPI void APIENTRY glEnable( GLenum cap ); +GLAPI void APIENTRY glDisable( GLenum cap ); +GLAPI GLboolean APIENTRY glIsEnabled( GLenum cap ); +GLAPI void APIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ +GLAPI void APIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ +GLAPI void APIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); +GLAPI void APIENTRY glGetDoublev( GLenum pname, GLdouble *params ); +GLAPI void APIENTRY glGetFloatv( GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetIntegerv( GLenum pname, GLint *params ); +GLAPI void APIENTRY glPushAttrib( GLbitfield mask ); +GLAPI void APIENTRY glPopAttrib( void ); +GLAPI void APIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ +GLAPI void APIENTRY glPopClientAttrib( void ); /* 1.1 */ +GLAPI GLint APIENTRY glRenderMode( GLenum mode ); +GLAPI GLenum APIENTRY glGetError( void ); +GLAPI const GLubyte* APIENTRY glGetString( GLenum name ); +GLAPI void APIENTRY glFinish( void ); +GLAPI void APIENTRY glFlush( void ); +GLAPI void APIENTRY glHint( GLenum target, GLenum mode ); + +/* Depth Buffer */ +GLAPI void APIENTRY glClearDepth( GLclampd depth ); +GLAPI void APIENTRY glDepthFunc( GLenum func ); +GLAPI void APIENTRY glDepthMask( GLboolean flag ); +GLAPI void APIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); + +/* Accumulation Buffer */ +GLAPI void APIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); +GLAPI void APIENTRY glAccum( GLenum op, GLfloat value ); + +/* Transformation */ +GLAPI void APIENTRY glMatrixMode( GLenum mode ); +GLAPI void APIENTRY glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); +GLAPI void APIENTRY glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); +GLAPI void APIENTRY glViewport( GLint x, GLint y, GLsizei width, GLsizei height ); +GLAPI void APIENTRY glPushMatrix( void ); +GLAPI void APIENTRY glPopMatrix( void ); +GLAPI void APIENTRY glLoadIdentity( void ); +GLAPI void APIENTRY glLoadMatrixd( const GLdouble *m ); +GLAPI void APIENTRY glLoadMatrixf( const GLfloat *m ); +GLAPI void APIENTRY glMultMatrixd( const GLdouble *m ); +GLAPI void APIENTRY glMultMatrixf( const GLfloat *m ); +GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z ); +GLAPI void APIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); +GLAPI void APIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void APIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void APIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void APIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); + +/* Display Lists */ +GLAPI GLboolean APIENTRY glIsList( GLuint list ); +GLAPI void APIENTRY glDeleteLists( GLuint list, GLsizei range ); +GLAPI GLuint APIENTRY glGenLists( GLsizei range ); +GLAPI void APIENTRY glNewList( GLuint list, GLenum mode ); +GLAPI void APIENTRY glEndList( void ); +GLAPI void APIENTRY glCallList( GLuint list ); +GLAPI void APIENTRY glCallLists( GLsizei n, GLenum type, const GLvoid *lists ); +GLAPI void APIENTRY glListBase( GLuint base ); + +/* Drawing Functions */ +GLAPI void APIENTRY glBegin( GLenum mode ); +GLAPI void APIENTRY glEnd( void ); +GLAPI void APIENTRY glVertex2d( GLdouble x, GLdouble y ); +GLAPI void APIENTRY glVertex2f( GLfloat x, GLfloat y ); +GLAPI void APIENTRY glVertex2i( GLint x, GLint y ); +GLAPI void APIENTRY glVertex2s( GLshort x, GLshort y ); +GLAPI void APIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void APIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void APIENTRY glVertex3i( GLint x, GLint y, GLint z ); +GLAPI void APIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); +GLAPI void APIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void APIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void APIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void APIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); +GLAPI void APIENTRY glVertex2dv( const GLdouble *v ); +GLAPI void APIENTRY glVertex2fv( const GLfloat *v ); +GLAPI void APIENTRY glVertex2iv( const GLint *v ); +GLAPI void APIENTRY glVertex2sv( const GLshort *v ); +GLAPI void APIENTRY glVertex3dv( const GLdouble *v ); +GLAPI void APIENTRY glVertex3fv( const GLfloat *v ); +GLAPI void APIENTRY glVertex3iv( const GLint *v ); +GLAPI void APIENTRY glVertex3sv( const GLshort *v ); +GLAPI void APIENTRY glVertex4dv( const GLdouble *v ); +GLAPI void APIENTRY glVertex4fv( const GLfloat *v ); +GLAPI void APIENTRY glVertex4iv( const GLint *v ); +GLAPI void APIENTRY glVertex4sv( const GLshort *v ); +GLAPI void APIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); +GLAPI void APIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); +GLAPI void APIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); +GLAPI void APIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); +GLAPI void APIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); +GLAPI void APIENTRY glNormal3bv( const GLbyte *v ); +GLAPI void APIENTRY glNormal3dv( const GLdouble *v ); +GLAPI void APIENTRY glNormal3fv( const GLfloat *v ); +GLAPI void APIENTRY glNormal3iv( const GLint *v ); +GLAPI void APIENTRY glNormal3sv( const GLshort *v ); +GLAPI void APIENTRY glIndexd( GLdouble c ); +GLAPI void APIENTRY glIndexf( GLfloat c ); +GLAPI void APIENTRY glIndexi( GLint c ); +GLAPI void APIENTRY glIndexs( GLshort c ); +GLAPI void APIENTRY glIndexub( GLubyte c ); /* 1.1 */ +GLAPI void APIENTRY glIndexdv( const GLdouble *c ); +GLAPI void APIENTRY glIndexfv( const GLfloat *c ); +GLAPI void APIENTRY glIndexiv( const GLint *c ); +GLAPI void APIENTRY glIndexsv( const GLshort *c ); +GLAPI void APIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ +GLAPI void APIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); +GLAPI void APIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); +GLAPI void APIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); +GLAPI void APIENTRY glColor3i( GLint red, GLint green, GLint blue ); +GLAPI void APIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); +GLAPI void APIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); +GLAPI void APIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); +GLAPI void APIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); +GLAPI void APIENTRY glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ); +GLAPI void APIENTRY glColor4d( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ); +GLAPI void APIENTRY glColor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); +GLAPI void APIENTRY glColor4i( GLint red, GLint green, GLint blue, GLint alpha ); +GLAPI void APIENTRY glColor4s( GLshort red, GLshort green, GLshort blue, GLshort alpha ); +GLAPI void APIENTRY glColor4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); +GLAPI void APIENTRY glColor4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ); +GLAPI void APIENTRY glColor4us( GLushort red, GLushort green, GLushort blue, GLushort alpha ); +GLAPI void APIENTRY glColor3bv( const GLbyte *v ); +GLAPI void APIENTRY glColor3dv( const GLdouble *v ); +GLAPI void APIENTRY glColor3fv( const GLfloat *v ); +GLAPI void APIENTRY glColor3iv( const GLint *v ); +GLAPI void APIENTRY glColor3sv( const GLshort *v ); +GLAPI void APIENTRY glColor3ubv( const GLubyte *v ); +GLAPI void APIENTRY glColor3uiv( const GLuint *v ); +GLAPI void APIENTRY glColor3usv( const GLushort *v ); +GLAPI void APIENTRY glColor4bv( const GLbyte *v ); +GLAPI void APIENTRY glColor4dv( const GLdouble *v ); +GLAPI void APIENTRY glColor4fv( const GLfloat *v ); +GLAPI void APIENTRY glColor4iv( const GLint *v ); +GLAPI void APIENTRY glColor4sv( const GLshort *v ); +GLAPI void APIENTRY glColor4ubv( const GLubyte *v ); +GLAPI void APIENTRY glColor4uiv( const GLuint *v ); +GLAPI void APIENTRY glColor4usv( const GLushort *v ); +GLAPI void APIENTRY glTexCoord1d( GLdouble s ); +GLAPI void APIENTRY glTexCoord1f( GLfloat s ); +GLAPI void APIENTRY glTexCoord1i( GLint s ); +GLAPI void APIENTRY glTexCoord1s( GLshort s ); +GLAPI void APIENTRY glTexCoord2d( GLdouble s, GLdouble t ); +GLAPI void APIENTRY glTexCoord2f( GLfloat s, GLfloat t ); +GLAPI void APIENTRY glTexCoord2i( GLint s, GLint t ); +GLAPI void APIENTRY glTexCoord2s( GLshort s, GLshort t ); +GLAPI void APIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); +GLAPI void APIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); +GLAPI void APIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); +GLAPI void APIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); +GLAPI void APIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +GLAPI void APIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); +GLAPI void APIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); +GLAPI void APIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); +GLAPI void APIENTRY glTexCoord1dv( const GLdouble *v ); +GLAPI void APIENTRY glTexCoord1fv( const GLfloat *v ); +GLAPI void APIENTRY glTexCoord1iv( const GLint *v ); +GLAPI void APIENTRY glTexCoord1sv( const GLshort *v ); +GLAPI void APIENTRY glTexCoord2dv( const GLdouble *v ); +GLAPI void APIENTRY glTexCoord2fv( const GLfloat *v ); +GLAPI void APIENTRY glTexCoord2iv( const GLint *v ); +GLAPI void APIENTRY glTexCoord2sv( const GLshort *v ); +GLAPI void APIENTRY glTexCoord3dv( const GLdouble *v ); +GLAPI void APIENTRY glTexCoord3fv( const GLfloat *v ); +GLAPI void APIENTRY glTexCoord3iv( const GLint *v ); +GLAPI void APIENTRY glTexCoord3sv( const GLshort *v ); +GLAPI void APIENTRY glTexCoord4dv( const GLdouble *v ); +GLAPI void APIENTRY glTexCoord4fv( const GLfloat *v ); +GLAPI void APIENTRY glTexCoord4iv( const GLint *v ); +GLAPI void APIENTRY glTexCoord4sv( const GLshort *v ); +GLAPI void APIENTRY glRasterPos2d( GLdouble x, GLdouble y ); +GLAPI void APIENTRY glRasterPos2f( GLfloat x, GLfloat y ); +GLAPI void APIENTRY glRasterPos2i( GLint x, GLint y ); +GLAPI void APIENTRY glRasterPos2s( GLshort x, GLshort y ); +GLAPI void APIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void APIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void APIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); +GLAPI void APIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); +GLAPI void APIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void APIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void APIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void APIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); +GLAPI void APIENTRY glRasterPos2dv( const GLdouble *v ); +GLAPI void APIENTRY glRasterPos2fv( const GLfloat *v ); +GLAPI void APIENTRY glRasterPos2iv( const GLint *v ); +GLAPI void APIENTRY glRasterPos2sv( const GLshort *v ); +GLAPI void APIENTRY glRasterPos3dv( const GLdouble *v ); +GLAPI void APIENTRY glRasterPos3fv( const GLfloat *v ); +GLAPI void APIENTRY glRasterPos3iv( const GLint *v ); +GLAPI void APIENTRY glRasterPos3sv( const GLshort *v ); +GLAPI void APIENTRY glRasterPos4dv( const GLdouble *v ); +GLAPI void APIENTRY glRasterPos4fv( const GLfloat *v ); +GLAPI void APIENTRY glRasterPos4iv( const GLint *v ); +GLAPI void APIENTRY glRasterPos4sv( const GLshort *v ); +GLAPI void APIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); +GLAPI void APIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); +GLAPI void APIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); +GLAPI void APIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); +GLAPI void APIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); +GLAPI void APIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); +GLAPI void APIENTRY glRectiv( const GLint *v1, const GLint *v2 ); +GLAPI void APIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); + +/* Lighting */ +GLAPI void APIENTRY glShadeModel( GLenum mode ); +GLAPI void APIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); +GLAPI void APIENTRY glLighti( GLenum light, GLenum pname, GLint param ); +GLAPI void APIENTRY glLightfv( GLenum light, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glLightiv( GLenum light, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glGetLightfv( GLenum light, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetLightiv( GLenum light, GLenum pname, GLint *params ); +GLAPI void APIENTRY glLightModelf( GLenum pname, GLfloat param ); +GLAPI void APIENTRY glLightModeli( GLenum pname, GLint param ); +GLAPI void APIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glLightModeliv( GLenum pname, const GLint *params ); +GLAPI void APIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); +GLAPI void APIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); +GLAPI void APIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); +GLAPI void APIENTRY glColorMaterial( GLenum face, GLenum mode ); + +/* Raster functions */ +GLAPI void APIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); +GLAPI void APIENTRY glPixelStoref( GLenum pname, GLfloat param ); +GLAPI void APIENTRY glPixelStorei( GLenum pname, GLint param ); +GLAPI void APIENTRY glPixelTransferf( GLenum pname, GLfloat param ); +GLAPI void APIENTRY glPixelTransferi( GLenum pname, GLint param ); +GLAPI void APIENTRY glPixelMapfv( GLenum map, GLint mapsize, const GLfloat *values ); +GLAPI void APIENTRY glPixelMapuiv( GLenum map, GLint mapsize, const GLuint *values ); +GLAPI void APIENTRY glPixelMapusv( GLenum map, GLint mapsize, const GLushort *values ); +GLAPI void APIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); +GLAPI void APIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); +GLAPI void APIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); +GLAPI void APIENTRY glBitmap( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap ); +GLAPI void APIENTRY glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ); +GLAPI void APIENTRY glDrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glCopyPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type ); + +/* Stenciling */ +GLAPI void APIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); +GLAPI void APIENTRY glStencilMask( GLuint mask ); +GLAPI void APIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); +GLAPI void APIENTRY glClearStencil( GLint s ); + +/* Texture mapping */ +GLAPI void APIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); +GLAPI void APIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); +GLAPI void APIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); +GLAPI void APIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); +GLAPI void APIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); +GLAPI void APIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); +GLAPI void APIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void APIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); +GLAPI void APIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void APIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); +GLAPI void APIENTRY glTexParameterfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glTexParameteriv( GLenum target, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexParameteriv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params ); +GLAPI void APIENTRY glTexImage1D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glTexImage2D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels ); + +/* Evaluators */ +GLAPI void APIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points ); +GLAPI void APIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points ); +GLAPI void APIENTRY glMap2d( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points ); +GLAPI void APIENTRY glMap2f( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points ); +GLAPI void APIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); +GLAPI void APIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); +GLAPI void APIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); +GLAPI void APIENTRY glEvalCoord1d( GLdouble u ); +GLAPI void APIENTRY glEvalCoord1f( GLfloat u ); +GLAPI void APIENTRY glEvalCoord1dv( const GLdouble *u ); +GLAPI void APIENTRY glEvalCoord1fv( const GLfloat *u ); +GLAPI void APIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); +GLAPI void APIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); +GLAPI void APIENTRY glEvalCoord2dv( const GLdouble *u ); +GLAPI void APIENTRY glEvalCoord2fv( const GLfloat *u ); +GLAPI void APIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); +GLAPI void APIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); +GLAPI void APIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ); +GLAPI void APIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 ); +GLAPI void APIENTRY glEvalPoint1( GLint i ); +GLAPI void APIENTRY glEvalPoint2( GLint i, GLint j ); +GLAPI void APIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); +GLAPI void APIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); + +/* Fog */ +GLAPI void APIENTRY glFogf( GLenum pname, GLfloat param ); +GLAPI void APIENTRY glFogi( GLenum pname, GLint param ); +GLAPI void APIENTRY glFogfv( GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glFogiv( GLenum pname, const GLint *params ); + +/* Selection and Feedback */ +GLAPI void APIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); +GLAPI void APIENTRY glPassThrough( GLfloat token ); +GLAPI void APIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); +GLAPI void APIENTRY glInitNames( void ); +GLAPI void APIENTRY glLoadName( GLuint name ); +GLAPI void APIENTRY glPushName( GLuint name ); +GLAPI void APIENTRY glPopName( void ); + + +/* 1.1 functions */ +/* texture objects */ +GLAPI void APIENTRY glGenTextures( GLsizei n, GLuint *textures ); +GLAPI void APIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glBindTexture( GLenum target, GLuint texture ); +GLAPI void APIENTRY glPrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ); +GLAPI GLboolean APIENTRY glAreTexturesResident( GLsizei n, const GLuint *textures, GLboolean *residences ); +GLAPI GLboolean APIENTRY glIsTexture( GLuint texture ); +/* texture mapping */ +GLAPI void APIENTRY glTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glCopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border ); +GLAPI void APIENTRY glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); +GLAPI void APIENTRY glCopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); +GLAPI void APIENTRY glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); +/* vertex arrays */ +GLAPI void APIENTRY glVertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glNormalPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glIndexPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glTexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); +GLAPI void APIENTRY glGetPointerv( GLenum pname, GLvoid **params ); +GLAPI void APIENTRY glArrayElement( GLint i ); +GLAPI void APIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); +GLAPI void APIENTRY glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); +GLAPI void APIENTRY glInterleavedArrays( GLenum format, GLsizei stride, const GLvoid *pointer ); + + + +/* Under Windows, we do not define OpenGL 1.2 & 1.3 functionality, since + it is treated as extensions (defined in glext.h) */ +#if !defined(__WIN32__) + +/* 1.2 functions */ +GLAPI void APIENTRY glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); +GLAPI void APIENTRY glTexImage3D( GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); +GLAPI void APIENTRY glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); + +/* 1.2 imaging extension functions */ +GLAPI void APIENTRY glColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table ); +GLAPI void APIENTRY glColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data ); +GLAPI void APIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glCopyColorSubTable( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width ); +GLAPI void APIENTRY glCopyColorTable( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); +GLAPI void APIENTRY glGetColorTable( GLenum target, GLenum format, GLenum type, GLvoid *table ); +GLAPI void APIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glBlendEquation( GLenum mode ); +GLAPI void APIENTRY glBlendColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); +GLAPI void APIENTRY glHistogram( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink ); +GLAPI void APIENTRY glResetHistogram( GLenum target ); +GLAPI void APIENTRY glGetHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values ); +GLAPI void APIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glMinmax( GLenum target, GLenum internalformat, GLboolean sink ); +GLAPI void APIENTRY glResetMinmax( GLenum target ); +GLAPI void APIENTRY glGetMinmax( GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values ); +GLAPI void APIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image ); +GLAPI void APIENTRY glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image ); +GLAPI void APIENTRY glConvolutionParameterf( GLenum target, GLenum pname, GLfloat params ); +GLAPI void APIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void APIENTRY glConvolutionParameteri( GLenum target, GLenum pname, GLint params ); +GLAPI void APIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, const GLint *params ); +GLAPI void APIENTRY glCopyConvolutionFilter1D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); +GLAPI void APIENTRY glCopyConvolutionFilter2D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetConvolutionFilter( GLenum target, GLenum format, GLenum type, GLvoid *image ); +GLAPI void APIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void APIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, GLint *params ); +GLAPI void APIENTRY glSeparableFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column ); +GLAPI void APIENTRY glGetSeparableFilter( GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); + +/* 1.3 functions */ +GLAPI void APIENTRY glActiveTexture( GLenum texture ); +GLAPI void APIENTRY glClientActiveTexture( GLenum texture ); +GLAPI void APIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); +GLAPI void APIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); +GLAPI void APIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); +GLAPI void APIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); +GLAPI void APIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); +GLAPI void APIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); +GLAPI void APIENTRY glMultiTexCoord1i( GLenum target, GLint s ); +GLAPI void APIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); +GLAPI void APIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); +GLAPI void APIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); +GLAPI void APIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); +GLAPI void APIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); +GLAPI void APIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); +GLAPI void APIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); +GLAPI void APIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); +GLAPI void APIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); +GLAPI void APIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); +GLAPI void APIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); +GLAPI void APIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); +GLAPI void APIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); +GLAPI void APIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); +GLAPI void APIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); +GLAPI void APIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); +GLAPI void APIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); +GLAPI void APIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); +GLAPI void APIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); +GLAPI void APIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +GLAPI void APIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); +GLAPI void APIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); +GLAPI void APIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); +GLAPI void APIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); +GLAPI void APIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); +GLAPI void APIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); +GLAPI void APIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); +GLAPI void APIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); +GLAPI void APIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); +GLAPI void APIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); +GLAPI void APIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); +GLAPI void APIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); +GLAPI void APIENTRY glSamplePass( GLenum pass ); + +#endif /* __WIN32__ */ + + +/* Include external definitions of OpenGL extensions */ +/* Removed, see this bug report for reference: + * http://sourceforge.net/tracker/index.php?func=detail&aid=610178&group_id=2435&atid=102435 + * + * #include <GL/glext.h> + */ + + +/************************************************************************ + * Begin system-specific stuff + */ +/* + * End system-specific stuff + ************************************************************************/ + + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 GL/glext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GL/glext.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,4623 @@ +#ifndef __glext_h_ +#define __glext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) +#define WIN32_LEAN_AND_MEAN 1 +#include <windows.h> +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glext.h last updated 2002/03/22 */ +/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */ +#define GL_GLEXT_VERSION 11 + +#ifndef GL_VERSION_1_2 +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_RESCALE_NORMAL 0x803A +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_IGNORE_BORDER 0x8150 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_WRAP_BORDER 0x8152 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#endif + +#ifndef GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#ifndef GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#ifndef GL_ARB_texture_env_add +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#ifndef GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#ifndef GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGB_EXT 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#define GL_DOT3_RGBA_EXT 0x86AF +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#ifndef GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#ifndef GL_ARB_window_pos +#endif + +#ifndef GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#ifndef GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#ifndef GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#ifndef GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +#endif + +#ifndef GL_EXT_subtexture +#endif + +#ifndef GL_EXT_copy_texture +#endif + +#ifndef GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#ifndef GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#ifndef GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#ifndef GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +#endif + +#ifndef GL_SGIS_texture4D +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif + +#ifndef GL_EXT_cmyka +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif + +#ifndef GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#ifndef GL_SGIS_multisample +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#ifndef GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#ifndef GL_EXT_misc_attribute +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif + +#ifndef GL_SGIX_shadow +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#ifndef GL_EXT_blend_logic_op +#endif + +#ifndef GL_SGIX_interlace +#define GL_INTERLACE_SGIX 0x8094 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif + +#ifndef GL_SGIS_texture_select +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif + +#ifndef GL_SGIX_instruments +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif + +#ifndef GL_SGIX_framezoom +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#endif + +#ifndef GL_FfdMaskSGIX +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +#endif + +#ifndef GL_SGIX_flush_raster +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif + +#ifndef GL_HP_image_transform +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#ifndef GL_INGR_palette_buffer +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif + +#ifndef GL_EXT_color_subtable +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_LIST_PRIORITY_SGIX 0x8182 +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif + +#ifndef GL_EXT_index_texture +#endif + +#ifndef GL_EXT_index_material +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +#endif + +#ifndef GL_EXT_index_func +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_IUI_V2F_EXT 0x81AD +#define GL_IUI_V3F_EXT 0x81AE +#define GL_IUI_N3F_V2F_EXT 0x81AF +#define GL_IUI_N3F_V3F_EXT 0x81B0 +#define GL_T2F_IUI_V2F_EXT 0x81B1 +#define GL_T2F_IUI_V3F_EXT 0x81B2 +#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 +#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#ifndef GL_WIN_phong_shading +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif + +#ifndef GL_WIN_specular_fog +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif + +#ifndef GL_EXT_light_texture +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +/* reuse GL_FRAGMENT_DEPTH_EXT */ +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 +#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 +#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 +#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 +#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 +#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 +#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A +#endif + +#ifndef GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#ifndef GL_SGIX_async +#define GL_ASYNC_MARKER_SGIX 0x8329 +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif + +#ifndef GL_INTEL_texture_scissor +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +#endif + +#ifndef GL_HP_occlusion_test +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#ifndef GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +#endif + +#ifndef GL_EXT_multi_draw_arrays +#endif + +#ifndef GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD +#endif + +#ifndef GL_SUNX_constant_data +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +#endif + +#ifndef GL_SUN_global_alpha +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +#endif + +#ifndef GL_SUN_triangle_list +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +#endif + +#ifndef GL_SUN_vertex +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#ifndef GL_INGR_color_clamp +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INTERLACE_READ_INGR 0x8568 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#ifndef GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif + +#ifndef GL_EXT_texture_env_add +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT GL_MODELVIEW +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#ifndef GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#ifndef GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif + +#ifndef GL_NV_blend_square +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif + +#ifndef GL_MESA_resize_buffers +#endif + +#ifndef GL_MESA_window_pos +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_CULL_VERTEX_IBM 103050 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +#endif + +#ifndef GL_SGIX_subsample +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif + +#ifndef GL_SGI_depth_pass_instrument +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif + +#ifndef GL_3DFX_tbuffer +#endif + +#ifndef GL_EXT_multisample +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif + +#ifndef GL_SGIX_resample +#define GL_PACK_RESAMPLE_SGIX 0x842C +#define GL_UNPACK_RESAMPLE_SGIX 0x842D +#define GL_RESAMPLE_REPLICATE_SGIX 0x842E +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +#endif + +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif + +#ifndef GL_NV_evaluators +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#ifndef GL_NV_texture_compression_vtc +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_TEXTURE_RECTANGLE_SIZE_NV 0x84F8 +#endif + +#ifndef GL_NV_texture_shader +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#ifndef GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif + +#ifndef GL_OML_interlace +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif + +#ifndef GL_OML_subsample +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif + +#ifndef GL_OML_resample +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_REG_6_ATI 0x8927 +#define GL_REG_7_ATI 0x8928 +#define GL_REG_8_ATI 0x8929 +#define GL_REG_9_ATI 0x892A +#define GL_REG_10_ATI 0x892B +#define GL_REG_11_ATI 0x892C +#define GL_REG_12_ATI 0x892D +#define GL_REG_13_ATI 0x892E +#define GL_REG_14_ATI 0x892F +#define GL_REG_15_ATI 0x8930 +#define GL_REG_16_ATI 0x8931 +#define GL_REG_17_ATI 0x8932 +#define GL_REG_18_ATI 0x8933 +#define GL_REG_19_ATI 0x8934 +#define GL_REG_20_ATI 0x8935 +#define GL_REG_21_ATI 0x8936 +#define GL_REG_22_ATI 0x8937 +#define GL_REG_23_ATI 0x8938 +#define GL_REG_24_ATI 0x8939 +#define GL_REG_25_ATI 0x893A +#define GL_REG_26_ATI 0x893B +#define GL_REG_27_ATI 0x893C +#define GL_REG_28_ATI 0x893D +#define GL_REG_29_ATI 0x893E +#define GL_REG_30_ATI 0x893F +#define GL_REG_31_ATI 0x8940 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_CON_8_ATI 0x8949 +#define GL_CON_9_ATI 0x894A +#define GL_CON_10_ATI 0x894B +#define GL_CON_11_ATI 0x894C +#define GL_CON_12_ATI 0x894D +#define GL_CON_13_ATI 0x894E +#define GL_CON_14_ATI 0x894F +#define GL_CON_15_ATI 0x8950 +#define GL_CON_16_ATI 0x8951 +#define GL_CON_17_ATI 0x8952 +#define GL_CON_18_ATI 0x8953 +#define GL_CON_19_ATI 0x8954 +#define GL_CON_20_ATI 0x8955 +#define GL_CON_21_ATI 0x8956 +#define GL_CON_22_ATI 0x8957 +#define GL_CON_23_ATI 0x8958 +#define GL_CON_24_ATI 0x8959 +#define GL_CON_25_ATI 0x895A +#define GL_CON_26_ATI 0x895B +#define GL_CON_27_ATI 0x895C +#define GL_CON_28_ATI 0x895D +#define GL_CON_29_ATI 0x895E +#define GL_CON_30_ATI 0x895F +#define GL_CON_31_ATI 0x8960 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B +#define GL_RED_BIT_ATI 0x00000001 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +#endif + +#ifndef GL_ATI_element_array +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +#endif + +#ifndef GL_SUN_mesh_array +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#ifndef GL_NV_occlusion_query +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +#endif + +#ifndef GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#ifndef GL_NV_vertex_program1_1 +#endif + + +/*************************************************************/ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); +GLAPI void APIENTRY glBlendEquation (GLenum); +GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogram (GLenum); +GLAPI void APIENTRY glResetMinmax (GLenum); +GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (APIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); +typedef void (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum); +GLAPI void APIENTRY glClientActiveTexture (GLenum); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, void *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); +#endif + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#endif + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); +#endif + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#endif + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, void *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#endif + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); +GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); +GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); +GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); +GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); +GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexBlendARB (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#endif + +#ifndef GL_ARB_texture_mirror_repeat +#define GL_ARB_texture_mirror_repeat 1 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#endif + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#endif + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#endif + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#endif + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#endif + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#endif + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogramEXT (GLenum); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); +#endif + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +#endif + +#ifndef GL_EXT_color_matrix +#define GL_EXT_color_matrix 1 +#endif + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#endif + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#endif + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#endif + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#endif + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint); +GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); +GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); +GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); +typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#endif + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#endif + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#endif + +#ifndef GL_SGIX_texture_select +#define GL_SGIX_texture_select 1 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#endif + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLint (APIENTRY * PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRY * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRY * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRY * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRY * PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRY * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#endif + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glDeformSGIX (GLbitfield); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRY * PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#endif + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#endif + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#endif + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); +GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); +GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#endif + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#endif + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#endif + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum); +GLAPI void APIENTRY glTextureLightEXT (GLenum); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#endif + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#endif + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); +GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); +typedef void (APIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +#endif + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#endif + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); +GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); +GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); +GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *); +GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); +GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); +GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); +GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRY * PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRY * PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRY * PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRY * PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRY * PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRY * PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRY * PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRY * PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRY * PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRY * PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRY * PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRY * PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 +#endif + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); +#endif + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#endif + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); +#endif + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLenum *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLenum, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLenum *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLenum rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLenum rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLenum *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#endif + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); +#endif + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#endif + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#endif + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#endif + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); +#endif + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (GLenum, const GLint *, const GLsizei *, GLsizei, GLint); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* *, GLsizei, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, GLint modestride); +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +#endif + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#endif + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#endif + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#endif + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); +GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFinishFenceNV (GLuint); +GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRY * PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); +GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); +typedef void (APIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); +typedef void (APIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#endif + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#endif + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); +GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); +typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); +typedef void (APIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#endif + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#endif + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#endif + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glDeleteObjectBufferATI (GLuint); +GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); +typedef GLboolean (APIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); +typedef void (APIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLDELETEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); +GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const void *); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const void *); +GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); +GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); +GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const void *); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); +typedef void (APIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); +typedef void (APIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); +GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); +GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#endif + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#endif + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif + + +#ifdef __cplusplus +} +#endif + +#endif
diff -r 5853bf44af9f -r 0c3bcea5b4d0 GL/glu.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GL/glu.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,289 @@ +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +#ifndef __glu_h__ +#define __glu_h__ +#define _GLU_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#include <stddef.h> /* for wchar_t */ +#include <GL/gl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************/ + +/* Boolean */ +#define GLU_FALSE 0 +#define GLU_TRUE 1 + +/* Version */ +#define GLU_VERSION_1_1 1 +#define GLU_VERSION_1_2 1 + +/* StringName */ +#define GLU_VERSION 100800 +#define GLU_EXTENSIONS 100801 + +/* ErrorCode */ +#define GLU_INVALID_ENUM 100900 +#define GLU_INVALID_VALUE 100901 +#define GLU_OUT_OF_MEMORY 100902 +#define GLU_INVALID_OPERATION 100904 + +/* NurbsDisplay */ +/* GLU_FILL */ +#define GLU_OUTLINE_POLYGON 100240 +#define GLU_OUTLINE_PATCH 100241 + +/* NurbsError */ +#define GLU_NURBS_ERROR1 100251 +#define GLU_NURBS_ERROR2 100252 +#define GLU_NURBS_ERROR3 100253 +#define GLU_NURBS_ERROR4 100254 +#define GLU_NURBS_ERROR5 100255 +#define GLU_NURBS_ERROR6 100256 +#define GLU_NURBS_ERROR7 100257 +#define GLU_NURBS_ERROR8 100258 +#define GLU_NURBS_ERROR9 100259 +#define GLU_NURBS_ERROR10 100260 +#define GLU_NURBS_ERROR11 100261 +#define GLU_NURBS_ERROR12 100262 +#define GLU_NURBS_ERROR13 100263 +#define GLU_NURBS_ERROR14 100264 +#define GLU_NURBS_ERROR15 100265 +#define GLU_NURBS_ERROR16 100266 +#define GLU_NURBS_ERROR17 100267 +#define GLU_NURBS_ERROR18 100268 +#define GLU_NURBS_ERROR19 100269 +#define GLU_NURBS_ERROR20 100270 +#define GLU_NURBS_ERROR21 100271 +#define GLU_NURBS_ERROR22 100272 +#define GLU_NURBS_ERROR23 100273 +#define GLU_NURBS_ERROR24 100274 +#define GLU_NURBS_ERROR25 100275 +#define GLU_NURBS_ERROR26 100276 +#define GLU_NURBS_ERROR27 100277 +#define GLU_NURBS_ERROR28 100278 +#define GLU_NURBS_ERROR29 100279 +#define GLU_NURBS_ERROR30 100280 +#define GLU_NURBS_ERROR31 100281 +#define GLU_NURBS_ERROR32 100282 +#define GLU_NURBS_ERROR33 100283 +#define GLU_NURBS_ERROR34 100284 +#define GLU_NURBS_ERROR35 100285 +#define GLU_NURBS_ERROR36 100286 +#define GLU_NURBS_ERROR37 100287 + +/* NurbsProperty */ +#define GLU_AUTO_LOAD_MATRIX 100200 +#define GLU_CULLING 100201 +#define GLU_SAMPLING_TOLERANCE 100203 +#define GLU_DISPLAY_MODE 100204 +#define GLU_PARAMETRIC_TOLERANCE 100202 +#define GLU_SAMPLING_METHOD 100205 +#define GLU_U_STEP 100206 +#define GLU_V_STEP 100207 + +/* NurbsSampling */ +#define GLU_PATH_LENGTH 100215 +#define GLU_PARAMETRIC_ERROR 100216 +#define GLU_DOMAIN_DISTANCE 100217 + +/* NurbsTrim */ +#define GLU_MAP1_TRIM_2 100210 +#define GLU_MAP1_TRIM_3 100211 + +/* QuadricDrawStyle */ +#define GLU_POINT 100010 +#define GLU_LINE 100011 +#define GLU_FILL 100012 +#define GLU_SILHOUETTE 100013 + +/* QuadricCallback */ +#define GLU_ERROR 100103 + +/* QuadricNormal */ +#define GLU_SMOOTH 100000 +#define GLU_FLAT 100001 +#define GLU_NONE 100002 + +/* QuadricOrientation */ +#define GLU_OUTSIDE 100020 +#define GLU_INSIDE 100021 + +/* TessCallback */ +#define GLU_TESS_BEGIN 100100 +#define GLU_BEGIN 100100 +#define GLU_TESS_VERTEX 100101 +#define GLU_VERTEX 100101 +#define GLU_TESS_END 100102 +#define GLU_END 100102 +#define GLU_TESS_ERROR 100103 +#define GLU_TESS_EDGE_FLAG 100104 +#define GLU_EDGE_FLAG 100104 +#define GLU_TESS_COMBINE 100105 +#define GLU_TESS_BEGIN_DATA 100106 +#define GLU_TESS_VERTEX_DATA 100107 +#define GLU_TESS_END_DATA 100108 +#define GLU_TESS_ERROR_DATA 100109 +#define GLU_TESS_EDGE_FLAG_DATA 100110 +#define GLU_TESS_COMBINE_DATA 100111 + +/* TessContour */ +#define GLU_CW 100120 +#define GLU_CCW 100121 +#define GLU_INTERIOR 100122 +#define GLU_EXTERIOR 100123 +#define GLU_UNKNOWN 100124 + +/* TessProperty */ +#define GLU_TESS_WINDING_RULE 100140 +#define GLU_TESS_BOUNDARY_ONLY 100141 +#define GLU_TESS_TOLERANCE 100142 + +/* TessError */ +#define GLU_TESS_ERROR1 100151 +#define GLU_TESS_ERROR2 100152 +#define GLU_TESS_ERROR3 100153 +#define GLU_TESS_ERROR4 100154 +#define GLU_TESS_ERROR5 100155 +#define GLU_TESS_ERROR6 100156 +#define GLU_TESS_ERROR7 100157 +#define GLU_TESS_ERROR8 100158 +#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 +#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 +#define GLU_TESS_MISSING_END_POLYGON 100153 +#define GLU_TESS_MISSING_END_CONTOUR 100154 +#define GLU_TESS_COORD_TOO_LARGE 100155 +#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 + +/* TessWinding */ +#define GLU_TESS_WINDING_ODD 100130 +#define GLU_TESS_WINDING_NONZERO 100131 +#define GLU_TESS_WINDING_POSITIVE 100132 +#define GLU_TESS_WINDING_NEGATIVE 100133 +#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 + +/* Obsolete. For compatibility with previous Sun OpenGL versions */ +#define GLU_INCOMPATIBLE_GL_VERSION 100903 + + +/*************************************************************/ + + +#ifdef __cplusplus +class GLUnurbs; +class GLUquadric; +class GLUtesselator; +#else +typedef struct GLUnurbs GLUnurbs; +typedef struct GLUquadric GLUquadric; +typedef struct GLUtesselator GLUtesselator; +#endif + +typedef GLUnurbs GLUnurbsObj; +typedef GLUquadric GLUquadricObj; +typedef GLUtesselator GLUtesselatorObj; +typedef GLUtesselator GLUtriangulatorObj; + +#define GLU_TESS_MAX_COORD 1.0e150 + +/* Internal convenience typedefs */ +typedef void (APIENTRY *_GLUfuncptr)(); + +GLAPI void APIENTRY gluBeginCurve (GLUnurbs* nurb); +GLAPI void APIENTRY gluBeginPolygon (GLUtesselator* tess); +GLAPI void APIENTRY gluBeginSurface (GLUnurbs* nurb); +GLAPI void APIENTRY gluBeginTrim (GLUnurbs* nurb); +GLAPI GLint APIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); +GLAPI GLint APIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); +GLAPI void APIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb); +GLAPI void APIENTRY gluDeleteQuadric (GLUquadric* quad); +GLAPI void APIENTRY gluDeleteTess (GLUtesselator* tess); +GLAPI void APIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); +GLAPI void APIENTRY gluEndCurve (GLUnurbs* nurb); +GLAPI void APIENTRY gluEndPolygon (GLUtesselator* tess); +GLAPI void APIENTRY gluEndSurface (GLUnurbs* nurb); +GLAPI void APIENTRY gluEndTrim (GLUnurbs* nurb); +GLAPI const GLubyte * APIENTRY gluErrorString (GLenum error); +GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error); +GLAPI void APIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data); +GLAPI const GLubyte * APIENTRY gluGetString (GLenum name); +GLAPI void APIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data); +GLAPI void APIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view); +GLAPI void APIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); +GLAPI GLUnurbs* APIENTRY gluNewNurbsRenderer (void); +GLAPI GLUquadric* APIENTRY gluNewQuadric (void); +GLAPI GLUtesselator* APIENTRY gluNewTess (void); +GLAPI void APIENTRY gluNextContour (GLUtesselator* tess, GLenum type); +GLAPI void APIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc); +GLAPI void APIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type); +GLAPI void APIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value); +GLAPI void APIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type); +GLAPI void APIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); +GLAPI void APIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); +GLAPI void APIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport); +GLAPI GLint APIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ); +GLAPI void APIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); +GLAPI void APIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc); +GLAPI void APIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw); +GLAPI void APIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal); +GLAPI void APIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation); +GLAPI void APIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture); +GLAPI GLint APIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut); +GLAPI void APIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks); +GLAPI void APIENTRY gluTessBeginContour (GLUtesselator* tess); +GLAPI void APIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); +GLAPI void APIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); +GLAPI void APIENTRY gluTessEndContour (GLUtesselator* tess); +GLAPI void APIENTRY gluTessEndPolygon (GLUtesselator* tess); +GLAPI void APIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); +GLAPI void APIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); +GLAPI void APIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); +GLAPI GLint APIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ); +GLAPI GLint APIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW); + +#ifdef UNICODE +#define gluErrorStringWIN gluErrorUnicodeStringEXT +#else +#define gluErrorStringWIN gluErrorString +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __glu_h__ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplus.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplus.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,81 @@ +/* + * gdiplus.h + * + * GDI+ main header + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_H +#define __GDIPLUS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef RC_INVOKED + +#include <stddef.h> +#include <math.h> +#include <windef.h> +#include <wingdi.h> + +#include <basetyps.h> +typedef _COM_interface IStream IStream; +typedef _COM_interface IDirectDrawSurface7 IDirectDrawSurface7; + +#ifdef __cplusplus +namespace Gdiplus { +#endif + +typedef float REAL; +typedef SHORT INT16; +typedef WORD UINT16; + +#include "gdiplusenums.h" +#include "gdiplustypes.h" +#include "gdiplusgpstubs.h" +#include "gdiplusimaging.h" +#include "gdiplusinit.h" +#include "gdiplusmem.h" +#include "gdiplusmetaheader.h" +#include "gdipluspixelformats.h" +#include "gdipluscolor.h" +#include "gdipluscolormatrix.h" +#include "gdiplusflat.h" +#include "gdipluseffects.h" +#include "gdiplusimagecodec.h" + +#ifdef __cplusplus +#include "gdiplusbase.h" +#include "gdiplusheaders.h" +#include "gdiplusimageattributes.h" +#include "gdiplusmatrix.h" +#include "gdiplusbrush.h" +#include "gdiplusmetafile.h" +#include "gdipluspen.h" +#include "gdiplusstringformat.h" +#include "gdipluspath.h" +#include "gdiplusgraphics.h" +#include "gdipluslinecaps.h" +#include "gdiplusimpl.h" + +} /* namespace Gdiplus */ +#endif /* __cplusplus */ + +#endif /* !RC_INVOKED */ + +#endif /* __GDIPLUS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusbase.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,54 @@ +/* + * gdiplusbase.h + * + * GDI+ base class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_BASE_H +#define __GDIPLUS_BASE_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusbase.h." +#endif + +class GdiplusBase +{ +public: + static void* operator new(size_t in_size) + { + return DllExports::GdipAlloc(in_size); + } + static void* operator new[](size_t in_size) + { + return DllExports::GdipAlloc(in_size); + } + static void operator delete(void *in_pVoid) + { + DllExports::GdipFree(in_pVoid); + } + static void operator delete[](void *in_pVoid) + { + DllExports::GdipFree(in_pVoid); + } +}; + +#endif /* __GDIPLUS_BASE_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusbrush.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusbrush.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,606 @@ +/* + * gdiplusbrush.h + * + * GDI+ brush classes + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_BRUSH_H +#define __GDIPLUS_BRUSH_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusbrush.h." +#endif + +class Brush: public GdiplusBase +{ + friend class HatchBrush; + friend class LinearGradientBrush; + friend class PathGradientBrush; + friend class SolidBrush; + friend class TextureBrush; + friend class Graphics; + friend class Pen; + +public: + virtual ~Brush() + { + DllExports::GdipDeleteBrush(nativeBrush); + } + virtual Brush* Clone() const // each subclass must implement this + { + lastStatus = NotImplemented; + return NULL; + } + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + BrushType GetType() const + { + BrushType result = BrushTypeSolidColor; + updateStatus(DllExports::GdipGetBrushType(nativeBrush, &result)); + return result; + } + +private: + Brush(): nativeBrush(NULL), lastStatus(Ok) {} + Brush(GpBrush *brush, Status status): + nativeBrush(brush), lastStatus(status) {} + Brush(const Brush& brush); + Brush& operator=(const Brush&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpBrush *nativeBrush; + mutable Status lastStatus; +}; + +class HatchBrush: public Brush +{ +public: + HatchBrush(HatchStyle hatchStyle, + const Color& foreColor, + const Color& backColor = Color()) + { + GpHatch *nativeHatch = NULL; + lastStatus = DllExports::GdipCreateHatchBrush(hatchStyle, + foreColor.GetValue(), backColor.GetValue(), + &nativeHatch); + nativeBrush = nativeHatch; + } + virtual HatchBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + HatchBrush *result = + new HatchBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBackgroundColor(Color *color) const + { + return updateStatus(DllExports::GdipGetHatchBackgroundColor( + (GpHatch*) nativeBrush, + color ? &color->Value : NULL)); + } + Status GetForegroundColor(Color *color) const + { + return updateStatus(DllExports::GdipGetHatchForegroundColor( + (GpHatch*) nativeBrush, + color ? &color->Value : NULL)); + } + HatchStyle GetHatchStyle() const + { + HatchStyle result; + updateStatus(DllExports::GdipGetHatchStyle( + (GpHatch*) nativeBrush, &result)); + return result; + } + +private: + HatchBrush(GpBrush *brush, Status status): Brush(brush, status) {} + HatchBrush(const HatchBrush& brush); + HatchBrush& operator=(const HatchBrush&); +}; + +class LinearGradientBrush: public Brush +{ +public: + LinearGradientBrush(const PointF& point1, const PointF& point2, + const Color& color1, const Color& color2) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrush( + &point1, &point2, + color1.GetValue(), color2.GetValue(), + WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Point& point1, const Point& point2, + const Color& color1, const Color& color2) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushI( + &point1, &point2, + color1.GetValue(), color2.GetValue(), + WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const RectF& rect, const Color& color1, + const Color& color2, LinearGradientMode mode) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRect( + &rect, color1.GetValue(), color2.GetValue(), + mode, WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Rect& rect, const Color& color1, + const Color& color2, LinearGradientMode mode) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectI( + &rect, color1.GetValue(), color2.GetValue(), + mode, WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const RectF& rect, const Color& color1, + const Color& color2, REAL angle, + BOOL isAngleScalable = FALSE) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngle( + &rect, color1.GetValue(), color2.GetValue(), + angle, isAngleScalable, WrapModeTile, + &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Rect& rect, const Color& color1, + const Color& color2, REAL angle, + BOOL isAngleScalable = FALSE) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngleI( + &rect, color1.GetValue(), color2.GetValue(), + angle, isAngleScalable, WrapModeTile, + &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + virtual LinearGradientBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + LinearGradientBrush *result = + new LinearGradientBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBlend(REAL *blendFactors, REAL *blendPositions, + INT count) const + { + return updateStatus(DllExports::GdipGetLineBlend( + (GpLineGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + INT GetBlendCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetLineBlendCount( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + BOOL GetGammaCorrection() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetLineGammaCorrection( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + INT GetInterpolationColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetLinePresetBlendCount( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + Status GetInterpolationColors(Color *presetColors, + REAL *blendPositions, INT count) const + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetLinePresetBlend( + (GpLineGradient*) nativeBrush, presetArgb, + blendPositions, count)); + for (INT i = 0; i < count; ++i) { + presetColors[i].SetValue(presetArgb[i]); + } + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status GetLinearColors(Color *colors) const + { + if (!colors) return lastStatus = InvalidParameter; + + ARGB colorsArgb[2]; + Status status = updateStatus(DllExports::GdipGetLineColors( + (GpLineGradient*) nativeBrush, colorsArgb)); + colors[0].SetValue(colorsArgb[0]); + colors[1].SetValue(colorsArgb[1]); + return status; + } + Status GetRectangle(RectF *rect) const + { + return updateStatus(DllExports::GdipGetLineRect( + (GpLineGradient*) nativeBrush, rect)); + } + Status GetRectangle(Rect *rect) const + { + return updateStatus(DllExports::GdipGetLineRectI( + (GpLineGradient*) nativeBrush, rect)); + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode wrapMode = WrapModeTile; + updateStatus(DllExports::GdipGetLineWrapMode( + (GpLineGradient*) nativeBrush, &wrapMode)); + return wrapMode; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetLineTransform( + (GpLineGradient*) nativeBrush)); + } + Status RotateTranform(REAL angle, MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateLineTransform( + (GpLineGradient*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleLineTransform( + (GpLineGradient*) nativeBrush, sx, sy, order)); + } + Status SetBlend(const REAL *blendFactors, + const REAL *blendPositions, INT count) + { + return updateStatus(DllExports::GdipSetLineBlend( + (GpLineGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetLineSigmaBlend( + (GpLineGradient*) nativeBrush, + focus, scale)); + } + Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetLineLinearBlend( + (GpLineGradient*) nativeBrush, + focus, scale)); + } + Status SetGammaCorrection(BOOL useGammaCorrection) + { + return updateStatus(DllExports::GdipSetLineGammaCorrection( + (GpLineGradient*) nativeBrush, + useGammaCorrection)); + } + Status SetInterpolationColors(const Color *presetColors, + const REAL *blendPositions, INT count) + { + if (!presetColors || count < 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < count; ++i) { + presetArgb[i] = presetColors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetLinePresetBlend( + (GpLineGradient*) nativeBrush, + presetArgb, blendPositions, count)); + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status SetLinearColors(const Color& color1, const Color& color2) + { + return updateStatus(DllExports::GdipSetLineColors( + (GpLineGradient*) nativeBrush, + color1.GetValue(), color2.GetValue())); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetLineWrapMode( + (GpLineGradient*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateLineTransform( + (GpLineGradient*) nativeBrush, dx, dy, order)); + } + +private: + LinearGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} + LinearGradientBrush(const LinearGradientBrush& brush); + LinearGradientBrush& operator=(const LinearGradientBrush&); +}; + +class SolidBrush: public Brush +{ +public: + SolidBrush(const Color& color) + { + GpSolidFill *nativeSolidFill = NULL; + lastStatus = DllExports::GdipCreateSolidFill( + color.GetValue(), &nativeSolidFill); + nativeBrush = nativeSolidFill; + } + virtual SolidBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + SolidBrush *result = + new SolidBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetColor(Color *color) const + { + return updateStatus(DllExports::GdipGetSolidFillColor( + (GpSolidFill*) nativeBrush, + color ? &color->Value : NULL)); + } + Status SetColor(const Color& color) + { + return updateStatus(DllExports::GdipSetSolidFillColor( + (GpSolidFill*) nativeBrush, color.GetValue())); + } + +private: + SolidBrush(GpBrush *brush, Status status): Brush(brush, status) {} + SolidBrush(const SolidBrush&); + SolidBrush& operator=(const SolidBrush&); +}; + +class TextureBrush: public Brush +{ +public: + TextureBrush(Image *image, WrapMode wrapMode = WrapModeTile) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture( + image ? image->nativeImage : NULL, + wrapMode, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, + REAL dstX, REAL dstY, REAL dstWidth, REAL dstHeight) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2( + image ? image->nativeImage : NULL, + wrapMode, dstX, dstY, dstWidth, dstHeight, + &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, + INT dstX, INT dstY, INT dstWidth, INT dstHeight) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2I( + image ? image->nativeImage : NULL, + wrapMode, dstX, dstY, dstWidth, dstHeight, + &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, const RectF& dstRect) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2( + image ? image->nativeImage : NULL, wrapMode, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, const Rect& dstRect) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2I( + image ? image->nativeImage : NULL, wrapMode, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, const RectF& dstRect, + ImageAttributes *imageAttributes = NULL) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTextureIA( + image ? image->nativeImage : NULL, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, const Rect& dstRect, + ImageAttributes *imageAttributes = NULL) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTextureIAI( + image ? image->nativeImage : NULL, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + virtual TextureBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + TextureBrush *result = + new TextureBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + //TODO: implement TextureBrush::GetImage() + //Image *GetImage() const + //{ + // // where is the Image allocated (static,member,new,other)? + // // GdipGetTextureImage just returns a GpImage* + // updateStatus(NotImplemented); + // return NULL; + //} + Status GetTransfrom(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode result = WrapModeTile; + updateStatus(DllExports::GdipGetTextureWrapMode( + (GpTexture*) nativeBrush, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetTextureTransform( + (GpTexture*) nativeBrush)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateTextureTransform( + (GpTexture*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleTextureTransform( + (GpTexture*) nativeBrush, sx, sy, order)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetTextureWrapMode( + (GpTexture*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateTextureTransform( + (GpTexture*) nativeBrush, dx, dy, order)); + } + +private: + TextureBrush(GpBrush *brush, Status status): Brush(brush, status) {} + TextureBrush(const TextureBrush&); + TextureBrush& operator=(const TextureBrush&); +}; + +#endif /* __GDIPLUS_BRUSH_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluscolor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluscolor.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,262 @@ +/* + * gdipluscolor.h + * + * GDI+ color + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_COLOR_H +#define __GDIPLUS_COLOR_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ColorChannelFlags { + ColorChannelFlagsC = 0, + ColorChannelFlagsM = 1, + ColorChannelFlagsY = 2, + ColorChannelFlagsK = 3, + ColorChannelFlagsLast = 4 +} ColorChannelFlags; + +typedef struct Color +{ + #ifdef __cplusplus + private: + #endif + ARGB Value; + + #ifdef __cplusplus + public: + friend class Bitmap; + friend class Graphics; + friend class HatchBrush; + friend class PathGradientBrush; + friend class Pen; + friend class SolidBrush; + + static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b) + { + return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16) + | (((DWORD) g) << 8) | ((DWORD) b)); + } + + static const ARGB AlphaMask = 0xFF000000UL; + + static const ARGB AliceBlue = 0xFFF0F8FFUL; + static const ARGB AntiqueWhite = 0xFFFAEBD7UL; + static const ARGB Aqua = 0xFF00FFFFUL; + static const ARGB Aquamarine = 0xFF7FFFD4UL; + static const ARGB Azure = 0xFFF0FFFFUL; + static const ARGB Beige = 0xFFF5F5DCUL; + static const ARGB Bisque = 0xFFFFE4C4UL; + static const ARGB Black = 0xFF000000UL; + static const ARGB BlanchedAlmond = 0xFFFFEBCDUL; + static const ARGB Blue = 0xFF0000FFUL; + static const ARGB BlueViolet = 0xFF8A2BE2UL; + static const ARGB Brown = 0xFFA52A2AUL; + static const ARGB BurlyWood = 0xFFDEB887UL; + static const ARGB CadetBlue = 0xFF5F9EA0UL; + static const ARGB Chartreuse = 0xFF7FFF00UL; + static const ARGB Chocolate = 0xFFD2691EUL; + static const ARGB Coral = 0xFFFF7F50UL; + static const ARGB CornflowerBlue = 0xFF6495EDUL; + static const ARGB Cornsilk = 0xFFFFF8DCUL; + static const ARGB Crimson = 0xFFDC143CUL; + static const ARGB Cyan = 0xFF00FFFFUL; + static const ARGB DarkBlue = 0xFF00008BUL; + static const ARGB DarkCyan = 0xFF008B8BUL; + static const ARGB DarkGoldenrod = 0xFFB8860BUL; + static const ARGB DarkGray = 0xFFA9A9A9UL; + static const ARGB DarkGreen = 0xFF006400UL; + static const ARGB DarkKhaki = 0xFFBDB76BUL; + static const ARGB DarkMagenta = 0xFF8B008BUL; + static const ARGB DarkOliveGreen = 0xFF556B2FUL; + static const ARGB DarkOrange = 0xFFFF8C00UL; + static const ARGB DarkOrchid = 0xFF9932CCUL; + static const ARGB DarkRed = 0xFF8B0000UL; + static const ARGB DarkSalmon = 0xFFE9967AUL; + static const ARGB DarkSeaGreen = 0xFF8FBC8FUL; + static const ARGB DarkSlateBlue = 0xFF483D8BUL; + static const ARGB DarkSlateGray = 0xFF2F4F4FUL; + static const ARGB DarkTurquoise = 0xFF00CED1UL; + static const ARGB DarkViolet = 0xFF9400D3UL; + static const ARGB DeepPink = 0xFFFF1493UL; + static const ARGB DeepSkyBlue = 0xFF00BFFFUL; + static const ARGB DimGray = 0xFF696969UL; + static const ARGB DodgerBlue = 0xFF1E90FFUL; + static const ARGB Firebrick = 0xFFB22222UL; + static const ARGB FloralWhite = 0xFFFFFAF0UL; + static const ARGB ForestGreen = 0xFF228B22UL; + static const ARGB Fuchsia = 0xFFFF00FFUL; + static const ARGB Gainsboro = 0xFFDCDCDCUL; + static const ARGB GhostWhite = 0xFFF8F8FFUL; + static const ARGB Gold = 0xFFFFD700UL; + static const ARGB Goldenrod = 0xFFDAA520UL; + static const ARGB Gray = 0xFF808080UL; + static const ARGB Green = 0xFF008000UL; + static const ARGB GreenYellow = 0xFFADFF2FUL; + static const ARGB Honeydew = 0xFFF0FFF0UL; + static const ARGB HotPink = 0xFFFF69B4UL; + static const ARGB IndianRed = 0xFFCD5C5CUL; + static const ARGB Indigo = 0xFF4B0082UL; + static const ARGB Ivory = 0xFFFFFFF0UL; + static const ARGB Khaki = 0xFFF0E68CUL; + static const ARGB Lavender = 0xFFE6E6FAUL; + static const ARGB LavenderBlush = 0xFFFFF0F5UL; + static const ARGB LawnGreen = 0xFF7CFC00UL; + static const ARGB LemonChiffon = 0xFFFFFACDUL; + static const ARGB LightBlue = 0xFFADD8E6UL; + static const ARGB LightCoral = 0xFFF08080UL; + static const ARGB LightCyan = 0xFFE0FFFFUL; + static const ARGB LightGoldenrodYellow = 0xFFFAFAD2UL; + static const ARGB LightGray = 0xFFD3D3D3UL; + static const ARGB LightGreen = 0xFF90EE90UL; + static const ARGB LightPink = 0xFFFFB6C1UL; + static const ARGB LightSalmon = 0xFFFFA07AUL; + static const ARGB LightSeaGreen = 0xFF20B2AAUL; + static const ARGB LightSkyBlue = 0xFF87CEFAUL; + static const ARGB LightSlateGray = 0xFF778899UL; + static const ARGB LightSteelBlue = 0xFFB0C4DEUL; + static const ARGB LightYellow = 0xFFFFFFE0UL; + static const ARGB Lime = 0xFF00FF00UL; + static const ARGB LimeGreen = 0xFF32CD32UL; + static const ARGB Linen = 0xFFFAF0E6UL; + static const ARGB Magenta = 0xFFFF00FFUL; + static const ARGB Maroon = 0xFF800000UL; + static const ARGB MediumAquamarine = 0xFF66CDAAUL; + static const ARGB MediumBlue = 0xFF0000CDUL; + static const ARGB MediumOrchid = 0xFFBA55D3UL; + static const ARGB MediumPurple = 0xFF9370DBUL; + static const ARGB MediumSeaGreen = 0xFF3CB371UL; + static const ARGB MediumSlateBlue = 0xFF7B68EEUL; + static const ARGB MediumSpringGreen = 0xFF00FA9AUL; + static const ARGB MediumTurquoise = 0xFF48D1CCUL; + static const ARGB MediumVioletRed = 0xFFC71585UL; + static const ARGB MidnightBlue = 0xFF191970UL; + static const ARGB MintCream = 0xFFF5FFFAUL; + static const ARGB MistyRose = 0xFFFFE4E1UL; + static const ARGB Moccasin = 0xFFFFE4B5UL; + static const ARGB NavajoWhite = 0xFFFFDEADUL; + static const ARGB Navy = 0xFF000080UL; + static const ARGB OldLace = 0xFFFDF5E6UL; + static const ARGB Olive = 0xFF808000UL; + static const ARGB OliveDrab = 0xFF6B8E23UL; + static const ARGB Orange = 0xFFFFA500UL; + static const ARGB OrangeRed = 0xFFFF4500UL; + static const ARGB Orchid = 0xFFDA70D6UL; + static const ARGB PaleGoldenrod = 0xFFEEE8AAUL; + static const ARGB PaleGreen = 0xFF98FB98UL; + static const ARGB PaleTurquoise = 0xFFAFEEEEUL; + static const ARGB PaleVioletRed = 0xFFDB7093UL; + static const ARGB PapayaWhip = 0xFFFFEFD5UL; + static const ARGB PeachPuff = 0xFFFFDAB9UL; + static const ARGB Peru = 0xFFCD853FUL; + static const ARGB Pink = 0xFFFFC0CBUL; + static const ARGB Plum = 0xFFDDA0DDUL; + static const ARGB PowderBlue = 0xFFB0E0E6UL; + static const ARGB Purple = 0xFF800080UL; + static const ARGB Red = 0xFFFF0000UL; + static const ARGB RosyBrown = 0xFFBC8F8FUL; + static const ARGB RoyalBlue = 0xFF4169E1UL; + static const ARGB SaddleBrown = 0xFF8B4513UL; + static const ARGB Salmon = 0xFFFA8072UL; + static const ARGB SandyBrown = 0xFFF4A460UL; + static const ARGB SeaGreen = 0xFF2E8B57UL; + static const ARGB SeaShell = 0xFFFFF5EEUL; + static const ARGB Sienna = 0xFFA0522DUL; + static const ARGB Silver = 0xFFC0C0C0UL; + static const ARGB SkyBlue = 0xFF87CEEBUL; + static const ARGB SlateBlue = 0xFF6A5ACDUL; + static const ARGB SlateGray = 0xFF708090UL; + static const ARGB Snow = 0xFFFFFAFAUL; + static const ARGB SpringGreen = 0xFF00FF7FUL; + static const ARGB SteelBlue = 0xFF4682B4UL; + static const ARGB Tan = 0xFFD2B48CUL; + static const ARGB Teal = 0xFF008080UL; + static const ARGB Thistle = 0xFFD8BFD8UL; + static const ARGB Tomato = 0xFFFF6347UL; + static const ARGB Transparent = 0x00FFFFFFUL; + static const ARGB Turquoise = 0xFF40E0D0UL; + static const ARGB Violet = 0xFFEE82EEUL; + static const ARGB Wheat = 0xFFF5DEB3UL; + static const ARGB White = 0xFFFFFFFFUL; + static const ARGB WhiteSmoke = 0xFFF5F5F5UL; + static const ARGB Yellow = 0xFFFFFF00UL; + static const ARGB YellowGreen = 0xFF9ACD32UL; + + Color(): Value(0xFF000000) {} + Color(ARGB argb): Value(argb) {} + Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {} + Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {} + + BYTE GetA() const + { + return (BYTE) (Value >> 24); + } + BYTE GetAlpha() const + { + return (BYTE) (Value >> 24); + } + BYTE GetB() const + { + return (BYTE) Value; + } + BYTE GetBlue() const + { + return (BYTE) Value; + } + BYTE GetG() const + { + return (BYTE) (Value >> 8); + } + BYTE GetGreen() const + { + return (BYTE) (Value >> 8); + } + BYTE GetR() const + { + return (BYTE) (Value >> 16); + } + BYTE GetRed() const + { + return (BYTE) (Value >> 16); + } + ARGB GetValue() const + { + return Value; + } + VOID SetFromCOLORREF(COLORREF rgb) + { + BYTE r = (BYTE) rgb; + BYTE g = (BYTE) (rgb >> 8); + BYTE b = (BYTE) (rgb >> 16); + Value = MakeARGB(0xFF, r, g, b); + } + VOID SetValue(ARGB argb) + { + Value = argb; + } + COLORREF ToCOLORREF() const + { + return RGB(GetRed(), GetGreen(), GetBlue()); + } + #endif /* __cplusplus */ +} Color; + +#endif /* __GDIPLUS_COLOR_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluscolormatrix.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluscolormatrix.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,67 @@ +/* + * gdipluscolormatrix.h + * + * GDI+ color mappings + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_COLORMATRIX_H +#define __GDIPLUS_COLORMATRIX_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ColorAdjustType { + ColorAdjustTypeDefault = 0, + ColorAdjustTypeBitmap = 1, + ColorAdjustTypeBrush = 2, + ColorAdjustTypePen = 3, + ColorAdjustTypeText = 4, + ColorAdjustTypeCount = 5, + ColorAdjustTypeAny = 6 +} ColorAdjustType; + +typedef enum ColorMatrixFlags { + ColorMatrixFlagsDefault = 0, + ColorMatrixFlagsSkipGrays = 1, + ColorMatrixFlagsAltGray = 2 +} ColorMatrixFlags; + +typedef enum HistogramFormat { + HistogramFormatARGB = 0, + HistogramFormatPARGB = 1, + HistogramFormatRGB = 2, + HistogramFormatGray = 3, + HistogramFormatB = 4, + HistogramFormatG = 5, + HistogramFormatR = 6, + HistogramFormatA = 7 +} HistogramFormat; + +typedef struct ColorMap { + Color oldColor; + Color newColor; +} ColorMap; + +typedef struct ColorMatrix { + REAL m[5][5]; +} ColorMatrix; + +typedef BYTE ColorChannelLUT[256]; + +#endif /* __GDIPLUS_COLORMATRIX_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluseffects.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluseffects.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,116 @@ +/* + * gdipluseffects.h + * + * GDI+ filters and effects + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_EFFECTS_H +#define __GDIPLUS_EFFECTS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum CurveAdjustments { + AdjustExposure = 0, + AdjustDensity = 1, + AdjustContrast = 2, + AdjustHighlight = 3, + AdjustShadow = 4, + AdjustMidtone = 5, + AdjustWhiteSaturation = 6, + AdjustBlackSaturation = 7 +} CurveAdjustments; + +typedef enum CurveChannel { + CurveChannelAll = 0, + CurveChannelRed = 1, + CurveChannelGreen = 2, + CurveChannelBlue = 3 +} CurveChannel; + +typedef struct BlurParams { + REAL radius; + BOOL expandEdge; +} BlurParams; + +typedef struct BrightnessContrastParams { + INT brightnessLevel; + INT contrastLevel; +} BrightnessContrastParams; + +typedef struct ColorBalanceParams { + INT cyanRed; + INT magentaGreen; + INT yellowBlue; +} ColorBalanceParams; + +typedef struct ColorCurveParams { + CurveAdjustments adjustment; + CurveChannel channel; + INT adjustValue; +} ColorCurveParams; + +typedef struct ColorLUTParams { + ColorChannelLUT lutB; + ColorChannelLUT lutG; + ColorChannelLUT lutR; + ColorChannelLUT lutA; +} ColorLUTParams; + +typedef struct HueSaturationLightnessParams { + INT hueLevel; + INT saturationLevel; + INT lightnessLevel; +} HueSaturationLightnessParams; + +typedef struct LevelsParams { + INT highlight; + INT midtone; + INT shadow; +} LevelsParams; + +typedef struct RedEyeCorrectionParams { + UINT numberOfAreas; + RECT *areas; +} RedEyeCorrectionParams; + +typedef struct SharpenParams { + REAL radius; + REAL amount; +} SharpenParams; + +typedef struct TintParams { + INT hue; + INT amount; +} TintParams; + +extern const GUID BlurEffectGuid; /* ? */ +extern const GUID BrightnessContrastEffectGuid; /* ? */ +extern const GUID ColorBalanceEffectGuid; /* ? */ +extern const GUID ColorCurveEffectGuid; /* ? */ +extern const GUID ColorLUTEffectGuid; /* ? */ +extern const GUID ColorMatrixEffectGuid; /* ? */ +extern const GUID HueSaturationLightnessEffectGuid; /* ? */ +extern const GUID LevelsEffectGuid; /* ? */ +extern const GUID RedEyeCorrectionEffectGuid; /* ? */ +extern const GUID SharpenEffectGuid; /* ? */ +extern const GUID TintEffectGuid; /* ? */ + + +#endif /* __GDIPLUS_EFFECTS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusenums.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusenums.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,755 @@ +/* + * gdiplusenums.h + * + * GDI+ enumerations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_ENUMS_H +#define __GDIPLUS_ENUMS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum BrushType { + BrushTypeSolidColor = 0, + BrushTypeHatchFill = 1, + BrushTypeTextureFill = 2, + BrushTypePathGradient = 3, + BrushTypeLinearGradient = 4 +} BrushType; + +typedef enum CombineMode { + CombineModeReplace = 0, + CombineModeIntersect = 1, + CombineModeUnion = 2, + CombineModeXor = 3, + CombineModeExclude = 4, + CombineModeComplement = 5 +} CombineMode; + +typedef enum CompositingMode { + CompositingModeSourceOver = 0, + CompositingModeSourceCopy = 1 +} CompositingMode; + +typedef enum CompositingQuality { + CompositingQualityDefault = 0, + CompositingQualityHighSpeed = 1, + CompositingQualityHighQuality = 2, + CompositingQualityGammaCorrected = 3, + CompositingQualityAssumeLinear = 4 +} CompositingQuality; + +typedef enum CoordinateSpace { + CoordinateSpaceWorld = 0, + CoordinateSpacePage = 1, + CoordinateSpaceDevice = 2 +} CoordinateSpace; + +typedef enum CustomLineCapType { + CustomLineCapTypeDefault = 0, + CustomLineCapTypeAdjustableArrow = 1 +} CustomLineCapType; + +typedef enum DashCap { + DashCapFlat = 0, + DashCapRound = 2, + DashCapTriangle = 3 +} DashCap; + +typedef enum DashStyle { + DashStyleSolid = 0, + DashStyleDash = 1, + DashStyleDot = 2, + DashStyleDashDot = 3, + DashStyleDashDotDot = 4, + DashStyleCustom = 5 +} DashStyle; + +typedef enum DitherType { + DitherTypeNone = 0, + DitherTypeSolid = 1, + DitherTypeOrdered4x4 = 2, + DitherTypeOrdered8x8 = 3, + DitherTypeOrdered16x16 = 4, + DitherTypeOrdered91x91 = 5, + DitherTypeSpiral4x4 = 6, + DitherTypeSpiral8x8 = 7, + DitherTypeDualSpiral4x4 = 8, + DitherTypeDualSpiral8x8 = 9, + DitherTypeErrorDiffusion = 10 +} DitherType; + +typedef enum DriverStringOptions { + DriverStringOptionsCmapLookup = 1, + DriverStringOptionsVertical = 2, + DriverStringOptionsRealizedAdvance = 4, + DriverStringOptionsLimitSubpixel = 8 +} DriverStringOptions; + +#define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000) +#define GDIP_EMFPLUS_RECORD_BASE (0x4000) +typedef enum EmfPlusRecordType { + WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR), + WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE), + WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE), + WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2), + WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS), + WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE), + WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE), + WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA), + WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR), + WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION), + WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG), + WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT), + WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG), + WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT), + WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG), + WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT), + WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG), + WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT), + WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO), + WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO), + WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT), + WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT), + WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC), + WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE), + WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL), + WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE), + WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE), + WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT), + WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT), + WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC), + WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL), + WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN), + WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT), + WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT), + WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT), + WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON), + WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE), + WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE), + WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC), + WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION), + WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION), + WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION), + WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION), + WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION), + WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT), + WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN), + WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F), + WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD), + WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS), + WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT), + WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV), + WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE), + WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE), + WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE), + WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES), + WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON), + WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE), + WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT), + WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT), + WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH), + WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB), + WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL), + WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149), + WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), + WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), + WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), + WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), + WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), + WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), + WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT), + WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE), + WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), + WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH), + WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT), + WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT), + WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT), + WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD), + WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), + WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION), + EmfRecordTypeHeader = EMR_HEADER, + EmfRecordTypePolyBezier = EMR_POLYBEZIER, + EmfRecordTypePolygon = EMR_POLYGON, + EmfRecordTypePolyline = EMR_POLYLINE, + EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO, + EmfRecordTypePolyLineTo = EMR_POLYLINETO, + EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE, + EmfRecordTypePolyPolygon = EMR_POLYPOLYGON, + EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX, + EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX, + EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX, + EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX, + EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX, + EmfRecordTypeEOF = EMR_EOF, + EmfRecordTypeSetPixelV = EMR_SETPIXELV, + EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS, + EmfRecordTypeSetMapMode = EMR_SETMAPMODE, + EmfRecordTypeSetBkMode = EMR_SETBKMODE, + EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE, + EmfRecordTypeSetROP2 = EMR_SETROP2, + EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE, + EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN, + EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT, + EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR, + EmfRecordTypeSetBkColor = EMR_SETBKCOLOR, + EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN, + EmfRecordTypeMoveToEx = EMR_MOVETOEX, + EmfRecordTypeSetMetaRgn = EMR_SETMETARGN, + EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT, + EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT, + EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX, + EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX, + EmfRecordTypeSaveDC = EMR_SAVEDC, + EmfRecordTypeRestoreDC = EMR_RESTOREDC, + EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM, + EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM, + EmfRecordTypeSelectObject = EMR_SELECTOBJECT, + EmfRecordTypeCreatePen = EMR_CREATEPEN, + EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT, + EmfRecordTypeDeleteObject = EMR_DELETEOBJECT, + EmfRecordTypeAngleArc = EMR_ANGLEARC, + EmfRecordTypeEllipse = EMR_ELLIPSE, + EmfRecordTypeRectangle = EMR_RECTANGLE, + EmfRecordTypeRoundRect = EMR_ROUNDRECT, + EmfRecordTypeArc = EMR_ARC, + EmfRecordTypeChord = EMR_CHORD, + EmfRecordTypePie = EMR_PIE, + EmfRecordTypeSelectPalette = EMR_SELECTPALETTE, + EmfRecordTypeCreatePalette = EMR_CREATEPALETTE, + EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES, + EmfRecordTypeResizePalette = EMR_RESIZEPALETTE, + EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE, + EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL, + EmfRecordTypeLineTo = EMR_LINETO, + EmfRecordTypeArcTo = EMR_ARCTO, + EmfRecordTypePolyDraw = EMR_POLYDRAW, + EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION, + EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT, + EmfRecordTypeBeginPath = EMR_BEGINPATH, + EmfRecordTypeEndPath = EMR_ENDPATH, + EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE, + EmfRecordTypeFillPath = EMR_FILLPATH, + EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH, + EmfRecordTypeStrokePath = EMR_STROKEPATH, + EmfRecordTypeFlattenPath = EMR_FLATTENPATH, + EmfRecordTypeWidenPath = EMR_WIDENPATH, + EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH, + EmfRecordTypeAbortPath = EMR_ABORTPATH, + EmfRecordTypeReserved_069 = 69, + EmfRecordTypeGdiComment = EMR_GDICOMMENT, + EmfRecordTypeFillRgn = EMR_FILLRGN, + EmfRecordTypeFrameRgn = EMR_FRAMERGN, + EmfRecordTypeInvertRgn = EMR_INVERTRGN, + EmfRecordTypePaintRgn = EMR_PAINTRGN, + EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN, + EmfRecordTypeBitBlt = EMR_BITBLT, + EmfRecordTypeStretchBlt = EMR_STRETCHBLT, + EmfRecordTypeMaskBlt = EMR_MASKBLT, + EmfRecordTypePlgBlt = EMR_PLGBLT, + EmfRecordTypeSetDIBitsToDevice = EMR_SETDIBITSTODEVICE, + EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS, + EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW, + EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA, + EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW, + EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16, + EmfRecordTypePolygon16 = EMR_POLYGON16, + EmfRecordTypePolyline16 = EMR_POLYLINE16, + EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16, + EmfRecordTypePolylineTo16 = EMR_POLYLINETO16, + EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16, + EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16, + EmfRecordTypePolyDraw16 = EMR_POLYDRAW16, + EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH, + EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT, + EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN, + EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA, + EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW, + EmfRecordTypeSetICMMode = 98, + EmfRecordTypeCreateColorSpace = 99, + EmfRecordTypeSetColorSpace = 100, + EmfRecordTypeDeleteColorSpace = 101, + EmfRecordTypeGLSRecord = 102, + EmfRecordTypeGLSBoundedRecord = 103, + EmfRecordTypePixelFormat = 104, + EmfRecordTypeDrawEscape = 105, + EmfRecordTypeExtEscape = 106, + EmfRecordTypeStartDoc = 107, + EmfRecordTypeSmallTextOut = 108, + EmfRecordTypeForceUFIMapping = 109, + EmfRecordTypeNamedEscape = 110, + EmfRecordTypeColorCorrectPalette = 111, + EmfRecordTypeSetICMProfileA = 112, + EmfRecordTypeSetICMProfileW = 113, + EmfRecordTypeAlphaBlend = 114, + EmfRecordTypeSetLayout = 115, + EmfRecordTypeTransparentBlt = 116, + EmfRecordTypeReserved_117 = 117, + EmfRecordTypeGradientFill = 118, + EmfRecordTypeSetLinkedUFIs = 119, + EmfRecordTypeSetTextJustification = 120, + EmfRecordTypeColorMatchToTargetW = 121, + EmfRecordTypeCreateColorSpaceW = 122, + EmfRecordTypeMax = 122, + EmfRecordTypeMin = 1, + EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE, + EmfPlusRecordTypeHeader, + EmfPlusRecordTypeEndOfFile, + EmfPlusRecordTypeComment, + EmfPlusRecordTypeGetDC, + EmfPlusRecordTypeMultiFormatStart, + EmfPlusRecordTypeMultiFormatSection, + EmfPlusRecordTypeMultiFormatEnd, + EmfPlusRecordTypeObject, + EmfPlusRecordTypeClear, + EmfPlusRecordTypeFillRects, + EmfPlusRecordTypeDrawRects, + EmfPlusRecordTypeFillPolygon, + EmfPlusRecordTypeDrawLines, + EmfPlusRecordTypeFillEllipse, + EmfPlusRecordTypeDrawEllipse, + EmfPlusRecordTypeFillPie, + EmfPlusRecordTypeDrawPie, + EmfPlusRecordTypeDrawArc, + EmfPlusRecordTypeFillRegion, + EmfPlusRecordTypeFillPath, + EmfPlusRecordTypeDrawPath, + EmfPlusRecordTypeFillClosedCurve, + EmfPlusRecordTypeDrawClosedCurve, + EmfPlusRecordTypeDrawCurve, + EmfPlusRecordTypeDrawBeziers, + EmfPlusRecordTypeDrawImage, + EmfPlusRecordTypeDrawImagePoints, + EmfPlusRecordTypeDrawString, + EmfPlusRecordTypeSetRenderingOrigin, + EmfPlusRecordTypeSetAntiAliasMode, + EmfPlusRecordTypeSetTextRenderingHint, + EmfPlusRecordTypeSetTextContrast, + EmfPlusRecordTypeSetGammaValue, + EmfPlusRecordTypeSetInterpolationMode, + EmfPlusRecordTypeSetPixelOffsetMode, + EmfPlusRecordTypeSetCompositingMode, + EmfPlusRecordTypeSetCompositingQuality, + EmfPlusRecordTypeSave, + EmfPlusRecordTypeRestore, + EmfPlusRecordTypeBeginContainer, + EmfPlusRecordTypeBeginContainerNoParams, + EmfPlusRecordTypeEndContainer, + EmfPlusRecordTypeSetWorldTransform, + EmfPlusRecordTypeResetWorldTransform, + EmfPlusRecordTypeMultiplyWorldTransform, + EmfPlusRecordTypeTranslateWorldTransform, + EmfPlusRecordTypeScaleWorldTransform, + EmfPlusRecordTypeRotateWorldTransform, + EmfPlusRecordTypeSetPageTransform, + EmfPlusRecordTypeResetClip, + EmfPlusRecordTypeSetClipRect, + EmfPlusRecordTypeSetClipPath, + EmfPlusRecordTypeSetClipRegion, + EmfPlusRecordTypeOffsetClip, + EmfPlusRecordTypeDrawDriverString, + EmfPlusRecordTypeStrokeFillPath, + EmfPlusRecordTypeSerializableObject, + EmfPlusRecordTypeSetTSGraphics, + EmfPlusRecordTypeSetTSClip, + EmfPlusRecordTotal, + EmfPlusRecordTypeMax = EmfPlusRecordTotal-1, + EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader +} EmfPlusRecordType; + +typedef enum EmfToWmfBitsFlags { + EmfToWmfBitsFlagsDefault = 0, + EmfToWmfBitsFlagsEmbedEmf = 1, + EmfToWmfBitsFlagsIncludePlaceable = 2, + EmfToWmfBitsFlagsNoXORClip = 4 +} EmfToWmfBitsFlags; + +typedef enum EmfType { + EmfTypeEmfOnly = 3, + EmfTypeEmfPlusOnly = 4, + EmfTypeEmfPlusDual = 5 +} EmfType; + +typedef enum EncoderParameterValueType { + EncoderParameterValueTypeByte = 1, + EncoderParameterValueTypeASCII = 2, + EncoderParameterValueTypeShort = 3, + EncoderParameterValueTypeLong = 4, + EncoderParameterValueTypeRational = 5, + EncoderParameterValueTypeLongRange = 6, + EncoderParameterValueTypeUndefined = 7, + EncoderParameterValueTypeRationalRange = 8, + EncoderParameterValueTypePointer = 9 +} EncoderParameterValueType; + +typedef enum EncoderValue { + EncoderValueColorTypeCMYK = 0, + EncoderValueColorTypeYCCK = 1, + EncoderValueCompressionLZW = 2, + EncoderValueCompressionCCITT3 = 3, + EncoderValueCompressionCCITT4 = 4, + EncoderValueCompressionRle = 5, + EncoderValueCompressionNone = 6, + EncoderValueScanMethodInterlaced = 7, + EncoderValueScanMethodNonInterlaced = 8, + EncoderValueVersionGif87 = 9, + EncoderValueVersionGif89 = 10, + EncoderValueRenderProgressive = 11, + EncoderValueRenderNonProgressive = 12, + EncoderValueTransformRotate90 = 13, + EncoderValueTransformRotate180 = 14, + EncoderValueTransformRotate270 = 15, + EncoderValueTransformFlipHorizontal = 16, + EncoderValueTransformFlipVertical = 17, + EncoderValueMultiFrame = 18, + EncoderValueLastFrame = 19, + EncoderValueFlush = 20, + EncoderValueFrameDimensionTime = 21, + EncoderValueFrameDimensionResolution = 22, + EncoderValueFrameDimensionPage = 23 +} EncoderValue; + +typedef enum FillMode { + FillModeAlternate = 0, + FillModeWinding = 1 +} FillMode; + +typedef enum FlushIntention { + FlushIntentionFlush = 0, + FlushIntentionSync = 1 +} FlushIntention; + +typedef enum FontStyle { + FontStyleRegular = 0, + FontStyleBold = 1, + FontStyleItalic = 2, + FontStyleBoldItalic = 3, + FontStyleUnderline = 4, + FontStyleStrikeout = 8 +} FontStyle; + +typedef enum HatchStyle { + HatchStyleHorizontal = 0, + HatchStyleVertical = 1, + HatchStyleForwardDiagonal = 2, + HatchStyleBackwardDiagonal = 3, + HatchStyleCross = 4, + HatchStyleLargeGrid = 4, + HatchStyleDiagonalCross = 5, + HatchStyle05Percent = 6, + HatchStyle10Percent = 7, + HatchStyle20Percent = 8, + HatchStyle25Percent = 9, + HatchStyle30Percent = 10, + HatchStyle40Percent = 11, + HatchStyle50Percent = 12, + HatchStyle60Percent = 13, + HatchStyle70Percent = 14, + HatchStyle75Percent = 15, + HatchStyle80Percent = 16, + HatchStyle90Percent = 17, + HatchStyleLightDownwardDiagonal = 18, + HatchStyleLightUpwardDiagonal = 19, + HatchStyleDarkDownwardDiagonal = 20, + HatchStyleDarkUpwardDiagonal = 21, + HatchStyleWideDownwardDiagonal = 22, + HatchStyleWideUpwardDiagonal = 23, + HatchStyleLightVertical = 24, + HatchStyleLightHorizontal = 25, + HatchStyleNarrowVertical = 26, + HatchStyleNarrowHorizontal = 27, + HatchStyleDarkVertical = 28, + HatchStyleDarkHorizontal = 29, + HatchStyleDashedDownwardDiagonal = 30, + HatchStyleDashedUpwardDiagonal = 31, + HatchStyleDashedHorizontal = 32, + HatchStyleDashedVertical = 33, + HatchStyleSmallConfetti = 34, + HatchStyleLargeConfetti = 35, + HatchStyleZigZag = 36, + HatchStyleWave = 37, + HatchStyleDiagonalBrick = 38, + HatchStyleHorizontalBrick = 39, + HatchStyleWeave = 40, + HatchStylePlaid = 41, + HatchStyleDivot = 42, + HatchStyleDottedGrid = 43, + HatchStyleDottedDiamond = 44, + HatchStyleShingle = 45, + HatchStyleTrellis = 46, + HatchStyleSphere = 47, + HatchStyleSmallGrid = 48, + HatchStyleSmallCheckerBoard = 49, + HatchStyleLargeCheckerBoard = 50, + HatchStyleOutlinedDiamond = 51, + HatchStyleSolidDiamond = 52, + HatchStyleTotal = 53, + HatchStyleMin = HatchStyleHorizontal, + HatchStyleMax = HatchStyleTotal - 1 +} HatchStyle; + +typedef enum HotkeyPrefix { + HotkeyPrefixNone = 0, + HotkeyPrefixShow = 1, + HotkeyPrefixHide = 2 +} HotkeyPrefix; + +typedef enum ImageType { + ImageTypeUnknown = 0, + ImageTypeBitmap = 1, + ImageTypeMetafile = 2 +} ImageType; + +/* TODO: InterpolationMode */ +typedef enum InterpolationMode { + /*InterpolationModeInvalid = QualityModeInvalid,*/ + InterpolationModeDefault = 0, + InterpolationModeLowQuality = 1, + InterpolationModeHighQuality = 2, + InterpolationModeBilinear = 3, + InterpolationModeBicubic = 4, + InterpolationModeNearestNeighbor = 5, + InterpolationModeHighQualityBilinear = 6, + InterpolationModeHighQualityBicubic = 7 +} InterpolationMode; + +typedef enum LinearGradientMode { + LinearGradientModeHorizontal = 0, + LinearGradientModeVertical = 1, + LinearGradientModeForwardDiagonal = 2, + LinearGradientModeBackwardDiagonal = 3 +} LinearGradientMode; + +typedef enum LineCap { + LineCapFlat = 0, + LineCapSquare = 1, + LineCapRound = 2, + LineCapTriangle = 3, + LineCapNoAnchor = 16, + LineCapSquareAnchor = 17, + LineCapRoundAnchor = 18, + LineCapDiamondAnchor = 19, + LineCapArrowAnchor = 20, + LineCapCustom = 255 +} LineCap; + +typedef enum LineJoin { + LineJoinMiter = 0, + LineJoinBevel = 1, + LineJoinRound = 2, + LineJoinMiterClipped = 3 +} LineJoin; + +typedef enum MatrixOrder { + MatrixOrderPrepend = 0, + MatrixOrderAppend = 1 +} MatrixOrder; + +typedef enum MetafileFrameUnit { + MetafileFrameUnitPixel = 2, + MetafileFrameUnitPoint = 3, + MetafileFrameUnitInch = 4, + MetafileFrameUnitDocument = 5, + MetafileFrameUnitMillimeter = 6, + MetafileFrameUnitGdi = 7 +} MetafileFrameUnit; + +typedef enum MetafileType { + MetafileTypeInvalid = 0, + MetafileTypeWmf = 1, + MetafileTypeWmfPlaceable = 2, + MetafileTypeEmf = 3, + MetafileTypeEmfPlusOnly = 4, + MetafileTypeEmfPlusDual = 5 +} MetafileType; + +typedef enum ObjectType { + ObjectTypeInvalid = 0, + ObjectTypeBrush = 1, + ObjectTypePen = 2, + ObjectTypePath = 3, + ObjectTypeRegion = 4, + ObjectTypeFont = 5, + ObjectTypeStringFormat = 6, + ObjectTypeImageAttributes = 7, + ObjectTypeCustomLineCap = 8, + ObjectTypeGraphics = 9, + ObjectTypeMin = ObjectTypeBrush, + ObjectTypeMax = ObjectTypeGraphics +} ObjectType; + +typedef enum PathPointType { + PathPointTypeStart = 0x00, + PathPointTypeLine = 0x01, + PathPointTypeBezier = 0x03, + PathPointTypeBezier3 = 0x03, + PathPointTypePathTypeMask = 0x07, + PathPointTypePathDashMode = 0x10, + PathPointTypePathMarker = 0x20, + PathPointTypeCloseSubpath = 0x80 +} PathPointType; + +typedef enum PenAlignment { + PenAlignmentCenter = 0, + PenAlignmentInset = 1 +} PenAlignment; + +typedef enum PenType { + PenTypeUnknown = -1, + PenTypeSolidColor = 0, + PenTypeHatchFill = 1, + PenTypeTextureFill = 2, + PenTypePathGradient = 3, + PenTypeLinearGradient = 4 +} PenType; + +/* TODO: PixelOffsetMode */ +typedef enum PixelOffsetMode { + /*PixelOffsetModeInvalid = QualityModeInvalid,*/ + PixelOffsetModeDefault = 0, + PixelOffsetModeHighSpeed = 1, + PixelOffsetModeHighQuality = 2, + PixelOffsetModeNone = 3, + PixelOffsetModeHalf = 4 +} PixelOffsetMode; + +/* TODO: QualityMode */ +typedef enum QualityMode { + /*QualityModeInvalid = ?,*/ + QualityModeDefault = 0, + QualityModeLow = 1, + QualityModeHigh = 2 +} QualityMode; + +/* TODO: SmoothingMode */ +typedef enum SmoothingMode { + /*SmoothingModeInvalid = QualityModeInvalid,*/ + SmoothingModeDefault = 0, + SmoothingModeHighSpeed = 1, + SmoothingModeHighQuality = 2, + SmoothingModeNone = 3, + SmoothingModeAntiAlias8x4 = 4, + SmoothingModeAntiAlias = 4, + SmoothingModeAntiAlias8x8 = 5 +} SmoothingMode; + +typedef enum StringAlignment { + StringAlignmentNear = 0, + StringAlignmentCenter = 1, + StringAlignmentFar = 2 +} StringAlignment; + +typedef enum StringDigitSubstitute { + StringDigitSubstituteUser = 0, + StringDigitSubstituteNone = 1, + StringDigitSubstituteNational = 2, + StringDigitSubstituteTraditional = 3 +} StringDigitSubstitute; + +typedef enum StringFormatFlags { + StringFormatFlagsDirectionRightToLeft = 0x00000001, + StringFormatFlagsDirectionVertical = 0x00000002, + StringFormatFlagsNoFitBlackBox = 0x00000004, + StringFormatFlagsDisplayFormatControl = 0x00000020, + StringFormatFlagsNoFontFallback = 0x00000400, + StringFormatFlagsMeasureTrailingSpaces = 0x00000800, + StringFormatFlagsNoWrap = 0x00001000, + StringFormatFlagsLineLimit = 0x00002000, + StringFormatFlagsNoClip = 0x00004000 +} StringFormatFlags; + +typedef enum StringTrimming { + StringTrimmingNone = 0, + StringTrimmingCharacter = 1, + StringTrimmingWord = 2, + StringTrimmingEllipsisCharacter = 3, + StringTrimmingEllipsisWord = 4, + StringTrimmingEllipsisPath = 5 +} StringTrimming; + +typedef enum TextRenderingHint { + TextRenderingHintSystemDefault = 0, + TextRenderingHintSingleBitPerPixelGridFit = 1, + TextRenderingHintSingleBitPerPixel = 2, + TextRenderingHintAntiAliasGridFit = 3, + TextRenderingHintAntiAlias = 4, + TextRenderingHintClearTypeGridFit = 5 +} TextRenderingHint; + +typedef enum Unit { + UnitWorld = 0, + UnitDisplay = 1, + UnitPixel = 2, + UnitPoint = 3, + UnitInch = 4, + UnitDocument = 5, + UnitMillimeter = 6 +} Unit; + +typedef enum WarpMode { + WarpModePerspective = 0, + WarpModeBilinear = 1 +} WarpMode; + +typedef enum WrapMode { + WrapModeTile = 0, + WrapModeTileFlipX = 1, + WrapModeTileFlipY = 2, + WrapModeTileFlipXY = 3, + WrapModeClamp = 4 +} WrapMode; + +typedef enum GpTestControlEnum { + TestControlForceBilinear = 0, + TestControlForceNoICM = 1, + TestControlGetBuildNumber = 2 +} GpTestControlEnum; + +/* Opaque handles to information blocks on an internal GDI+ stack. */ +typedef DWORD GraphicsContainer; +typedef DWORD GraphicsState; + +/* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */ +/* FIXME: Is FlatnessDefault = 0.25f correct? */ +#ifdef __cplusplus +const REAL FlatnessDefault = 0.25f; +#else +#define FlatnessDefault ((REAL) 0.25f) +#endif + +static __inline__ BOOL ObjectTypeIsValid(ObjectType type) +{ + switch (type) { + case ObjectTypeBrush: + case ObjectTypePen: + case ObjectTypePath: + case ObjectTypeRegion: + case ObjectTypeFont: + case ObjectTypeStringFormat: + case ObjectTypeImageAttributes: + case ObjectTypeCustomLineCap: + case ObjectTypeGraphics: + return TRUE; + default: + return FALSE; + } +} + +#endif /* __GDIPLUS_ENUMS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusflat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusflat.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,722 @@ +/* + * gdiplusflat.h + * + * GDI+ Flat API + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_FLAT_H +#define __GDIPLUS_FLAT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +namespace DllExports { +extern "C" { +#endif + +/* AdjustableArrowCap functions */ +GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*); + +/* Bitmap functions */ +GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO*,VOID*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP,HPALETTE,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap*,HBITMAP*,ARGB); +GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap*,HICON*); +GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE,GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL,REAL,REAL,REAL,PixelFormat,GpBitmap*,GpBitmap**); +GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT,INT,INT,INT,PixelFormat,GpBitmap*,GpBitmap**); +GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,PixelFormat,BitmapData*); +GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap*,BitmapData*); +GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*); +GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB); +GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap*,REAL,REAL); +GpStatus WINGDIPAPI GdipBitmapConvertFormat(GpBitmap*,PixelFormat,DitherType,PaletteType,ColorPalette*,REAL); +GpStatus WINGDIPAPI GdipInitializePalette(ColorPalette*,PaletteType,INT,BOOL,GpBitmap*); +GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap*,CGpEffect*,RECT*,BOOL,VOID**,INT*); +GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap**,INT,CGpEffect*,RECT*,RECT*,GpBitmap**,BOOL,VOID**,INT*); +GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap*,HistogramFormat,UINT,UINT*,UINT*,UINT*,UINT*); +GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(HistogramFormat,UINT*); + +/* Brush functions */ +GpStatus WINGDIPAPI GdipCloneBrush(GpBrush*,GpBrush**); +GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); +GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); + +/* CachedBitmap functions */ +GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap*,GpGraphics*,GpCachedBitmap**); +GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap*); +GpStatus WINGDIPAPI GdipDrawCachedBitmap(GpGraphics*,GpCachedBitmap*,INT,INT); + +/* CustomLineCap functions */ +GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath*,GpPath*,GpLineCap,REAL,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*); +GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipGetCustomLineCapType(GpCustomLineCap*,CustomLineCapType*); +GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,GpLineCap); +GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap*,GpLineCap*); +GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin); +GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*); +GpStatus WINGDIPAPI GdipSetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap); +GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*); +GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL); +GpStatus WINGDIPAPI GdipGetCustomLineCapBaseInset(GpCustomLineCap*,REAL*); +GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap*,REAL); +GpStatus WINGDIPAPI GdipGetCustomLineCapWidthScale(GpCustomLineCap*,REAL*); + +/* Effect functions */ +GpStatus WINGDIPAPI GdipCreateEffect(GDIPCONST GUID,CGpEffect**); +GpStatus WINGDIPAPI GdipDeleteEffect(CGpEffect*); +GpStatus WINGDIPAPI GdipGetEffectParameterSize(CGpEffect*,UINT*); +GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect*,GDIPCONST VOID*,UINT); +GpStatus WINGDIPAPI GdipGetEffectParameters(CGpEffect*,UINT*,VOID*); + +/* Font functions */ +GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**); +GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**); +GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**); +GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily*,REAL,INT,Unit,GpFont**); +GpStatus WINGDIPAPI GdipCloneFont(GpFont*,GpFont**); +GpStatus WINGDIPAPI GdipDeleteFont(GpFont*); +GpStatus WINGDIPAPI GdipGetFamily(GpFont*,GpFontFamily**); +GpStatus WINGDIPAPI GdipGetFontStyle(GpFont*,INT*); +GpStatus WINGDIPAPI GdipGetFontSize(GpFont*,REAL*); +GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*,Unit*); +GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont*,GDIPCONST GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont*,REAL,REAL*); +GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*); +GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*); +GpStatus WINGDIPAPI GdipNewInstalledFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount(GpFontCollection*,INT*); +GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(GpFontCollection*,INT,GpFontFamily**,INT*); +GpStatus WINGDIPAPI GdipPrivateAddFontFile(GpFontCollection*,GDIPCONST WCHAR*); +GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection*,GDIPCONST void*,INT); + +/* FontFamily functions */ +GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR*,GpFontCollection*,GpFontFamily**); +GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily*); +GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily*,GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilySansSerif(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilySerif(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilyMonospace(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetFamilyName(GDIPCONST GpFontFamily*,WCHAR[LF_FACESIZE],LANGID); +GpStatus WINGDIPAPI GdipIsStyleAvailable(GDIPCONST GpFontFamily*,INT,BOOL*); +GpStatus WINGDIPAPI GdipFontCollectionEnumerable(GpFontCollection*,GpGraphics*,INT*); +GpStatus WINGDIPAPI GdipFontCollectionEnumerate(GpFontCollection*,INT,GpFontFamily**,INT*,GpGraphics*); +GpStatus WINGDIPAPI GdipGetEmHeight(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetCellAscent(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetCellDescent(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetLineSpacing(GDIPCONST GpFontFamily*,INT,UINT16*); + +/* Graphics functions */ +GpStatus WINGDIPAPI GdipFlush(GpGraphics*,GpFlushIntention); +GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC,HANDLE,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND,GpGraphics**); +GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics*); +GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*); +GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics*,HDC); +GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode); +GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*); +GpStatus WINGDIPAPI GdipSetRenderingOrigin(GpGraphics*,INT,INT); +GpStatus WINGDIPAPI GdipGetRenderingOrigin(GpGraphics*,INT*,INT*); +GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality); +GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*); +GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode); +GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*); +GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode); +GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*); +GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics*,TextRenderingHint); +GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*); +GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics*,UINT); +GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*); +GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode); +GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics*,GdiplusAbort*); +GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*); +GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics*); +GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics*); +GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*); +GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit); +GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL); +GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPointF*,INT); +GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics*,ARGB*); +HPALETTE WINGDIPAPI GdipCreateHalftonePalette(void); +GpStatus WINGDIPAPI GdipDrawLine(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics*,GpPen*,INT,INT,INT,INT,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*); +GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB); +GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,GpFillMode); +GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,GpFillMode); +GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics*,GpBrush*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillPieI(GpGraphics*,GpBrush*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*); +GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,REAL,GpFillMode); +GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,REAL,GpFillMode); +GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*); +GpStatus WINGDIPAPI GdipDrawImage(GpGraphics*,GpImage*,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawImageI(GpGraphics*,GpImage*,INT,INT); +GpStatus WINGDIPAPI GdipDrawImageRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawImageRectI(GpGraphics*,GpImage*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawImagePoints(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawImagePointsI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit); +GpStatus WINGDIPAPI GdipDrawImagePointRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,GpUnit); +GpStatus WINGDIPAPI GdipDrawImageRectRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImagePointsRectI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImageFX(GpGraphics*,GpImage*,GpRectF*,GpMatrix*,CGpEffect*,GpImageAttributes*,GpUnit); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#endif +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#endif +GpStatus WINGDIPAPI GdipSetClipGraphics(GpGraphics*,GpGraphics*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode); +GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode); +GpStatus WINGDIPAPI GdipResetClip(GpGraphics*); +GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL); +GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT); +GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*); +GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipIsVisibleClipEmpty(GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics*,REAL,REAL,REAL,REAL,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics*,INT,INT,INT,INT,BOOL*); +GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*); +GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState); +GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics*,GDIPCONST GpRectF*,GDIPCONST GpRectF*,GpUnit,GraphicsContainer*); +GpStatus WINGDIPAPI GdipBeginContainerI(GpGraphics*,GDIPCONST GpRect*,GDIPCONST GpRect*,GpUnit,GraphicsContainer*); +GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics*,GraphicsContainer*); +GpStatus WINGDIPAPI GdipEndContainer(GpGraphics*,GraphicsContainer); +GpStatus WINGDIPAPI GdipComment(GpGraphics*,UINT,GDIPCONST BYTE*); + +/* GraphicsPath functions */ +GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**); +GpStatus WINGDIPAPI GdipDeletePath(GpPath*); +GpStatus WINGDIPAPI GdipResetPath(GpPath*); +GpStatus WINGDIPAPI GdipGetPointCount(GpPath*,INT*); +GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT); +GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*); +GpStatus WINGDIPAPI GdipSetPathFillMode(GpPath*,GpFillMode); +GpStatus WINGDIPAPI GdipGetPathData(GpPath*,GpPathData*); +GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*); +GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*); +GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*); +GpStatus WINGDIPAPI GdipSetPathMarker(GpPath*); +GpStatus WINGDIPAPI GdipClearPathMarkers(GpPath*); +GpStatus WINGDIPAPI GdipReversePath(GpPath*); +GpStatus WINGDIPAPI GdipGetPathLastPoint(GpPath*,GpPointF*); +GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath*,GDIPCONST GpPointF*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathClosedCurve(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPie(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL); +GpStatus WINGDIPAPI GdipAddPathString(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST RectF*,GDIPCONST GpStringFormat*); +GpStatus WINGDIPAPI GdipAddPathStringI(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST Rect*,GDIPCONST GpStringFormat*); +GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathCurveI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath*,GDIPCONST GpPoint*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathClosedCurveI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathPieI(GpPath*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFlattenPath(GpPath*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWindingModeOutline(GpPath*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWidenPath(GpPath*,GpPen*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWarpPath(GpPath*,GpMatrix*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,WarpMode,REAL); +GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetPathWorldBounds(GpPath*,GpRectF*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); +GpStatus WINGDIPAPI GdipGetPathWorldBoundsI(GpPath*,GpRect*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); +GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath*,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath*,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath*,REAL,REAL,GpPen*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath*,INT,INT,GpPen*,GpGraphics*,BOOL*); + +/* HatchBrush functions */ +GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle,ARGB,ARGB,GpHatch**); +GpStatus WINGDIPAPI GdipGetHatchStyle(GpHatch*,GpHatchStyle*); +GpStatus WINGDIPAPI GdipGetHatchForegroundColor(GpHatch*,ARGB*); +GpStatus WINGDIPAPI GdipGetHatchBackgroundColor(GpHatch*,ARGB*); + +/* Image functions */ +GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromStreamICM(IStream*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromFileICM(GDIPCONST WCHAR*,GpImage**); +GpStatus WINGDIPAPI GdipCloneImage(GpImage*,GpImage**); +GpStatus WINGDIPAPI GdipDisposeImage(GpImage*); +GpStatus WINGDIPAPI GdipSaveImageToFile(GpImage*,GDIPCONST WCHAR*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage*,IStream*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveAdd(GpImage*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveAddImage(GpImage*,GpImage*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage*,GpGraphics**); +GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*); +GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*); +GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*); +GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage*,REAL*); +GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*); +GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*); +GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage*,PixelFormat*); +GpStatus WINGDIPAPI GdipGetImageThumbnail(GpImage*,UINT,UINT,GpImage**,GetThumbnailImageAbort,VOID*); +GpStatus WINGDIPAPI GdipGetEncoderParameterListSize(GpImage*,GDIPCONST CLSID*,UINT*); +GpStatus WINGDIPAPI GdipGetEncoderParameterList(GpImage*,GDIPCONST CLSID*,UINT,EncoderParameters*); +GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT); +GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*); +GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT); +GpStatus WINGDIPAPI GdipImageRotateFlip(GpImage*,RotateFlipType); +GpStatus WINGDIPAPI GdipGetImagePalette(GpImage*,ColorPalette*,INT); +GpStatus WINGDIPAPI GdipSetImagePalette(GpImage*,GDIPCONST ColorPalette*); +GpStatus WINGDIPAPI GdipGetImagePaletteSize(GpImage*,INT*); +GpStatus WINGDIPAPI GdipGetPropertyCount(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetPropertyIdList(GpImage*,UINT,PROPID*); +GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*); +GpStatus WINGDIPAPI GdipGetPropertyItem(GpImage*,PROPID,UINT,PropertyItem*); +GpStatus WINGDIPAPI GdipGetPropertySize(GpImage*,UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage*,UINT,UINT,PropertyItem*); +GpStatus WINGDIPAPI GdipRemovePropertyItem(GpImage*,PROPID); +GpStatus WINGDIPAPI GdipSetPropertyItem(GpImage*,GDIPCONST PropertyItem*); +GpStatus WINGDIPAPI GdipFindFirstImageItem(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipFindNextImageItem(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipGetImageItemData(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipImageSetAbort(GpImage*,GdiplusAbort*); +GpStatus WINGDIPAPI GdipImageForceValidation(GpImage*); + +/* Image codec functions */ +GpStatus WINGDIPAPI GdipGetImageDecodersSize(UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetImageDecoders(UINT,UINT,ImageCodecInfo*); +GpStatus WINGDIPAPI GdipGetImageEncodersSize(UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetImageEncoders(UINT,UINT,ImageCodecInfo*); + +/* ImageAttributes functions */ +GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**); +GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes*,GpImageAttributes**); +GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes*); +GpStatus WINGDIPAPI GdipSetImageAttributesToIdentity(GpImageAttributes*,ColorAdjustType); +GpStatus WINGDIPAPI GdipResetImageAttributes(GpImageAttributes*,ColorAdjustType); +GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST ColorMatrix*,GDIPCONST ColorMatrix*,ColorMatrixFlags); +GpStatus WINGDIPAPI GdipSetImageAttributesThreshold(GpImageAttributes*,ColorAdjustType,BOOL,REAL); +GpStatus WINGDIPAPI GdipSetImageAttributesGamma(GpImageAttributes*,ColorAdjustType,BOOL,REAL); +GpStatus WINGDIPAPI GdipSetImageAttributesNoOp(GpImageAttributes*,ColorAdjustType,BOOL); +GpStatus WINGDIPAPI GdipSetImageAttributesColorKeys(GpImageAttributes*,ColorAdjustType,BOOL,ARGB,ARGB); +GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannel(GpImageAttributes*,ColorAdjustType,BOOL,ColorChannelFlags); +GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST WCHAR*); +GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes*,ColorAdjustType,BOOL,UINT,GDIPCONST ColorMap*); +GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes*,WrapMode,ARGB,BOOL); +GpStatus WINGDIPAPI GdipSetImageAttributesICMMode(GpImageAttributes*,BOOL); +GpStatus WINGDIPAPI GdipGetImageAttributesAdjustedPalette(GpImageAttributes*,ColorPalette*,ColorAdjustType); +GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes*,BOOL); + +/* LinearGradientBrush functions */ +GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF*,GDIPCONST GpPointF*,ARGB,ARGB,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushI(GDIPCONST GpPoint*,GDIPCONST GpPoint*,ARGB,ARGB,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipSetLineColors(GpLineGradient*,ARGB,ARGB); +GpStatus WINGDIPAPI GdipGetLineColors(GpLineGradient*,ARGB*); +GpStatus WINGDIPAPI GdipGetLineRect(GpLineGradient*,GpRectF*); +GpStatus WINGDIPAPI GdipGetLineRectI(GpLineGradient*,GpRect*); +GpStatus WINGDIPAPI GdipSetLineGammaCorrection(GpLineGradient*,BOOL); +GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient*,BOOL*); +GpStatus WINGDIPAPI GdipGetLineBlendCount(GpLineGradient*,INT*); +GpStatus WINGDIPAPI GdipGetLineBlend(GpLineGradient*,REAL*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetLinePresetBlendCount(GpLineGradient*,INT*); +GpStatus WINGDIPAPI GdipGetLinePresetBlend(GpLineGradient*,ARGB*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipSetLineSigmaBlend(GpLineGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetLineLinearBlend(GpLineGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetLineWrapMode(GpLineGradient*,GpWrapMode*); +GpStatus WINGDIPAPI GdipGetLineTransform(GpLineGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetLineTransform(GpLineGradient*,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipResetLineTransform(GpLineGradient*); +GpStatus WINGDIPAPI GdipMultiplyLineTransform(GpLineGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateLineTransform(GpLineGradient*,REAL,GpMatrixOrder); + +/* Matrix functions */ +GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF*,GDIPCONST GpPointF*,GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**); +GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); +GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); +GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix*); +GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*); +GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix*,BOOL*); +GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*,BOOL*); +GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*,GDIPCONST GpMatrix*,BOOL*); + +/* Metafile functions */ +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetHemfFromMetafile(GpMetafile*,HENHMETAFILE*); +GpStatus WINGDIPAPI GdipCreateStreamOnFile(GDIPCONST WCHAR*,UINT,IStream**); +GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE,BOOL,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE,BOOL,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR*,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafile(HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileI(HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileFileNameI(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileStream(IStream*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileStreamI(IStream*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile*,EmfPlusRecordType,UINT,UINT,GDIPCONST BYTE*); +GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile*,UINT); +GpStatus WINGDIPAPI GdipGetMetafileDownLevelRasterizationLimit(GDIPCONST GpMetafile*,UINT*); +GpStatus WINGDIPAPI GdipConvertToEmfPlus(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipConvertToEmfPlusToFile(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,GDIPCONST WCHAR*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipConvertToEmfPlusToStream(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,IStream*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +UINT WINGDIPAPI GdipEmfToWmfBits(HENHMETAFILE,UINT,LPBYTE,INT,INT); + +/* PathGradientBrush functions */ +GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF*,INT,GpWrapMode,GpPathGradient**); +GpStatus WINGDIPAPI GdipCreatePathGradientI(GDIPCONST GpPoint*,INT,GpWrapMode,GpPathGradient**); +GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*,GpPathGradient**); +GpStatus WINGDIPAPI GdipGetPathGradientCenterColor(GpPathGradient*,ARGB*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); +GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*,ARGB*,INT*); +GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,GDIPCONST ARGB*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientPath(GpPathGradient*,GpPath*); +GpStatus WINGDIPAPI GdipSetPathGradientPath(GpPathGradient*,GDIPCONST GpPath*); +GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*); +GpStatus WINGDIPAPI GdipGetPathGradientCenterPointI(GpPathGradient*,GpPoint*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GDIPCONST GpPointF*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterPointI(GpPathGradient*,GDIPCONST GpPoint*); +GpStatus WINGDIPAPI GdipGetPathGradientRect(GpPathGradient*,GpRectF*); +GpStatus WINGDIPAPI GdipGetPathGradientRectI(GpPathGradient*,GpRect*); +GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL); +GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*); +GpStatus WINGDIPAPI GdipGetPathGradientBlendCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientBlend(GpPathGradient*,REAL*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPathGradientPresetBlendCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientPresetBlend(GpPathGradient*,ARGB*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetPathGradientLinearBlend(GpPathGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipGetPathGradientWrapMode(GpPathGradient*,GpWrapMode*); +GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPathGradientTransform(GpPathGradient*); +GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipGetPathGradientFocusScales(GpPathGradient*,REAL*,REAL*); +GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL); + +/* PathIterator functions */ +GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*); +GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*); +GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator*,INT*,INT*,INT*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator*,INT*,GpPath*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator*,INT*,BYTE*,INT*,INT*); +GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator*,INT*,INT*,INT*); +GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator*,INT*,GpPath*); +GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator*,INT*); +GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator*,INT*); +GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator*); +GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator*,INT*,GpPointF*,BYTE*,INT); +GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator*,INT*,GpPointF*,BYTE*,INT,INT); + +/* Pen functions */ +GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**); +GpStatus WINGDIPAPI GdipCreatePen2(GpBrush*,REAL,GpUnit,GpPen**); +GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**); +GpStatus WINGDIPAPI GdipDeletePen(GpPen*); +GpStatus WINGDIPAPI GdipSetPenWidth(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenWidth(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenUnit(GpPen*,GpUnit); +GpStatus WINGDIPAPI GdipGetPenUnit(GpPen*,GpUnit*); +GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap); +GpStatus WINGDIPAPI GdipSetPenStartCap(GpPen*,GpLineCap); +GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap); +GpStatus WINGDIPAPI GdipSetPenDashCap197819(GpPen*,GpDashCap); +GpStatus WINGDIPAPI GdipGetPenStartCap(GpPen*,GpLineCap*); +GpStatus WINGDIPAPI GdipGetPenEndCap(GpPen*,GpLineCap*); +GpStatus WINGDIPAPI GdipGetPenDashCap197819(GpPen*,GpDashCap*); +GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin); +GpStatus WINGDIPAPI GdipGetPenLineJoin(GpPen*,GpLineJoin*); +GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*); +GpStatus WINGDIPAPI GdipGetPenCustomStartCap(GpPen*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*); +GpStatus WINGDIPAPI GdipGetPenCustomEndCap(GpPen*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipSetPenMiterLimit(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenMiterLimit(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenMode(GpPen*,GpPenAlignment); +GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*); +GpStatus WINGDIPAPI GdipSetPenTransform(GpPen*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetPenTransform(GpPen*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPenTransform(GpPen*); +GpStatus WINGDIPAPI GdipMultiplyPenTransform(GpPen*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslatePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScalePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotatePenTransform(GpPen*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB); +GpStatus WINGDIPAPI GdipGetPenColor(GpPen*,ARGB*); +GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*); +GpStatus WINGDIPAPI GdipGetPenBrushFill(GpPen*,GpBrush**); +GpStatus WINGDIPAPI GdipGetPenFillType(GpPen*,GpPenType*); +GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*); +GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle); +GpStatus WINGDIPAPI GdipGetPenDashOffset(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenDashOffset(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenDashCount(GpPen*,INT*); +GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenDashArray(GpPen*,REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenCompoundCount(GpPen*,INT*); +GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenCompoundArray(GpPen*,REAL*,INT); + +/* Region functions */ +GpStatus WINGDIPAPI GdipCreateRegion(GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE*,INT,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN,GpRegion**); +GpStatus WINGDIPAPI GdipCloneRegion(GpRegion*,GpRegion**); +GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion*); +GpStatus WINGDIPAPI GdipSetInfinite(GpRegion*); +GpStatus WINGDIPAPI GdipSetEmpty(GpRegion*); +GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion*,GDIPCONST GpRectF*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion*,GDIPCONST GpRect*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion*,GpPath*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion*,GpRegion*,CombineMode); +GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion*,REAL,REAL); +GpStatus WINGDIPAPI GdipTranslateRegionI(GpRegion*,INT,INT); +GpStatus WINGDIPAPI GdipTransformRegion(GpRegion*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion*,GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetRegionBoundsI(GpRegion*,GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion*,GpGraphics*,HRGN*); +GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion*,GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion*,UINT*); +GpStatus WINGDIPAPI GdipGetRegionData(GpRegion*,BYTE*,UINT,UINT*); +GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion*,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion*,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion*,REAL,REAL,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion*,INT,INT,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion*,UINT*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion*,GpRectF*,INT*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion*,GpRect*,INT*,GpMatrix*); + +/* SolidBrush functions */ +GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**); +GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB); +GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); + +/* StringFormat functions */ +GpStatus WINGDIPAPI GdipCreateStringFormat(INT,LANGID,GpStringFormat**); +GpStatus WINGDIPAPI GdipStringFormatGetGenericDefault(GpStringFormat**); +GpStatus WINGDIPAPI GdipStringFormatGetGenericTypographic(GpStringFormat**); +GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat*); +GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringFormat**); +GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat*,INT); +GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatAlign(GpStringFormat*,StringAlignment); +GpStatus WINGDIPAPI GdipGetStringFormatAlign(GDIPCONST GpStringFormat*,StringAlignment*); +GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat*,StringAlignment); +GpStatus WINGDIPAPI GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat*,StringAlignment*); +GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat*,StringTrimming); +GpStatus WINGDIPAPI GdipGetStringFormatTrimming(GDIPCONST GpStringFormat*,StringTrimming*); +GpStatus WINGDIPAPI GdipSetStringFormatHotkeyPrefix(GpStringFormat*,INT); +GpStatus WINGDIPAPI GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat*,REAL,INT,GDIPCONST REAL*); +GpStatus WINGDIPAPI GdipGetStringFormatTabStops(GDIPCONST GpStringFormat*,INT,REAL*,REAL*); +GpStatus WINGDIPAPI GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatDigitSubstitution(GpStringFormat*,LANGID,StringDigitSubstitute); +GpStatus WINGDIPAPI GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat*,LANGID*,StringDigitSubstitute*); +GpStatus WINGDIPAPI GdipGetStringFormatMeasurableCharacterRangeCount(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(GpStringFormat*,INT,GDIPCONST CharacterRange*); + +/* Text functions */ +GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,GDIPCONST GpBrush*); +GpStatus WINGDIPAPI GdipMeasureString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,RectF*,INT*,INT*); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF&,GDIPCONST GpStringFormat*,INT,GpRegion**); +#endif +GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST GpBrush*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*,RectF*); + +/* TextureBrush functions */ +GpStatus WINGDIPAPI GdipCreateTexture(GpImage*,GpWrapMode,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTexture2(GpImage*,GpWrapMode,REAL,REAL,REAL,REAL,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTexture2I(GpImage*,GpWrapMode,INT,INT,INT,INT,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage*,GDIPCONST GpImageAttributes*,REAL,REAL,REAL,REAL,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTextureIAI(GpImage*,GDIPCONST GpImageAttributes*,INT,INT,INT,INT,GpTexture**); +GpStatus WINGDIPAPI GdipGetTextureTransform(GpTexture*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture*,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipResetTextureTransform(GpTexture*); +GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateTextureTransform(GpTexture*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipSetTextureWrapMode(GpTexture*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture*,GpWrapMode*); +GpStatus WINGDIPAPI GdipGetTextureImage(GpTexture*,GpImage**); + +/* uncategorized functions */ +GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*); + +#ifdef __cplusplus +} /* extern "C" */ +} /* namespace DllExports */ +#endif + +#endif /* __GDIPLUS_FLAT_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusgpstubs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusgpstubs.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,139 @@ +/* + * gdiplusgpstubs.h + * + * GDI+ Gp* type declarations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_GPSTUBS_H +#define __GDIPLUS_GPSTUBS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef Point GpPoint; +typedef PointF GpPointF; +typedef Rect GpRect; +typedef RectF GpRectF; +typedef Size GpSize; +typedef SizeF GpSizeF; + +typedef enum BrushType GpBrushType; +typedef enum CombineMode GpCombineMode; +typedef enum CompositingMode GpCompositingMode; +typedef enum CompositingQuality GpCompositingQuality; +typedef enum CoordinateSpace GpCoordinateSpace; +typedef enum CustomLineCapType GpCustomLineCapType; +typedef enum DashCap GpDashCap; +typedef enum DashStyle GpDashStyle; +typedef enum DitherType GpDitherType; +typedef enum DriverStringOptions GpDriverStringOptions; +typedef enum EmfPlusRecordType GpEmfPlusRecordType; +typedef enum EmfToWmfBitsFlags GpEmfToWmfBitsFlags; +typedef enum EmfType GpEmfType; +typedef enum EncoderParameterValueType GpEncoderParameterValueType; +typedef enum EncoderValue GpEncoderValue; +typedef enum FillMode GpFillMode; +typedef enum FlushIntention GpFlushIntention; +typedef enum FontStyle GpFontStyle; +typedef enum HatchStyle GpHatchStyle; +typedef enum HotkeyPrefix GpHotkeyPrefix; +typedef enum ImageType GpImageType; +typedef enum InterpolationMode GpInterpolationMode; +typedef enum LinearGradientMode GpLinearGradientMode; +typedef enum LineCap GpLineCap; +typedef enum LineJoin GpLineJoin; +typedef enum MatrixOrder GpMatrixOrder; +typedef enum MetafileFrameUnit GpMetafileFrameUnit; +typedef enum MetafileType GpMetafileType; +typedef enum ObjectType GpObjectType; +typedef enum PathPointType GpPathPointType; +typedef enum PenAlignment GpPenAlignment; +typedef enum PenType GpPenType; +typedef enum PixelOffsetMode GpPixelOffsetMode; +typedef enum QualityMode GpQualityMode; +typedef enum SmoothingMode GpSmoothingMode; +typedef enum StringAlignment GpStringAlignment; +typedef enum StringDigitSubstitute GpStringDigitSubstitute; +typedef enum StringFormatFlags GpStringFormatFlags; +typedef enum StringTrimming GpStringTrimming; +typedef enum TextRenderingHint GpTextRenderingHint; +typedef enum Unit GpUnit; +typedef enum WarpMode GpWarpMode; +typedef enum WrapMode GpWrapMode; + +#ifdef __cplusplus + +class CGpEffect {}; +class GpCustomLineCap {}; +class GpImage {}; + +class GpAdjustableArrowCap: public GpCustomLineCap {}; +class GpBitmap: public GpImage {}; +class GpBrush {}; +class GpCachedBitmap {}; +class GpFont {}; +class GpFontCollection {}; +class GpFontFamily {}; +class GpGraphics {}; +class GpHatch: public GpBrush {}; /* HatchBrush */ +class GpImageAttributes {}; +class GpLineGradient: public GpBrush {}; /* LinearGradientBrush */ +class GpMatrix {}; +class GpMetafile: public GpImage {}; +class GpPath {}; /* GraphicsPath */ +class GpPathData {}; +class GpPathGradient: public GpBrush {}; /* PathGradientBrush */ +class GpPathIterator {}; /* GraphicsPathIterator */ +class GpPen {}; +class GpRegion {}; +class GpSolidFill: public GpBrush {}; /* SolidBrush */ +class GpStringFormat {}; +class GpTexture: public GpBrush {}; /* TextureBrush */ + +#else /* !__cplusplus */ + +typedef void CGpEffect; +typedef void GpAdjustableArrowCap; +typedef void GpBitmap; +typedef void GpBrush; +typedef void GpCachedBitmap; +typedef void GpCustomLineCap; +typedef void GpFont; +typedef void GpFontFamily; +typedef void GpFontCollection; +typedef void GpGraphics; +typedef void GpHatch; +typedef void GpImage; +typedef void GpImageAttributes; +typedef void GpLineGradient; +typedef void GpMatrix; +typedef void GpMetafile; +typedef void GpPath; +typedef void GpPathData; +typedef void GpPathGradient; +typedef void GpPathIterator; +typedef void GpPen; +typedef void GpRegion; +typedef void GpSolidFill; +typedef void GpStringFormat; +typedef void GpTexture; + +#endif /* !__cplusplus */ + +#endif /* __GDIPLUS_GPSTUBS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusgraphics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusgraphics.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,1540 @@ +/* + * gdiplusgraphics.h + * + * GDI+ Graphics class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_GRAPHICS_H +#define __GDIPLUS_GRAPHICS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusgraphics.h." +#endif + +class Graphics: public GdiplusBase +{ + friend class Bitmap; + friend class CachedBitmap; + friend class Font; + friend class GraphicsPath; + friend class Metafile; + friend class Region; + +public: + static Graphics* FromHDC(HDC hdc) + { + return new Graphics(hdc); + } + static Graphics* FromHDC(HDC hdc, HANDLE hdevice) + { + return new Graphics(hdc, hdevice); + } + static Graphics* FromHWND(HWND hwnd, BOOL icm = FALSE) + { + return new Graphics(hwnd, icm); + } + static Graphics* FromImage(Image *image) + { + return new Graphics(image); + } + static HPALETTE GetHalftonePalette() + { + return DllExports::GdipCreateHalftonePalette(); + } + + Graphics(Image *image): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipGetImageGraphicsContext( + image ? image->nativeImage : NULL, + &nativeGraphics); + } + Graphics(HDC hdc): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateFromHDC( + hdc, &nativeGraphics); + } + Graphics(HDC hdc, HANDLE hdevice): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateFromHDC2( + hdc, hdevice, &nativeGraphics); + } + Graphics(HWND hwnd, BOOL icm = FALSE): + nativeGraphics(NULL), lastStatus(Ok) + { + if (icm) { + lastStatus = DllExports::GdipCreateFromHWNDICM( + hwnd, &nativeGraphics); + } else { + lastStatus = DllExports::GdipCreateFromHWND( + hwnd, &nativeGraphics); + } + } + ~Graphics() + { + DllExports::GdipDeleteGraphics(nativeGraphics); + } + + Status AddMetafileComment(const BYTE *data, UINT sizeData) + { + return updateStatus(DllExports::GdipComment( + nativeGraphics, sizeData, data)); + } + GraphicsContainer BeginContainer() + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainer2( + nativeGraphics, &result)); + return result; + } + GraphicsContainer BeginContainer(const RectF& dstrect, + const RectF& srcrect, Unit unit) + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainer( + nativeGraphics, &dstrect, &srcrect, unit, + &result)); + return result; + } + GraphicsContainer BeginContainer(const Rect& dstrect, + const Rect& srcrect, Unit unit) + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainerI( + nativeGraphics, &dstrect, &srcrect, unit, + &result)); + return result; + } + Status Clear(const Color& color) + { + return updateStatus(DllExports::GdipGraphicsClear( + nativeGraphics, color.GetValue())); + } + Status DrawArc(const Pen *pen, REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArc( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArcI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArc( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArcI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawBezier(const Pen *pen, + REAL x1, REAL y1, REAL x2, REAL y2, + REAL x3, REAL y3, REAL x4, REAL y4) + { + return updateStatus(DllExports::GdipDrawBezier( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status DrawBezier(const Pen *pen, + INT x1, INT y1, INT x2, INT y2, + INT x3, INT y3, INT x4, INT y4) + { + return updateStatus(DllExports::GdipDrawBezierI( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status DrawBezier(const Pen *pen, + const PointF& pt1, const PointF& pt2, + const PointF& pt3, const PointF& pt4) + { + return updateStatus(DllExports::GdipDrawBezier( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status DrawBezier(const Pen *pen, + const Point& pt1, const Point& pt2, + const Point& pt3, const Point& pt4) + { + return updateStatus(DllExports::GdipDrawBezierI( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status DrawBeziers(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawBeziers( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawBeziers(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawBeziersI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCachedBitmap(CachedBitmap *cb, INT x, INT y) + { + return updateStatus(DllExports::GdipDrawCachedBitmap( + nativeGraphics, + cb ? cb->nativeCachedBitmap : NULL, + x, y)); + } + Status DrawClosedCurve(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawClosedCurve( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawClosedCurve(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawClosedCurveI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawClosedCurve(const Pen *pen, const PointF *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawClosedCurve2( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawClosedCurve(const Pen *pen, const Point *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawClosedCurve2I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawCurve( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawCurveI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve2( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve2I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count, + INT offset, INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve3( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, offset, + numberOfSegments, tension)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count, + INT offset, INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve3I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, offset, + numberOfSegments, tension)); + } + Status DrawDriverString(const UINT16 *text, INT length, + const Font *font, const Brush *brush, + const PointF *positions, INT flags, + const Matrix *matrix) + { + return updateStatus(DllExports::GdipDrawDriverString( + nativeGraphics, text, length, + font ? font->nativeFont : NULL, + brush ? brush->nativeBrush : NULL, + positions, flags, + matrix ? matrix->nativeMatrix : NULL)); + } + Status DrawEllipse(const Pen *pen, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawEllipse( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawEllipse(const Pen *pen, INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawEllipseI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawEllipse(const Pen *pen, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawEllipse( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawEllipse(const Pen *pen, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawEllipseI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, REAL x, REAL y) + { + return updateStatus(DllExports::GdipDrawImage( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y)); + } + Status DrawImage(Image *image, INT x, INT y) + { + return updateStatus(DllExports::GdipDrawImageI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y)); + } + Status DrawImage(Image *image, const PointF& point) + { + return updateStatus(DllExports::GdipDrawImage( + nativeGraphics, + image ? image->nativeImage : NULL, + point.X, point.Y)); + } + Status DrawImage(Image *image, const Point& point) + { + return updateStatus(DllExports::GdipDrawImageI( + nativeGraphics, + image ? image->nativeImage : NULL, + point.X, point.Y)); + } + Status DrawImage(Image *image, REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawImageRect( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, width, height)); + } + Status DrawImage(Image *image, INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawImageRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, width, height)); + } + Status DrawImage(Image *image, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawImageRect( + nativeGraphics, + image ? image->nativeImage : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawImageRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, const PointF *destPoints, INT count) + { + return updateStatus(DllExports::GdipDrawImagePoints( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count)); + } + Status DrawImage(Image *image, const Point *destPoints, INT count) + { + return updateStatus(DllExports::GdipDrawImagePointsI( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count)); + } + Status DrawImage(Image *image, REAL x, REAL y, REAL srcx, REAL srcy, + REAL srcwidth, REAL srcheight, Unit srcUnit) + { + return updateStatus(DllExports::GdipDrawImagePointRect( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, srcx, srcy, srcwidth, srcheight, + srcUnit)); + } + Status DrawImage(Image *image, INT x, INT y, INT srcx, INT srcy, + INT srcwidth, INT srcheight, Unit srcUnit) + { + return updateStatus(DllExports::GdipDrawImagePointRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, srcx, srcy, srcwidth, srcheight, + srcUnit)); + } + Status DrawImage(Image *image, const RectF& destRect, + REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRect( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const Rect& destRect, + INT srcx, INT srcy, INT srcwidth, INT srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const RectF& destRect, + const RectF& sourceRect, Unit srcUnit, + const ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + sourceRect.X, sourceRect.Y, + sourceRect.Width, sourceRect.Height, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + NULL, NULL)); + } + Status DrawImage(Image *image, const PointF *destPoints, INT count, + REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImagePointsRect( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const Point *destPoints, INT count, + INT srcx, INT srcy, INT srcwidth, INT srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImagePointsRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + // TODO: [GDI+ 1.1] Graphics::DrawImage(..Effect..) + //Status DrawImage(Image *image, RectF *sourceRect, Matrix *matrix, + // Effect *effect, ImageAttributes *imageAttributes, + // Unit srcUnit) + //{ + // return updateStatus(DllExports::GdipDrawImageFX( + // nativeGraphics, + // image ? image->nativeImage : NULL, + // sourceRect, + // matrix ? matrix->nativeMatrix : NULL, + // effect ? effect->nativeEffect : NULL, + // imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + // srcUnit)); + //} + Status DrawLine(const Pen *pen, REAL x1, REAL y1, REAL x2, REAL y2) + { + return updateStatus(DllExports::GdipDrawLine( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2)); + } + Status DrawLine(const Pen *pen, INT x1, INT y1, INT x2, INT y2) + { + return updateStatus(DllExports::GdipDrawLineI( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2)); + } + Status DrawLine(const Pen *pen, const PointF& pt1, const PointF& pt2) + { + return updateStatus(DllExports::GdipDrawLine( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status DrawLine(const Pen *pen, const Point& pt1, const Point& pt2) + { + return updateStatus(DllExports::GdipDrawLineI( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status DrawLines(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawLines( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawLines(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawLinesI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawPath(const Pen *pen, const GraphicsPath *path) + { + return updateStatus(DllExports::GdipDrawPath( + nativeGraphics, pen ? pen->nativePen : NULL, + path ? path->nativePath : NULL)); + } + Status DrawPie(const Pen *pen, REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPie( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPieI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPie( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPieI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawPolygon(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawPolygon( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawPolygon(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawPolygonI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawRectangle(const Pen *pen, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawRectangle( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawRectangle(const Pen *pen, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawRectangleI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawRectangle(const Pen *pen, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawRectangle( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawRectangle(const Pen *pen, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawRectangleI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawRectangles(const Pen *pen, const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipDrawRectangles( + nativeGraphics, pen ? pen->nativePen : NULL, + rects, count)); + } + Status DrawRectangles(const Pen *pen, const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipDrawRectanglesI( + nativeGraphics, pen ? pen->nativePen : NULL, + rects, count)); + } + Status DrawString(const WCHAR *string, INT length, const Font *font, + const PointF& origin, const Brush *brush) + { + RectF layoutRect(origin.X, origin.Y, 0.0f, 0.0f); + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, + brush ? brush->nativeBrush : NULL)); + } + Status DrawString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + const StringFormat *stringFormat, const Brush *brush) + { + RectF layoutRect(origin.X, origin.Y, 0.0f, 0.0f); + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + brush ? brush->nativeBrush : NULL)); + } + Status DrawString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, const Brush *brush) + { + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + brush ? brush->nativeBrush : NULL)); + } + Status EndContainer(GraphicsContainer state) + { + return updateStatus(DllExports::GdipEndContainer( + nativeGraphics, state)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF& destPoint, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPoint( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point& destPoint, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPointI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const RectF& destRect, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestRect( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Rect& destRect, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestRectI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF *destPoints, INT count, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPoints( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point *destPoints, INT count, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPointsI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF& destPoint, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoint( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point& destPoint, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const RectF& destRect, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestRect( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Rect& destRect, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestRectI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF* destPoints, INT count, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoints( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point* destPoints, INT count, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointsI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status ExcludeClip(const RectF& rect) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeExclude)); + } + Status ExcludeClip(const Rect& rect) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeExclude)); + } + Status ExcludeClip(const Region *region) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + CombineModeExclude)); + } + Status FillClosedCurve(const Brush *brush, + const PointF *points, INT count) + { + return updateStatus(DllExports::GdipFillClosedCurve( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count)); + } + Status FillClosedCurve(const Brush *brush, + const Point *points, INT count) + { + return updateStatus(DllExports::GdipFillClosedCurveI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count)); + } + Status FillClosedCurve(const Brush *brush, + const PointF *points, INT count, + FillMode fillMode, REAL tension = 0.5f) + { + return updateStatus(DllExports::GdipFillClosedCurve2( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, tension, fillMode)); + } + Status FillClosedCurve(const Brush *brush, + const Point *points, INT count, + FillMode fillMode, REAL tension = 0.5f) + { + return updateStatus(DllExports::GdipFillClosedCurve2I( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, tension, fillMode)); + } + Status FillEllipse(const Brush *brush, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipFillEllipse( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillEllipse(const Brush *brush, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipFillEllipseI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillEllipse(const Brush *brush, const RectF& rect) + { + return updateStatus(DllExports::GdipFillEllipse( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillEllipse(const Brush *brush, const Rect& rect) + { + return updateStatus(DllExports::GdipFillEllipseI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillPath(const Brush *brush, const GraphicsPath *path) + { + return updateStatus(DllExports::GdipFillPath( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + path ? path->nativePath : NULL)); + } + Status FillPie(const Brush *brush, + REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPie( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPieI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPie( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPieI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status FillPolygon(const Brush *brush, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipFillPolygon( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, FillModeAlternate)); + } + Status FillPolygon(const Brush *brush, const Point *points, INT count) + { + return updateStatus(DllExports::GdipFillPolygonI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, FillModeAlternate)); + } + Status FillPolygon(const Brush *brush, const PointF *points, INT count, + FillMode fillMode) + { + return updateStatus(DllExports::GdipFillPolygon( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, fillMode)); + } + Status FillPolygon(const Brush *brush, const Point *points, INT count, + FillMode fillMode) + { + return updateStatus(DllExports::GdipFillPolygonI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, fillMode)); + } + Status FillRectangle(const Brush *brush, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipFillRectangle( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillRectangle(const Brush *brush, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipFillRectangleI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillRectangle(const Brush *brush, const RectF& rect) + { + return updateStatus(DllExports::GdipFillRectangle( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillRectangle(const Brush *brush, const Rect& rect) + { + return updateStatus(DllExports::GdipFillRectangleI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillRectangles(const Brush *brush, const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipFillRectangles( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rects, count)); + } + Status FillRectangles(const Brush *brush, const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipFillRectanglesI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rects, count)); + } + Status FillRegion(const Brush *brush, const Region *region) + { + return updateStatus(DllExports::GdipFillRegion( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + region ? region->nativeRegion : NULL)); + } + VOID Flush(FlushIntention intention = FlushIntentionFlush) + { + updateStatus(DllExports::GdipFlush(nativeGraphics, intention)); + } + Status GetClip(Region *region) const + { + return updateStatus(DllExports::GdipGetClip( + nativeGraphics, + region ? region->nativeRegion : NULL)); + } + Status GetClipBounds(RectF *rect) const + { + return updateStatus(DllExports::GdipGetClipBounds( + nativeGraphics, rect)); + } + Status GetClipBounds(Rect *rect) const + { + return updateStatus(DllExports::GdipGetClipBoundsI( + nativeGraphics, rect)); + } + CompositingMode GetCompositingMode() const + { + CompositingMode result = CompositingModeSourceOver; + updateStatus(DllExports::GdipGetCompositingMode( + nativeGraphics, &result)); + return result; + } + CompositingQuality GetCompositingQuality() const + { + CompositingQuality result = CompositingQualityDefault; + updateStatus(DllExports::GdipGetCompositingQuality( + nativeGraphics, &result)); + return result; + } + REAL GetDpiX() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetDpiX(nativeGraphics, &result)); + return result; + } + REAL GetDpiY() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetDpiY(nativeGraphics, &result)); + return result; + } + HDC GetHDC() + { + HDC result = NULL; + updateStatus(DllExports::GdipGetDC(nativeGraphics, &result)); + return result; + } + InterpolationMode GetInterpolationMode() const + { + InterpolationMode result = InterpolationModeDefault; + updateStatus(DllExports::GdipGetInterpolationMode( + nativeGraphics, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status GetNearestColor(Color *color) const + { + return updateStatus(DllExports::GdipGetNearestColor( + nativeGraphics, color ? &color->Value : NULL)); + } + REAL GetPageScale() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetPageScale( + nativeGraphics, &result)); + return result; + } + Unit GetPageUnit() const + { + Unit result = UnitWorld; + updateStatus(DllExports::GdipGetPageUnit( + nativeGraphics, &result)); + return result; + } + PixelOffsetMode GetPixelOffsetMode() const + { + PixelOffsetMode result = PixelOffsetModeDefault; + updateStatus(DllExports::GdipGetPixelOffsetMode( + nativeGraphics, &result)); + return result; + } + Status GetRenderingOrigin(INT *x, INT *y) const + { + return updateStatus(DllExports::GdipGetRenderingOrigin( + nativeGraphics, x, y)); + } + SmoothingMode GetSmoothingMode() const + { + SmoothingMode result = SmoothingModeDefault; + updateStatus(DllExports::GdipGetSmoothingMode( + nativeGraphics, &result)); + return result; + } + UINT GetTextContrast() const + { + UINT result = 0; + updateStatus(DllExports::GdipGetTextContrast( + nativeGraphics, &result)); + return result; + } + TextRenderingHint GetTextRenderingHint() const + { + TextRenderingHint result = TextRenderingHintSystemDefault; + updateStatus(DllExports::GdipGetTextRenderingHint( + nativeGraphics, &result)); + return result; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL)); + } + Status GetVisibleClipBounds(RectF *rect) const + { + return updateStatus(DllExports::GdipGetVisibleClipBounds( + nativeGraphics, rect)); + } + Status GetVisibleClipBounds(Rect *rect) const + { + return updateStatus(DllExports::GdipGetVisibleClipBoundsI( + nativeGraphics, rect)); + } + Status IntersectClip(const RectF& rect) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeIntersect)); + } + Status IntersectClip(const Rect& rect) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeIntersect)); + } + Status IntersectClip(const Region *region) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + CombineModeIntersect)); + } + BOOL IsClipEmpty() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsClipEmpty( + nativeGraphics, &result)); + return result; + } + BOOL IsVisible(REAL x, REAL y) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePoint( + nativeGraphics, x, y, &result)); + return result; + } + BOOL IsVisible(INT x, INT y) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePointI( + nativeGraphics, x, y, &result)); + return result; + } + BOOL IsVisible(const PointF& point) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePoint( + nativeGraphics, point.X, point.Y, &result)); + return result; + } + BOOL IsVisible(const Point& point) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePointI( + nativeGraphics, point.X, point.Y, &result)); + return result; + } + BOOL IsVisible(REAL x, REAL y, REAL width, REAL height) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRect( + nativeGraphics, x, y, width, height, &result)); + return result; + } + BOOL IsVisible(INT x, INT y, INT width, INT height) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRectI( + nativeGraphics, x, y, width, height, &result)); + return result; + } + BOOL IsVisible(const RectF& rect) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRect( + nativeGraphics, rect.X, rect.Y, + rect.Width, rect.Height, &result)); + return result; + } + BOOL IsVisible(const Rect& rect) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRectI( + nativeGraphics, rect.X, rect.Y, + rect.Width, rect.Height, &result)); + return result; + } + BOOL IsVisibleClipEmpty() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleClipEmpty( + nativeGraphics, &result)); + return result; + } + Status MeasureCharacterRanges(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, + INT regionCount, Region *regions) const + { + if (regionCount <= 0 || !regions) + return lastStatus = InvalidParameter; + + GpRegion **nativeRegionArray = (GpRegion**) + DllExports::GdipAlloc(regionCount * sizeof(GpRegion*)); + if (!nativeRegionArray) + return lastStatus = OutOfMemory; + for (int i = 0; i < regionCount; ++i) { + nativeRegionArray[i] = regions[i].nativeRegion; + } + Status status = updateStatus(DllExports::GdipMeasureCharacterRanges( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + regionCount, nativeRegionArray)); + DllExports::GdipFree(nativeRegionArray); + return status; + } + Status MeasureDriverString(const UINT16 *text, INT length, + const Font *font, const PointF *positions, INT flags, + const Matrix *matrix, RectF *boundingBox) const + { + return updateStatus(DllExports::GdipMeasureDriverString( + nativeGraphics, text, length, + font ? font->nativeFont : NULL, + positions, flags, + matrix ? matrix->nativeMatrix : NULL, + boundingBox)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + RectF *boundingBox) const + { + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, boundingBox, NULL, NULL)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, RectF *boundingBox, + INT *codepointsFitted = NULL, + INT *linesFitted = NULL) const + { + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + boundingBox, codepointsFitted, linesFitted)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const SizeF& layoutRectSize, + const StringFormat *stringFormat, SizeF *size, + INT *codepointsFitted = NULL, + INT *linesFitted = NULL) const + { + if (!size) return lastStatus = InvalidParameter; + RectF layoutRect(PointF(0.0f, 0.0f), layoutRectSize); + RectF boundingBox; + Status status = updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + &boundingBox, codepointsFitted, linesFitted)); + boundingBox.GetSize(size); + return status; + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + RectF *boundingBox) const + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, boundingBox, NULL, NULL)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + const StringFormat *stringFormat, + RectF *boundingBox) const + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + boundingBox, NULL, NULL)); + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL, order)); + } + VOID ReleaseHDC(HDC hdc) + { + updateStatus(DllExports::GdipReleaseDC(nativeGraphics, hdc)); + } + Status ResetClip() + { + return updateStatus(DllExports::GdipResetClip(nativeGraphics)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetWorldTransform( + nativeGraphics)); + } + Status Restore(GraphicsState state) + { + return updateStatus(DllExports::GdipRestoreGraphics( + nativeGraphics, state)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateWorldTransform( + nativeGraphics, angle, order)); + } + GraphicsState Save() const + { + GraphicsState result = 0; + updateStatus(DllExports::GdipSaveGraphics( + nativeGraphics, &result)); + return result; + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleWorldTransform( + nativeGraphics, sx, sy, order)); + } + VOID SetAbort() + { + updateStatus(NotImplemented); + } + Status SetClip(const Graphics *g, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipGraphics( + nativeGraphics, g ? g->nativeGraphics : NULL, + combineMode)); + } + Status SetClip(const RectF& rect, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + combineMode)); + } + Status SetClip(const Rect& rect, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + combineMode)); + } + Status SetClip(const GraphicsPath *path, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipPath( + nativeGraphics, + path ? path->nativePath : NULL, + combineMode)); + } + Status SetClip(const Region *region, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + combineMode)); + } + Status SetClip(HRGN hRgn, CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipHrgn( + nativeGraphics, hRgn, combineMode)); + } + Status SetCompositingMode(CompositingMode compositingMode) + { + return updateStatus(DllExports::GdipSetCompositingMode( + nativeGraphics, compositingMode)); + } + Status SetCompositingQuality(CompositingQuality compositingQuality) + { + return updateStatus(DllExports::GdipSetCompositingQuality( + nativeGraphics, compositingQuality)); + } + Status SetInterpolationMode(InterpolationMode interpolationMode) + { + return updateStatus(DllExports::GdipSetInterpolationMode( + nativeGraphics, interpolationMode)); + } + Status SetPageScale(REAL scale) + { + return updateStatus(DllExports::GdipSetPageScale( + nativeGraphics, scale)); + } + Status SetPageUnit(Unit unit) + { + return updateStatus(DllExports::GdipSetPageUnit( + nativeGraphics, unit)); + } + Status SetPixelOffsetMode(PixelOffsetMode pixelOffsetMode) + { + return updateStatus(DllExports::GdipSetPixelOffsetMode( + nativeGraphics, pixelOffsetMode)); + } + Status SetRenderingOrigin(INT x, INT y) + { + return updateStatus(DllExports::GdipSetRenderingOrigin( + nativeGraphics, x, y)); + } + Status SetSmoothingMode(SmoothingMode smoothingMode) + { + return updateStatus(DllExports::GdipSetSmoothingMode( + nativeGraphics, smoothingMode)); + } + Status SetTextContrast(UINT contrast) + { + return updateStatus(DllExports::GdipSetTextContrast( + nativeGraphics, contrast)); + } + Status SetTextRenderingHint(TextRenderingHint textRenderingHint) + { + return updateStatus(DllExports::GdipSetTextRenderingHint( + nativeGraphics, textRenderingHint)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL)); + } + Status TransformPoints(CoordinateSpace destSpace, + CoordinateSpace srcSpace, + PointF *pts, INT count) const + { + return updateStatus(DllExports::GdipTransformPoints( + nativeGraphics, destSpace, srcSpace, + pts, count)); + } + Status TransformPoints(CoordinateSpace destSpace, + CoordinateSpace srcSpace, + Point *pts, INT count) const + { + return updateStatus(DllExports::GdipTransformPointsI( + nativeGraphics, destSpace, srcSpace, + pts, count)); + } + Status TranslateClip(REAL dx, REAL dy) + { + return updateStatus(DllExports::GdipTranslateClip( + nativeGraphics, dx, dy)); + } + Status TranslateClip(INT dx, INT dy) + { + return updateStatus(DllExports::GdipTranslateClipI( + nativeGraphics, dx, dy)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateWorldTransform( + nativeGraphics, dx, dy, order)); + } + +private: + Graphics(const Graphics&); + Graphics& operator=(const Graphics&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpGraphics *nativeGraphics; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_GRAPHICS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusheaders.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusheaders.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,581 @@ +/* + * gdiplusheaders.h + * + * GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection, + * FontFamily, Image, InstalledFontCollection, PrivateFontCollection, + * Region class definitions. + * Implementation of these classes is in gdiplusimpl.h. + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_HEADERS_H +#define __GDIPLUS_HEADERS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusheaders.h." +#endif + +/* + * Note: Virtual inline functions (dtors, Clone()) are implemented here: If + * these were defined outside class scope, the compiler would always generate + * code for them (and the vtable), even if these classes were never used. + */ + +class Bitmap; +class Effect; +class FontCollection; +class FontFamily; +class Graphics; +class GraphicsPath; +class Matrix; +class Pen; + +class Image: public GdiplusBase +{ + friend class Bitmap; + friend class Metafile; + friend class CachedBitmap; + friend class Graphics; + friend class TextureBrush; + +public: + static Image* FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement = FALSE); + static Image* FromStream(IStream *stream, + BOOL useEmbeddedColorManagement = FALSE); + + Image(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); + Image(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); + + virtual ~Image() + { + DllExports::GdipDisposeImage(nativeImage); + } + virtual Image* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Image *result = new Image(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status FindFirstItem(ImageItemData *item); + Status FindNextItem(ImageItemData *item); + Status GetAllPropertyItems(UINT totalBufferSize, + UINT numProperties, PropertyItem *allItems); + Status GetBounds(RectF *srcRect, Unit *srcUnit); + Status GetEncoderParameterList(const CLSID *clsidEncoder, + UINT size, EncoderParameters *buffer); + UINT GetEncoderParameterListSize(const CLSID *clsidEncoder); + UINT GetFlags(); + UINT GetFrameCount(const GUID *dimensionID); + UINT GetFrameDimensionsCount(); + Status GetFrameDimensionsList(GUID *dimensionIDs, UINT count); + UINT GetHeight(); + REAL GetHorizontalResolution(); + Status GetItemData(ImageItemData *item); + Status GetPalette(ColorPalette *palette, INT size); + INT GetPaletteSize(); + Status GetPhysicalDimension(SizeF *size); + PixelFormat GetPixelFormat(); + UINT GetPropertyCount(); + Status GetPropertyIdList(UINT numOfProperty, PROPID *list); + Status GetPropertyItem(PROPID propId, UINT propSize, + PropertyItem *buffer); + UINT GetPropertyItemSize(PROPID propId); + Status GetPropertySize(UINT *totalBufferSize, UINT *numProperties); + Status GetRawFormat(GUID *format); + Image* GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, + GetThumbnailImageAbort callback, VOID *callbackData); + ImageType GetType() const; + REAL GetVerticalResolution(); + UINT GetWidth(); + Status RemovePropertyItem(PROPID propId); + Status RotateFlip(RotateFlipType rotateFlipType); + Status Save(IStream *stream, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams); + Status Save(const WCHAR *filename, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams); + Status SaveAdd(const EncoderParameters *encoderParams); + Status SaveAdd(Image *newImage, const EncoderParameters *encoderParams); + Status SelectActiveFrame(const GUID *dimensionID, UINT frameIndex); + Status SetAbort(GdiplusAbort *pIAbort); + Status SetPalette(const ColorPalette *palette); + Status SetPropertyItem(const PropertyItem *item); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + Image(GpImage *image, Status status): + nativeImage(image), lastStatus(status) {} + Image(const Image&); + Image& operator=(const Image&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpImage *nativeImage; + mutable Status lastStatus; +}; + +class Bitmap: public Image +{ +public: + static Bitmap* FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo, + VOID *gdiBitmapData); + static Bitmap* FromDirectDrawSurface7(IDirectDrawSurface7 *surface); + static Bitmap* FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement = FALSE); + static Bitmap* FromHBITMAP(HBITMAP hbm, HPALETTE hpal); + static Bitmap* FromHICON(HICON icon); + static Bitmap* FromResource(HINSTANCE hInstance, + const WCHAR *bitmapName); + static Bitmap* FromStream(IStream *stream, + BOOL useEmbeddedColorManagement = FALSE); + static Status ApplyEffect(Bitmap **inputs, INT numInputs, + Effect *effect, RECT *ROI, + RECT *outputRect, Bitmap **output); + static Status InitializePalette(ColorPalette *palette, + PaletteType paletteType, INT optimalColors, + BOOL useTransparentColor, Bitmap *bitmap); + + Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData); + Bitmap(IDirectDrawSurface7 *surface); + Bitmap(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); + Bitmap(HBITMAP hbm, HPALETTE hpal); + Bitmap(HICON hicon); + Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName); + Bitmap(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); + Bitmap(INT width, INT height, Graphics *target); + Bitmap(INT width, INT height, PixelFormat format = PixelFormat32bppARGB); + Bitmap(INT width, INT height, INT stride, PixelFormat format, BYTE *scan0); + + virtual ~Bitmap() + { + } + virtual Bitmap* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Bitmap* Clone(const RectF& rect, PixelFormat format) const; + Bitmap* Clone(const Rect& rect, PixelFormat format) const; + Bitmap* Clone(REAL x, REAL y, REAL width, REAL height, + PixelFormat format) const; + Bitmap* Clone(INT x, INT y, INT width, INT height, + PixelFormat format) const; + + Status ApplyEffect(Effect *effect, RECT *ROI); + Status ConvertFormat(PixelFormat format, DitherType ditherType, + PaletteType paletteType, ColorPalette *palette, + REAL alphaThresholdPercent); + Status GetHBITMAP(const Color& colorBackground, HBITMAP *hbmReturn) const; + Status GetHICON(HICON *icon) const; + Status GetHistogram(HistogramFormat format, UINT numberOfEntries, + UINT *channel0, UINT *channel1, + UINT *channel2, UINT *channel3) const; + Status GetHistogramSize(HistogramFormat format, + UINT *numberOfEntries) const; + Status GetPixel(INT x, INT y, Color *color) const; + Status LockBits(const Rect *rect, UINT flags, PixelFormat format, + BitmapData *lockedBitmapData); + Status SetPixel(INT x, INT y, const Color& color); + Status SetResolution(REAL xdpi, REAL ydpi); + Status UnlockBits(BitmapData *lcokedBitmapData); + +private: + Bitmap(GpImage *image, Status status): Image(image, status) {} + Bitmap(const Bitmap&); + Bitmap& operator=(const Bitmap&); +}; + +class CachedBitmap: public GdiplusBase +{ + friend class Graphics; + +public: + CachedBitmap(Bitmap *bitmap, Graphics *graphics); + ~CachedBitmap(); + + Status GetLastStatus() const + { + return lastStatus; + } + +private: + CachedBitmap(const CachedBitmap&); + CachedBitmap& operator=(const CachedBitmap&); + + GpCachedBitmap *nativeCachedBitmap; + Status lastStatus; +}; + +class CustomLineCap: public GdiplusBase +{ + friend class AdjustableArrowCap; + friend class Pen; + +public: + CustomLineCap(const GraphicsPath *fillPath, + const GraphicsPath *strokePath, + LineCap baseCap = LineCapFlat, + REAL baseInset = 0.0f); + + virtual ~CustomLineCap() + { + DllExports::GdipDeleteCustomLineCap(nativeCustomLineCap); + } + virtual CustomLineCap* Clone() const + { + GpCustomLineCap *cloneCustomLineCap = NULL; + Status status = updateStatus(DllExports::GdipCloneCustomLineCap( + nativeCustomLineCap, &cloneCustomLineCap)); + if (status == Ok) { + CustomLineCap *result = new CustomLineCap( + cloneCustomLineCap, lastStatus); + if (!result) { + DllExports::GdipDeleteCustomLineCap(cloneCustomLineCap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + LineCap GetBaseCap() const; + REAL GetBaseInset() const; + Status GetStrokeCaps(LineCap *startCap, LineCap *endCap) const; + LineJoin GetStrokeJoin() const; + REAL GetWidthScale() const; + Status SetBaseCap(LineCap baseCap); + Status SetBaseInset(REAL inset); + Status SetStrokeCap(LineCap strokeCap); + Status SetStrokeCaps(LineCap startCap, LineCap endCap); + Status SetStrokeJoin(LineJoin lineJoin); + Status SetWidthScale(REAL widthScale); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + CustomLineCap(GpCustomLineCap *customLineCap, Status status): + nativeCustomLineCap(customLineCap), lastStatus(status) {} + CustomLineCap(const CustomLineCap&); + CustomLineCap& operator=(const CustomLineCap&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpCustomLineCap *nativeCustomLineCap; + mutable Status lastStatus; +}; + +class Font: public GdiplusBase +{ + friend class Graphics; + +public: + Font(const FontFamily *family, REAL emSize, + INT style = FontStyleRegular, + Unit unit = UnitPoint); + Font(HDC hdc, HFONT hfont); + Font(HDC hdc, const LOGFONTA *logfont); + Font(HDC hdc, const LOGFONTW *logfont); + Font(HDC hdc); + Font(const WCHAR *familyName, REAL emSize, + INT style = FontStyleRegular, + Unit unit = UnitPoint, + const FontCollection *fontCollection = NULL); + ~Font(); + Font* Clone() const; + + Status GetFamily(FontFamily *family) const; + REAL GetHeight(const Graphics *graphics) const; + REAL GetHeight(REAL dpi) const; + Status GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) const; + Status GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) const; + REAL GetSize() const; + INT GetStyle() const; + Unit GetUnit() const; + + Status GetLastStatus() const + { + return lastStatus; + } + BOOL IsAvailable() const + { + return nativeFont != NULL; + } + +private: + Font(GpFont *font, Status status): + nativeFont(font), lastStatus(status) {} + Font(const Font&); + Font& operator=(const Font&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpFont *nativeFont; + mutable Status lastStatus; +}; + +class FontCollection: public GdiplusBase +{ + friend class InstalledFontCollection; + friend class PrivateFontCollection; + friend class Font; + friend class FontFamily; + +public: + FontCollection(); + virtual ~FontCollection() {} + + Status GetFamilies(INT numSought, FontFamily *families, + INT *numFound) const; + INT GetFamilyCount() const; + + Status GetLastStatus() const + { + return lastStatus; + } + +private: + FontCollection(const FontCollection&); + FontCollection& operator=(const FontCollection&); + + Status updateStatus(Status newStatus) const + { + return lastStatus = newStatus; + } + + GpFontCollection *nativeFontCollection; + mutable Status lastStatus; +}; + +class FontFamily: public GdiplusBase +{ + friend class Font; + friend class FontCollection; + friend class GraphicsPath; + +public: + static const FontFamily* GenericMonospace(); + static const FontFamily* GenericSansSerif(); + static const FontFamily* GenericSerif(); + + FontFamily(); + FontFamily(const WCHAR *name, + const FontCollection *fontCollection = NULL); + ~FontFamily(); + FontFamily* Clone() const; + + UINT16 GetCellAscent(INT style) const; + UINT16 GetCellDescent(INT style) const; + UINT16 GetEmHeight(INT style) const; + Status GetFamilyName(WCHAR name[LF_FACESIZE], + LANGID language = LANG_NEUTRAL) const; + UINT16 GetLineSpacing(INT style) const; + BOOL IsStyleAvailable(INT style) const; + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + BOOL IsAvailable() const + { + return nativeFontFamily != NULL; + } + +private: + FontFamily(GpFontFamily *fontFamily, Status status): + nativeFontFamily(fontFamily), lastStatus(status) {} + FontFamily(const FontFamily&); + FontFamily& operator=(const FontFamily&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpFontFamily *nativeFontFamily; + mutable Status lastStatus; +}; + +class InstalledFontCollection: public FontCollection +{ +public: + InstalledFontCollection(); + virtual ~InstalledFontCollection() {} +}; + +class PrivateFontCollection: public FontCollection +{ +public: + PrivateFontCollection(); + + virtual ~PrivateFontCollection() + { + DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection); + } + + Status AddFontFile(const WCHAR *filename); + Status AddMemoryFont(const VOID *memory, INT length); +}; + +class Region: public GdiplusBase +{ + friend class Graphics; + +public: + static Region* FromHRGN(HRGN hrgn); + + Region(); + Region(const RectF& rect); + Region(const Rect& rect); + Region(const GraphicsPath *path); + Region(const BYTE *regionData, INT size); + Region(HRGN hrgn); + ~Region(); + Region* Clone() const; + + Status Complement(const RectF& rect); + Status Complement(const Rect& rect); + Status Complement(const Region *region); + Status Complement(const GraphicsPath *path); + BOOL Equals(const Region *region, const Graphics *graphics) const; + Status Exclude(const RectF& rect); + Status Exclude(const Rect& rect); + Status Exclude(const Region *region); + Status Exclude(const GraphicsPath *path); + Status GetBounds(RectF *rect, const Graphics *graphics) const; + Status GetBounds(Rect *rect, const Graphics *graphics) const; + Status GetData(BYTE *buffer, UINT bufferSize, UINT *sizeFilled) const; + UINT GetDataSize() const; + HRGN GetHRGN(const Graphics *graphics) const; + Status GetRegionScans(const Matrix *matrix, + RectF *rects, INT *count) const; + Status GetRegionScans(const Matrix *matrix, + Rect *rects, INT *count) const; + UINT GetRegionScansCount(const Matrix *matrix) const; + Status Intersect(const RectF& rect); + Status Intersect(const Rect& rect); + Status Intersect(const Region *region); + Status Intersect(const GraphicsPath *path); + BOOL IsEmpty(const Graphics *graphics) const; + BOOL IsInfinite(const Graphics *graphics) const; + BOOL IsVisible(REAL x, REAL y, + const Graphics *graphics = NULL) const; + BOOL IsVisible(INT x, INT y, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const PointF& point, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const Point& point, + const Graphics *graphics = NULL) const; + BOOL IsVisible(REAL x, REAL y, REAL width, REAL height, + const Graphics *graphics = NULL) const; + BOOL IsVisible(INT x, INT y, INT width, INT height, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const RectF& rect, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const Rect& rect, + const Graphics *graphics = NULL) const; + Status MakeEmpty(); + Status MakeInfinite(); + Status Transform(const Matrix *matrix); + Status Translate(REAL dx, REAL dy); + Status Translate(INT dx, INT dy); + Status Union(const RectF& rect); + Status Union(const Rect& rect); + Status Union(const Region *region); + Status Union(const GraphicsPath *path); + Status Xor(const RectF& rect); + Status Xor(const Rect& rect); + Status Xor(const Region *region); + Status Xor(const GraphicsPath *path); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + Region(GpRegion *region, Status status): + nativeRegion(region), lastStatus(status) {} + Region(const Region&); + Region& operator=(const Region&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpRegion *nativeRegion; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_HEADERS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusimageattributes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusimageattributes.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,236 @@ +/* + * gdiplusimageattributes.h + * + * GDI+ ImageAttributes class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGEATTRIBUTES_H +#define __GDIPLUS_IMAGEATTRIBUTES_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusimageattributes.h." +#endif + +class ImageAttributes: public GdiplusBase +{ + friend class Graphics; + friend class TextureBrush; + +public: + ImageAttributes(): nativeImageAttributes(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateImageAttributes( + &nativeImageAttributes); + } + ~ImageAttributes() + { + DllExports::GdipDisposeImageAttributes(nativeImageAttributes); + } + ImageAttributes* Clone() const + { + GpImageAttributes *cloneImageAttributes = NULL; + Status status = updateStatus(DllExports::GdipCloneImageAttributes( + nativeImageAttributes, &cloneImageAttributes)); + if (status == Ok) { + ImageAttributes *result = new ImageAttributes( + cloneImageAttributes, lastStatus); + if (!result) { + DllExports::GdipDisposeImageAttributes(cloneImageAttributes); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status ClearBrushRemapTable() + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, ColorAdjustTypeBrush, + FALSE, 0, NULL)); + } + Status ClearColorKey(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorKeys( + nativeImageAttributes, type, FALSE, 0, 0)); + } + Status ClearColorMatrices(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, FALSE, + NULL, NULL, ColorMatrixFlagsDefault)); + } + Status ClearColorMatrix(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, FALSE, + NULL, NULL, ColorMatrixFlagsDefault)); + } + Status ClearGamma(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesGamma( + nativeImageAttributes, type, FALSE, 1.0f)); + } + Status ClearNoOp(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesNoOp( + nativeImageAttributes, type, FALSE)); + } + Status ClearOutputChannel(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( + nativeImageAttributes, type, FALSE, + ColorChannelFlagsC)); + } + Status ClearOutputChannelColorProfile( + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( + nativeImageAttributes, type, FALSE, NULL)); + } + Status ClearRemapTable(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, type, FALSE, 0, NULL)); + } + Status ClearThreshold(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesThreshold( + nativeImageAttributes, type, FALSE, 0.0)); + } + Status GetAdjustedPalette(ColorPalette *colorPalette, + ColorAdjustType type) const + { + return updateStatus(DllExports::GdipGetImageAttributesAdjustedPalette( + nativeImageAttributes, colorPalette, type)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status Reset(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipResetImageAttributes( + nativeImageAttributes, type)); + } + Status SetBrushRemapTable(UINT mapSize, ColorMap *map) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, ColorAdjustTypeBrush, + TRUE, mapSize, map)); + } + Status SetColorKey(const Color& colorLow, const Color& colorHigh, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorKeys( + nativeImageAttributes, type, TRUE, + colorLow.GetValue(), colorHigh.GetValue())); + } + Status SetColorMatrices(const ColorMatrix *colorMatrix, + const ColorMatrix *grayMatrix, + ColorMatrixFlags mode = ColorMatrixFlagsDefault, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, TRUE, + colorMatrix, grayMatrix, mode)); + } + Status SetColorMatrix(const ColorMatrix *colorMatrix, + ColorMatrixFlags mode = ColorMatrixFlagsDefault, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, TRUE, + colorMatrix, NULL, mode)); + } + Status SetGamma(REAL gamma, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesGamma( + nativeImageAttributes, type, TRUE, gamma)); + } + Status SetNoOp(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesNoOp( + nativeImageAttributes, type, TRUE)); + } + Status SetOutputChannel(ColorChannelFlags channelFlags, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( + nativeImageAttributes, type, TRUE, + channelFlags)); + } + Status SetOutputChannelColorProfile(const WCHAR *colorProfileFilename, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( + nativeImageAttributes, type, TRUE, + colorProfileFilename)); + } + Status SetRemapTable(UINT mapSize, const ColorMap *map, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, type, TRUE, + mapSize, map)); + } + Status SetThreshold(REAL threshold, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesThreshold( + nativeImageAttributes, type, TRUE, threshold)); + } + Status SetToIdentity(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesToIdentity( + nativeImageAttributes, type)); + } + Status SetWrapMode(WrapMode wrap, const Color& color = Color(), + BOOL clamp = FALSE) + { + return updateStatus(DllExports::GdipSetImageAttributesWrapMode( + nativeImageAttributes, wrap, + color.GetValue(), clamp)); + } + +private: + ImageAttributes(GpImageAttributes *imageAttributes, Status status): + nativeImageAttributes(imageAttributes), lastStatus(status) {} + ImageAttributes(const ImageAttributes&); + ImageAttributes& operator=(const ImageAttributes&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpImageAttributes *nativeImageAttributes; + mutable Status lastStatus; +}; + + +#endif /* __GDIPLUS_IMAGEATTRIBUTES_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusimagecodec.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusimagecodec.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,67 @@ +/* + * gdiplusimagecodec.h + * + * GDI+ image decoders and encoders + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGECODEC_H +#define __GDIPLUS_IMAGECODEC_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +static __inline__ GpStatus GetImageDecoders(UINT numDecoders, UINT size, + ImageCodecInfo *decoders) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageDecoders(numDecoders, size, decoders); + #else + return GdipGetImageDecoders(numDecoders, size, decoders); + #endif +} + +static __inline__ GpStatus GetImageDecodersSize(UINT *numDecoders, UINT *size) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageDecodersSize(numDecoders, size); + #else + return GdipGetImageDecodersSize(numDecoders, size); + #endif +} + +static __inline__ GpStatus GetImageEncoders(UINT numEncoders, UINT size, + ImageCodecInfo *encoders) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageEncoders(numEncoders, size, encoders); + #else + return GdipGetImageEncoders(numEncoders, size, encoders); + #endif +} + +static __inline__ GpStatus GetImageEncodersSize(UINT *numEncoders, UINT *size) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageEncodersSize(numEncoders, size); + #else + return GdipGetImageEncodersSize(numEncoders, size); + #endif +} + +#endif /* __GDIPLUS_IMAGECODEC_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusimaging.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusimaging.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,411 @@ +/* + * gdiplusimaging.h + * + * GDI+ Imaging and image metadata + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGING_H +#define __GDIPLUS_IMAGING_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ImageCodecFlags { + ImageCodecFlagsEncoder = 0x00000001, + ImageCodecFlagsDecoder = 0x00000002, + ImageCodecFlagsSupportBitmap = 0x00000004, + ImageCodecFlagsSupportVector = 0x00000008, + ImageCodecFlagsSeekableEncode = 0x00000010, + ImageCodecFlagsBlockingDecode = 0x00000020, + ImageCodecFlagsBuiltin = 0x00010000, + ImageCodecFlagsSystem = 0x00020000, + ImageCodecFlagsUser = 0x00040000 +} ImageCodecFlags; + +typedef enum ImageFlags { + ImageFlagsNone = 0, + ImageFlagsScalable = 0x00000001, + ImageFlagsHasAlpha = 0x00000002, + ImageFlagsHasTranslucent = 0x00000004, + ImageFlagsPartiallyScalable = 0x00000008, + ImageFlagsColorSpaceRGB = 0x00000010, + ImageFlagsColorSpaceCMYK = 0x00000020, + ImageFlagsColorSpaceGRAY = 0x00000040, + ImageFlagsColorSpaceYCBCR = 0x00000080, + ImageFlagsColorSpaceYCCK = 0x00000100, + ImageFlagsHasRealDPI = 0x00001000, + ImageFlagsHasRealPixelSize = 0x00002000, + ImageFlagsReadOnly = 0x00010000, + ImageFlagsCaching = 0x00020000 +} ImageFlags; + +typedef enum ImageLockMode { + ImageLockModeRead = 1, + ImageLockModeWrite = 2, + ImageLockModeUserInputBuf = 4 +} ImageLockMode; + +typedef enum ItemDataPosition { + ItemDataPositionAfterHeader = 0, + ItemDataPositionAfterPalette = 1, + ItemDataPositionAfterBits = 2 +} ItemDataPosition; + +typedef enum RotateFlipType { + RotateNoneFlipNone = 0, + Rotate90FlipNone = 1, + Rotate180FlipNone = 2, + Rotate270FlipNone = 3, + RotateNoneFlipX = 4, + Rotate90FlipX = 5, + Rotate180FlipX = 6, + Rotate270FlipX = 7, + Rotate180FlipXY = 0, + Rotate270FlipXY = 1, + RotateNoneFlipXY = 2, + Rotate90FlipXY = 3, + Rotate180FlipY = 4, + Rotate270FlipY = 5, + RotateNoneFlipY = 6, + Rotate90FlipY = 7 +} RotateFlipType; + +typedef struct BitmapData { + UINT Width; + UINT Height; + INT Stride; + INT PixelFormat; /* MSDN: "PixelFormat PixelFormat;" */ + VOID *Scan0; + UINT_PTR Reserved; +} BitmapData; + +typedef struct EncoderParameter { + GUID Guid; + ULONG NumberOfValues; + ULONG Type; + VOID *Value; +} EncoderParameter; + +typedef struct EncoderParameters { + UINT Count; + EncoderParameter Parameter[1]; +} EncoderParameters; + +typedef struct ImageCodecInfo { + CLSID Clsid; + GUID FormatID; + WCHAR *CodecName; + WCHAR *DllName; + WCHAR *FormatDescription; + WCHAR *FilenameExtension; + WCHAR *MimeType; + DWORD Flags; + DWORD Version; + DWORD SigCount; + DWORD SigSize; + BYTE *SigPattern; + BYTE *SigMask; +} ImageCodecInfo; + +/* FIXME: The order of fields is probably wrong. Please don't use this + * structure until this problem is resolved! Can't test because + * ImageItemData is not supported by the redistributable GDI+ 1.0 DLL. */ +typedef struct ImageItemData { + UINT Size; + UINT Position; + VOID *Desc; + UINT DescSize; + UINT *Data; + UINT DataSize; + UINT Cookie; +} ImageItemData; + +typedef struct PropertyItem { + PROPID id; + ULONG length; + WORD type; + VOID *value; +} PropertyItem; + +#define PropertyTagGpsVer ((PROPID) 0x0000) +#define PropertyTagGpsLatitudeRef ((PROPID) 0x0001) +#define PropertyTagGpsLatitude ((PROPID) 0x0002) +#define PropertyTagGpsLongitudeRef ((PROPID) 0x0003) +#define PropertyTagGpsLongitude ((PROPID) 0x0004) +#define PropertyTagGpsAltitudeRef ((PROPID) 0x0005) +#define PropertyTagGpsAltitude ((PROPID) 0x0006) +#define PropertyTagGpsGpsTime ((PROPID) 0x0007) +#define PropertyTagGpsGpsSatellites ((PROPID) 0x0008) +#define PropertyTagGpsGpsStatus ((PROPID) 0x0009) +#define PropertyTagGpsGpsMeasureMode ((PROPID) 0x000A) +#define PropertyTagGpsGpsDop ((PROPID) 0x000B) +#define PropertyTagGpsSpeedRef ((PROPID) 0x000C) +#define PropertyTagGpsSpeed ((PROPID) 0x000D) +#define PropertyTagGpsTrackRef ((PROPID) 0x000E) +#define PropertyTagGpsTrack ((PROPID) 0x000F) +#define PropertyTagGpsImgDirRef ((PROPID) 0x0010) +#define PropertyTagGpsImgDir ((PROPID) 0x0011) +#define PropertyTagGpsMapDatum ((PROPID) 0x0012) +#define PropertyTagGpsDestLatRef ((PROPID) 0x0013) +#define PropertyTagGpsDestLat ((PROPID) 0x0014) +#define PropertyTagGpsDestLongRef ((PROPID) 0x0015) +#define PropertyTagGpsDestLong ((PROPID) 0x0016) +#define PropertyTagGpsDestBearRef ((PROPID) 0x0017) +#define PropertyTagGpsDestBear ((PROPID) 0x0018) +#define PropertyTagGpsDestDistRef ((PROPID) 0x0019) +#define PropertyTagGpsDestDist ((PROPID) 0x001A) +#define PropertyTagNewSubfileType ((PROPID) 0x00FE) +#define PropertyTagSubfileType ((PROPID) 0x00FF) +#define PropertyTagImageWidth ((PROPID) 0x0100) +#define PropertyTagImageHeight ((PROPID) 0x0101) +#define PropertyTagBitsPerSample ((PROPID) 0x0102) +#define PropertyTagCompression ((PROPID) 0x0103) +#define PropertyTagPhotometricInterp ((PROPID) 0x0106) +#define PropertyTagThreshHolding ((PROPID) 0x0107) +#define PropertyTagCellWidth ((PROPID) 0x0108) +#define PropertyTagCellHeight ((PROPID) 0x0109) +#define PropertyTagFillOrder ((PROPID) 0x010A) +#define PropertyTagDocumentName ((PROPID) 0x010D) +#define PropertyTagImageDescription ((PROPID) 0x010E) +#define PropertyTagEquipMake ((PROPID) 0x010F) +#define PropertyTagEquipModel ((PROPID) 0x0110) +#define PropertyTagStripOffsets ((PROPID) 0x0111) +#define PropertyTagOrientation ((PROPID) 0x0112) +#define PropertyTagSamplesPerPixel ((PROPID) 0x0115) +#define PropertyTagRowsPerStrip ((PROPID) 0x0116) +#define PropertyTagStripBytesCount ((PROPID) 0x0117) +#define PropertyTagMinSampleValue ((PROPID) 0x0118) +#define PropertyTagMaxSampleValue ((PROPID) 0x0119) +#define PropertyTagXResolution ((PROPID) 0x011A) +#define PropertyTagYResolution ((PROPID) 0x011B) +#define PropertyTagPlanarConfig ((PROPID) 0x011C) +#define PropertyTagPageName ((PROPID) 0x011D) +#define PropertyTagXPosition ((PROPID) 0x011E) +#define PropertyTagYPosition ((PROPID) 0x011F) +#define PropertyTagFreeOffset ((PROPID) 0x0120) +#define PropertyTagFreeByteCounts ((PROPID) 0x0121) +#define PropertyTagGrayResponseUnit ((PROPID) 0x0122) +#define PropertyTagGrayResponseCurve ((PROPID) 0x0123) +#define PropertyTagT4Option ((PROPID) 0x0124) +#define PropertyTagT6Option ((PROPID) 0x0125) +#define PropertyTagResolutionUnit ((PROPID) 0x0128) +#define PropertyTagPageNumber ((PROPID) 0x0129) +#define PropertyTagTransferFunction ((PROPID) 0x012D) +#define PropertyTagSoftwareUsed ((PROPID) 0x0131) +#define PropertyTagDateTime ((PROPID) 0x0132) +#define PropertyTagArtist ((PROPID) 0x013B) +#define PropertyTagHostComputer ((PROPID) 0x013C) +#define PropertyTagPredictor ((PROPID) 0x013D) +#define PropertyTagWhitePoint ((PROPID) 0x013E) +#define PropertyTagPrimaryChromaticities ((PROPID) 0x013F) +#define PropertyTagColorMap ((PROPID) 0x0140) +#define PropertyTagHalftoneHints ((PROPID) 0x0141) +#define PropertyTagTileWidth ((PROPID) 0x0142) +#define PropertyTagTileLength ((PROPID) 0x0143) +#define PropertyTagTileOffset ((PROPID) 0x0144) +#define PropertyTagTileByteCounts ((PROPID) 0x0145) +#define PropertyTagInkSet ((PROPID) 0x014C) +#define PropertyTagInkNames ((PROPID) 0x014D) +#define PropertyTagNumberOfInks ((PROPID) 0x014E) +#define PropertyTagDotRange ((PROPID) 0x0150) +#define PropertyTagTargetPrinter ((PROPID) 0x0151) +#define PropertyTagExtraSamples ((PROPID) 0x0152) +#define PropertyTagSampleFormat ((PROPID) 0x0153) +#define PropertyTagSMinSampleValue ((PROPID) 0x0154) +#define PropertyTagSMaxSampleValue ((PROPID) 0x0155) +#define PropertyTagTransferRange ((PROPID) 0x0156) +#define PropertyTagJPEGProc ((PROPID) 0x0200) +#define PropertyTagJPEGInterFormat ((PROPID) 0x0201) +#define PropertyTagJPEGInterLength ((PROPID) 0x0202) +#define PropertyTagJPEGRestartInterval ((PROPID) 0x0203) +#define PropertyTagJPEGLosslessPredictors ((PROPID) 0x0205) +#define PropertyTagJPEGPointTransforms ((PROPID) 0x0206) +#define PropertyTagJPEGQTables ((PROPID) 0x0207) +#define PropertyTagJPEGDCTables ((PROPID) 0x0208) +#define PropertyTagJPEGACTables ((PROPID) 0x0209) +#define PropertyTagYCbCrCoefficients ((PROPID) 0x0211) +#define PropertyTagYCbCrSubsampling ((PROPID) 0x0212) +#define PropertyTagYCbCrPositioning ((PROPID) 0x0213) +#define PropertyTagREFBlackWhite ((PROPID) 0x0214) +#define PropertyTagGamma ((PROPID) 0x0301) +#define PropertyTagICCProfileDescriptor ((PROPID) 0x0302) +#define PropertyTagSRGBRenderingIntent ((PROPID) 0x0303) +#define PropertyTagImageTitle ((PROPID) 0x0320) +#define PropertyTagResolutionXUnit ((PROPID) 0x5001) +#define PropertyTagResolutionYUnit ((PROPID) 0x5002) +#define PropertyTagResolutionXLengthUnit ((PROPID) 0x5003) +#define PropertyTagResolutionYLengthUnit ((PROPID) 0x5004) +#define PropertyTagPrintFlags ((PROPID) 0x5005) +#define PropertyTagPrintFlagsVersion ((PROPID) 0x5006) +#define PropertyTagPrintFlagsCrop ((PROPID) 0x5007) +#define PropertyTagPrintFlagsBleedWidth ((PROPID) 0x5008) +#define PropertyTagPrintFlagsBleedWidthScale ((PROPID) 0x5009) +#define PropertyTagHalftoneLPI ((PROPID) 0x500A) +#define PropertyTagHalftoneLPIUnit ((PROPID) 0x500B) +#define PropertyTagHalftoneDegree ((PROPID) 0x500C) +#define PropertyTagHalftoneShape ((PROPID) 0x500D) +#define PropertyTagHalftoneMisc ((PROPID) 0x500E) +#define PropertyTagHalftoneScreen ((PROPID) 0x500F) +#define PropertyTagJPEGQuality ((PROPID) 0x5010) +#define PropertyTagGridSize ((PROPID) 0x5011) +#define PropertyTagThumbnailFormat ((PROPID) 0x5012) +#define PropertyTagThumbnailWidth ((PROPID) 0x5013) +#define PropertyTagThumbnailHeight ((PROPID) 0x5014) +#define PropertyTagThumbnailColorDepth ((PROPID) 0x5015) +#define PropertyTagThumbnailPlanes ((PROPID) 0x5016) +#define PropertyTagThumbnailRawBytes ((PROPID) 0x5017) +#define PropertyTagThumbnailSize ((PROPID) 0x5018) +#define PropertyTagThumbnailCompressedSize ((PROPID) 0x5019) +#define PropertyTagColorTransferFunction ((PROPID) 0x501A) +#define PropertyTagThumbnailData ((PROPID) 0x501B) +#define PropertyTagThumbnailImageWidth ((PROPID) 0x5020) +#define PropertyTagThumbnailImageHeight ((PROPID) 0x5021) +#define PropertyTagThumbnailBitsPerSample ((PROPID) 0x5022) +#define PropertyTagThumbnailCompression ((PROPID) 0x5023) +#define PropertyTagThumbnailPhotometricInterp ((PROPID) 0x5024) +#define PropertyTagThumbnailImageDescription ((PROPID) 0x5025) +#define PropertyTagThumbnailEquipMake ((PROPID) 0x5026) +#define PropertyTagThumbnailEquipModel ((PROPID) 0x5027) +#define PropertyTagThumbnailStripOffsets ((PROPID) 0x5028) +#define PropertyTagThumbnailOrientation ((PROPID) 0x5029) +#define PropertyTagThumbnailSamplesPerPixel ((PROPID) 0x502A) +#define PropertyTagThumbnailRowsPerStrip ((PROPID) 0x502B) +#define PropertyTagThumbnailStripBytesCount ((PROPID) 0x502C) +#define PropertyTagThumbnailResolutionX ((PROPID) 0x502D) +#define PropertyTagThumbnailResolutionY ((PROPID) 0x502E) +#define PropertyTagThumbnailPlanarConfig ((PROPID) 0x502F) +#define PropertyTagThumbnailResolutionUnit ((PROPID) 0x5030) +#define PropertyTagThumbnailTransferFunction ((PROPID) 0x5031) +#define PropertyTagThumbnailSoftwareUsed ((PROPID) 0x5032) +#define PropertyTagThumbnailDateTime ((PROPID) 0x5033) +#define PropertyTagThumbnailArtist ((PROPID) 0x5034) +#define PropertyTagThumbnailWhitePoint ((PROPID) 0x5035) +#define PropertyTagThumbnailPrimaryChromaticities ((PROPID) 0x5036) +#define PropertyTagThumbnailYCbCrCoefficients ((PROPID) 0x5037) +#define PropertyTagThumbnailYCbCrSubsampling ((PROPID) 0x5038) +#define PropertyTagThumbnailYCbCrPositioning ((PROPID) 0x5039) +#define PropertyTagThumbnailRefBlackWhite ((PROPID) 0x503A) +#define PropertyTagThumbnailCopyRight ((PROPID) 0x503B) +#define PropertyTagLuminanceTable ((PROPID) 0x5090) +#define PropertyTagChrominanceTable ((PROPID) 0x5091) +#define PropertyTagFrameDelay ((PROPID) 0x5100) +#define PropertyTagLoopCount ((PROPID) 0x5101) +#define PropertyTagGlobalPalette ((PROPID) 0x5102) +#define PropertyTagIndexBackground ((PROPID) 0x5103) +#define PropertyTagIndexTransparent ((PROPID) 0x5104) +#define PropertyTagPixelUnit ((PROPID) 0x5110) +#define PropertyTagPixelPerUnitX ((PROPID) 0x5111) +#define PropertyTagPixelPerUnitY ((PROPID) 0x5112) +#define PropertyTagPaletteHistogram ((PROPID) 0x5113) +#define PropertyTagCopyright ((PROPID) 0x8298) +#define PropertyTagExifExposureTime ((PROPID) 0x829A) +#define PropertyTagExifFNumber ((PROPID) 0x829D) +#define PropertyTagExifIFD ((PROPID) 0x8769) +#define PropertyTagICCProfile ((PROPID) 0x8773) +#define PropertyTagExifExposureProg ((PROPID) 0x8822) +#define PropertyTagExifSpectralSense ((PROPID) 0x8824) +#define PropertyTagGpsIFD ((PROPID) 0x8825) +#define PropertyTagExifISOSpeed ((PROPID) 0x8827) +#define PropertyTagExifOECF ((PROPID) 0x8828) +#define PropertyTagExifVer ((PROPID) 0x9000) +#define PropertyTagExifDTOrig ((PROPID) 0x9003) +#define PropertyTagExifDTDigitized ((PROPID) 0x9004) +#define PropertyTagExifCompConfig ((PROPID) 0x9101) +#define PropertyTagExifCompBPP ((PROPID) 0x9102) +#define PropertyTagExifShutterSpeed ((PROPID) 0x9201) +#define PropertyTagExifAperture ((PROPID) 0x9202) +#define PropertyTagExifBrightness ((PROPID) 0x9203) +#define PropertyTagExifExposureBias ((PROPID) 0x9204) +#define PropertyTagExifMaxAperture ((PROPID) 0x9205) +#define PropertyTagExifSubjectDist ((PROPID) 0x9206) +#define PropertyTagExifMeteringMode ((PROPID) 0x9207) +#define PropertyTagExifLightSource ((PROPID) 0x9208) +#define PropertyTagExifFlash ((PROPID) 0x9209) +#define PropertyTagExifFocalLength ((PROPID) 0x920A) +#define PropertyTagExifMakerNote ((PROPID) 0x927C) +#define PropertyTagExifUserComment ((PROPID) 0x9286) +#define PropertyTagExifDTSubsec ((PROPID) 0x9290) +#define PropertyTagExifDTOrigSS ((PROPID) 0x9291) +#define PropertyTagExifDTDigSS ((PROPID) 0x9292) +#define PropertyTagExifFPXVer ((PROPID) 0xA000) +#define PropertyTagExifColorSpace ((PROPID) 0xA001) +#define PropertyTagExifPixXDim ((PROPID) 0xA002) +#define PropertyTagExifPixYDim ((PROPID) 0xA003) +#define PropertyTagExifRelatedWav ((PROPID) 0xA004) +#define PropertyTagExifInterop ((PROPID) 0xA005) +#define PropertyTagExifFlashEnergy ((PROPID) 0xA20B) +#define PropertyTagExifSpatialFR ((PROPID) 0xA20C) +#define PropertyTagExifFocalXRes ((PROPID) 0xA20E) +#define PropertyTagExifFocalYRes ((PROPID) 0xA20F) +#define PropertyTagExifFocalResUnit ((PROPID) 0xA210) +#define PropertyTagExifSubjectLoc ((PROPID) 0xA214) +#define PropertyTagExifExposureIndex ((PROPID) 0xA215) +#define PropertyTagExifSensingMethod ((PROPID) 0xA217) +#define PropertyTagExifFileSource ((PROPID) 0xA300) +#define PropertyTagExifSceneType ((PROPID) 0xA301) +#define PropertyTagExifCfaPattern ((PROPID) 0xA302) + +#define PropertyTagTypeByte ((WORD) 1) +#define PropertyTagTypeASCII ((WORD) 2) +#define PropertyTagTypeShort ((WORD) 3) +#define PropertyTagTypeLong ((WORD) 4) +#define PropertyTagTypeRational ((WORD) 5) +#define PropertyTagTypeUndefined ((WORD) 7) +#define PropertyTagTypeSLONG ((WORD) 9) +#define PropertyTagTypeSRational ((WORD) 10) + +#ifdef __cplusplus +extern "C" { +#endif + +extern const GUID EncoderChrominanceTable; /* f2e455dc-09b3-4316-8260-676ada32481c */ +extern const GUID EncoderColorDepth; /* 66087055-ad66-4c7c-9a18-38a2310b8337 */ +extern const GUID EncoderColorSpace; /* ? */ +extern const GUID EncoderCompression; /* e09d739d-ccd4-44ee-8eba-3fbf8be4fc58 */ +extern const GUID EncoderImageItems; /* ? */ +extern const GUID EncoderLuminanceTable; /* edb33bce-0266-4a77-b904-27216099e717 */ +extern const GUID EncoderQuality; /* 1d5be4b5-fa4a-452d-9cdd-5db35105e7eb */ +extern const GUID EncoderRenderMethod; /* 6d42c53a-229a-4825-8bb7-5c99e2b9a8b8 */ +extern const GUID EncoderSaveAsCMYK; /* ? */ +extern const GUID EncoderSaveFlag; /* 292266fc-ac40-47bf-8cfc-a85b89a655de */ +extern const GUID EncoderScanMethod; /* 3a4e2661-3109-4e56-8536-42c156e7dcfa */ +extern const GUID EncoderTransformation; /* 8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9 */ +extern const GUID EncoderVersion; /* 24d18c76-814a-41a4-bf53-1c219cccf797 */ + +extern const GUID ImageFormatBMP; /* b96b3cab-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatEMF; /* b96b3cac-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatEXIF; /* ? */ +extern const GUID ImageFormatGIF; /* b96b3cb0-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatIcon; /* b96b3cb5-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatJPEG; /* b96b3cae-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatMemoryBMP; /* b96b3caa-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatPNG; /* b96b3caf-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatTIFF; /* b96b3cb1-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatUndefined; /* ? */ +extern const GUID ImageFormatWMF; /* b96b3cad-0728-11d3-9d7b-0000f81ef32e */ + +extern const GUID FrameDimensionPage; /* 7462dc86-6180-4c7e-8e3f-ee7333a7a483 */ +extern const GUID FrameDimensionResolution; /* ? */ +extern const GUID FrameDimensionTime; /* 6aedbd6d-3fb5-418a-83a6-7f45229dc872 */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __GDIPLUS_IMAGING_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusimpl.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,1613 @@ +/* + * gdiplusimpl.h + * + * GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection, FontFamily, + * Image, InstalledFontCollection, PrivateFontCollection, Region + * implementation. Definitions of these classes are in gdiplusheaders.h. + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMPL_H +#define __GDIPLUS_IMPL_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusimpl.h." +#endif + +/* + * FIXME: I called this file gdiplusimpl.h, but what should it really be called? + * Or did Microsoft create separate files for each class implemented here? + */ + + +// Image + +__inline__ Image* Image::FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement) +{ + return new Image(filename, useEmbeddedColorManagement); +} + +__inline__ Image* Image::FromStream(IStream *stream, + BOOL useEmbeddedColorManagement) +{ + return new Image(stream, useEmbeddedColorManagement); +} + +__inline__ Image::Image(const WCHAR *filename, BOOL useEmbeddedColorManagement): + nativeImage(NULL), lastStatus(Ok) +{ + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipLoadImageFromFileICM( + filename, &nativeImage); + } else { + lastStatus = DllExports::GdipLoadImageFromFile( + filename, &nativeImage); + } +} + +__inline__ Image::Image(IStream *stream, BOOL useEmbeddedColorManagement): + nativeImage(NULL), lastStatus(Ok) +{ + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipLoadImageFromStreamICM( + stream, &nativeImage); + } else { + lastStatus = DllExports::GdipLoadImageFromStream( + stream, &nativeImage); + } +} + +__inline__ Status Image::FindFirstItem(ImageItemData *item) +{ + // FIXME: can't test GdipFindFirstImageItem b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipFindFirstImageItem( + nativeImage, item)); +} + +__inline__ Status Image::FindNextItem(ImageItemData *item) +{ + // FIXME: can't test GdipFindFirstImageItem b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipFindNextImageItem( + nativeImage, item)); +} + +__inline__ Status Image::GetAllPropertyItems(UINT totalBufferSize, + UINT numProperties, PropertyItem *allItems) +{ + return updateStatus(DllExports::GdipGetAllPropertyItems( + nativeImage, totalBufferSize, numProperties, allItems)); +} + +__inline__ Status Image::GetBounds(RectF *srcRect, Unit *srcUnit) +{ + return updateStatus(DllExports::GdipGetImageBounds( + nativeImage, srcRect, srcUnit)); +} + +__inline__ Status Image::GetEncoderParameterList(const CLSID *clsidEncoder, + UINT size, EncoderParameters *buffer) +{ + return updateStatus(DllExports::GdipGetEncoderParameterList( + nativeImage, clsidEncoder, size, buffer)); +} + +__inline__ UINT Image::GetEncoderParameterListSize(const CLSID *clsidEncoder) +{ + UINT result = 0; + updateStatus(DllExports::GdipGetEncoderParameterListSize( + nativeImage, clsidEncoder, &result)); + return result; +} + +__inline__ UINT Image::GetFlags() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageFlags(nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetFrameCount(const GUID *dimensionID) +{ + UINT result = 0; + updateStatus(DllExports::GdipImageGetFrameCount( + nativeImage, dimensionID, &result)); + return result; +} + +__inline__ UINT Image::GetFrameDimensionsCount() +{ + UINT result = 0; + updateStatus(DllExports::GdipImageGetFrameDimensionsCount( + nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetFrameDimensionsList(GUID *dimensionIDs, UINT count) +{ + return updateStatus(DllExports::GdipImageGetFrameDimensionsList( + nativeImage, dimensionIDs, count)); +} + +__inline__ UINT Image::GetHeight() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageHeight(nativeImage, &result)); + return result; +} + +__inline__ REAL Image::GetHorizontalResolution() +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetImageHorizontalResolution( + nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetItemData(ImageItemData *item) +{ + // FIXME: can't test GdipGetImageItemData b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipGetImageItemData( + nativeImage, item)); +} + +__inline__ Status Image::GetPalette(ColorPalette *palette, INT size) +{ + return updateStatus(DllExports::GdipGetImagePalette( + nativeImage, palette, size)); +} + +__inline__ INT Image::GetPaletteSize() +{ + INT result = 0; + updateStatus(DllExports::GdipGetImagePaletteSize(nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetPhysicalDimension(SizeF *size) +{ + if (!size) return lastStatus = InvalidParameter; + return updateStatus(DllExports::GdipGetImageDimension( + nativeImage, &size->Width, &size->Height)); +} + +__inline__ PixelFormat Image::GetPixelFormat() +{ + PixelFormat result = (PixelFormat) 0; + updateStatus(DllExports::GdipGetImagePixelFormat(nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetPropertyCount() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetPropertyCount(nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetPropertyIdList(UINT numOfProperty, PROPID *list) +{ + return updateStatus(DllExports::GdipGetPropertyIdList( + nativeImage, numOfProperty, list)); +} + +__inline__ Status Image::GetPropertyItem(PROPID propId, UINT propSize, + PropertyItem *buffer) +{ + return updateStatus(DllExports::GdipGetPropertyItem( + nativeImage, propId, propSize, buffer)); +} + +__inline__ UINT Image::GetPropertyItemSize(PROPID propId) +{ + UINT result = 0; + updateStatus(DllExports::GdipGetPropertyItemSize( + nativeImage, propId, &result)); + return result; +} + +__inline__ Status Image::GetPropertySize( + UINT *totalBufferSize, UINT *numProperties) +{ + return updateStatus(DllExports::GdipGetPropertySize( + nativeImage, totalBufferSize, numProperties)); +} + +__inline__ Status Image::GetRawFormat(GUID *format) +{ + return updateStatus(DllExports::GdipGetImageRawFormat( + nativeImage, format)); +} + +__inline__ Image* Image::GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, + GetThumbnailImageAbort callback, VOID *callbackData) +{ + GpImage *thumbImage = NULL; + Status status = updateStatus(DllExports::GdipGetImageThumbnail( + nativeImage, thumbWidth, thumbHeight, &thumbImage, + callback, callbackData)); + + if (status == Ok) { + Image *result = new Image(thumbImage, Ok); + if (!result) { + DllExports::GdipDisposeImage(thumbImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ ImageType Image::GetType() const +{ + ImageType result = ImageTypeUnknown; + updateStatus(DllExports::GdipGetImageType(nativeImage, &result)); + return result; +} + +__inline__ REAL Image::GetVerticalResolution() +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetImageVerticalResolution( + nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetWidth() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageWidth(nativeImage, &result)); + return result; +} + +__inline__ Status Image::RemovePropertyItem(PROPID propId) +{ + return updateStatus(DllExports::GdipRemovePropertyItem( + nativeImage, propId)); +} + +__inline__ Status Image::RotateFlip(RotateFlipType rotateFlipType) +{ + return updateStatus(DllExports::GdipImageRotateFlip( + nativeImage, rotateFlipType)); +} + +__inline__ Status Image::Save(const WCHAR *filename, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveImageToFile( + nativeImage, filename, clsidEncoder, encoderParams)); +} + +__inline__ Status Image::Save(IStream *stream, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveImageToStream( + nativeImage, stream, clsidEncoder, encoderParams)); +} + +__inline__ Status Image::SaveAdd(const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveAdd( + nativeImage, encoderParams)); +} + +__inline__ Status Image::SaveAdd(Image *newImage, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveAddImage( + nativeImage, + newImage ? newImage->nativeImage : NULL, + encoderParams)); +} + +__inline__ Status Image::SelectActiveFrame( + const GUID *dimensionID, UINT frameIndex) +{ + return updateStatus(DllExports::GdipImageSelectActiveFrame( + nativeImage, dimensionID, frameIndex)); +} + +__inline__ Status Image::SetAbort(GdiplusAbort *pIAbort) +{ + // FIXME: can't test GdipImageSetAbort because it isn't exported in 1.0 + return updateStatus(DllExports::GdipImageSetAbort( + nativeImage, pIAbort)); +} + +__inline__ Status Image::SetPalette(const ColorPalette *palette) +{ + return updateStatus(DllExports::GdipSetImagePalette( + nativeImage, palette)); +} + +__inline__ Status Image::SetPropertyItem(const PropertyItem *item) +{ + return updateStatus(DllExports::GdipSetPropertyItem(nativeImage, item)); +} + + +// Bitmap + +__inline__ Bitmap* Bitmap::FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo, + VOID *gdiBitmapData) +{ + return new Bitmap(gdiBitmapInfo, gdiBitmapData); +} + +__inline__ Bitmap* Bitmap::FromDirectDrawSurface7(IDirectDrawSurface7 *surface) +{ + return new Bitmap(surface); +} + +__inline__ Bitmap* Bitmap::FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement) +{ + return new Bitmap(filename, useEmbeddedColorManagement); +} + +__inline__ Bitmap* Bitmap::FromHBITMAP(HBITMAP hbm, HPALETTE hpal) +{ + return new Bitmap(hbm, hpal); +} + +__inline__ Bitmap* Bitmap::FromHICON(HICON icon) +{ + return new Bitmap(icon); +} + +__inline__ Bitmap* Bitmap::FromResource( + HINSTANCE hInstance, const WCHAR *bitmapName) +{ + return new Bitmap(hInstance, bitmapName); +} + +__inline__ Bitmap* Bitmap::FromStream(IStream *stream, + BOOL useEmbeddedColorManagement) +{ + return new Bitmap(stream, useEmbeddedColorManagement); +} + +//TODO: [GDI+ 1.1] Bitmap::ApplyEffect +//__inline__ Status Bitmap::ApplyEffect(Bitmap **inputs, INT numInputs, +// Effect *effect, RECT *ROI, RECT *outputRect, Bitmap **output) +//{ +// return NotImplemented; +//} + +__inline__ Status Bitmap::InitializePalette(ColorPalette *palette, + PaletteType paletteType, INT optimalColors, + BOOL useTransparentColor, Bitmap *bitmap) +{ + // FIXME: can't test GdipInitializePalette b/c it isn't exported in 1.0 + return DllExports::GdipInitializePalette(palette, paletteType, + optimalColors, useTransparentColor, + bitmap ? (GpBitmap*) bitmap->nativeImage : NULL); +} + +__inline__ Bitmap::Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromGdiDib( + gdiBitmapInfo, gdiBitmapData, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(IDirectDrawSurface7 *surface): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromDirectDrawSurface( + surface, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(const WCHAR *filename, + BOOL useEmbeddedColorManagement): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipCreateBitmapFromFileICM( + filename, &nativeBitmap); + } else { + lastStatus = DllExports::GdipCreateBitmapFromFile( + filename, &nativeBitmap); + } + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HBITMAP hbm, HPALETTE hpal): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromHBITMAP( + hbm, hpal, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HICON hicon): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromHICON(hicon, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromResource( + hInstance, bitmapName, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(IStream *stream, BOOL useEmbeddedColorManagement): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipCreateBitmapFromStreamICM( + stream, &nativeBitmap); + } else { + lastStatus = DllExports::GdipCreateBitmapFromStream( + stream, &nativeBitmap); + } + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, Graphics *target): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromGraphics( + width, height, target ? target->nativeGraphics : NULL, + &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, PixelFormat format): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromScan0( + width, height, 0, format, NULL, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, INT stride, + PixelFormat format, BYTE *scan0): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromScan0( + width, height, stride, format, scan0, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap* Bitmap::Clone(const RectF& rect, PixelFormat format) const +{ + return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); +} + +__inline__ Bitmap* Bitmap::Clone(const Rect& rect, PixelFormat format) const +{ + return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); +} + +__inline__ Bitmap* Bitmap::Clone(REAL x, REAL y, REAL width, REAL height, + PixelFormat format) const +{ + GpBitmap *cloneBitmap = NULL; + Status status = updateStatus(DllExports::GdipCloneBitmapArea( + x, y, width, height, format, + (GpBitmap*) nativeImage, &cloneBitmap)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneBitmap, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneBitmap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Bitmap* Bitmap::Clone(INT x, INT y, INT width, INT height, + PixelFormat format) const +{ + GpBitmap *cloneBitmap = NULL; + Status status = updateStatus(DllExports::GdipCloneBitmapAreaI( + x, y, width, height, format, + (GpBitmap*) nativeImage, &cloneBitmap)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneBitmap, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneBitmap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +//TODO: [GDI+ 1.1] Bitmap::ApplyEffect +//__inline__ Status Bitmap::ApplyEffect(Effect *effect, RECT *ROI) +//{ +// return NotImplemented; +//} + +__inline__ Status Bitmap::ConvertFormat(PixelFormat format, + DitherType ditherType, PaletteType paletteType, + ColorPalette *palette, REAL alphaThresholdPercent) +{ + // FIXME: can't test GdipBitmapConvertFormat b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipBitmapConvertFormat( + (GpBitmap*) nativeImage, format, ditherType, + paletteType, palette, alphaThresholdPercent)); +} + +__inline__ Status Bitmap::GetHBITMAP( + const Color& colorBackground, HBITMAP *hbmReturn) const +{ + return updateStatus(DllExports::GdipCreateHBITMAPFromBitmap( + (GpBitmap*) nativeImage, hbmReturn, + colorBackground.GetValue())); +} + +__inline__ Status Bitmap::GetHICON(HICON *icon) const +{ + return updateStatus(DllExports::GdipCreateHICONFromBitmap( + (GpBitmap*) nativeImage, icon)); +} + +__inline__ Status Bitmap::GetHistogram(HistogramFormat format, + UINT numberOfEntries, + UINT *channel0, UINT *channel1, + UINT *channel2, UINT *channel3) const +{ + return updateStatus(DllExports::GdipBitmapGetHistogram( + (GpBitmap*) nativeImage, format, numberOfEntries, + channel0, channel1, channel2, channel3)); +} + +__inline__ Status Bitmap::GetHistogramSize(HistogramFormat format, + UINT *numberOfEntries) const +{ + return updateStatus(DllExports::GdipBitmapGetHistogramSize( + format, numberOfEntries)); +} + +__inline__ Status Bitmap::GetPixel(INT x, INT y, Color *color) const +{ + return updateStatus(DllExports::GdipBitmapGetPixel( + (GpBitmap*) nativeImage, x, y, + color ? &color->Value : NULL)); +} + +__inline__ Status Bitmap::LockBits(const Rect *rect, UINT flags, + PixelFormat format, BitmapData *lockedBitmapData) +{ + return updateStatus(DllExports::GdipBitmapLockBits( + (GpBitmap*) nativeImage, rect, flags, format, + lockedBitmapData)); +} + +__inline__ Status Bitmap::SetPixel(INT x, INT y, const Color& color) +{ + return updateStatus(DllExports::GdipBitmapSetPixel( + (GpBitmap*) nativeImage, x, y, color.GetValue())); +} + +__inline__ Status Bitmap::SetResolution(REAL xdpi, REAL ydpi) +{ + return updateStatus(DllExports::GdipBitmapSetResolution( + (GpBitmap*) nativeImage, xdpi, ydpi)); +} + +__inline__ Status Bitmap::UnlockBits(BitmapData *lockedBitmapData) +{ + return updateStatus(DllExports::GdipBitmapUnlockBits( + (GpBitmap*) nativeImage, lockedBitmapData)); +} + + +// CachedBitmap + +__inline__ CachedBitmap::CachedBitmap(Bitmap *bitmap, Graphics *graphics): + nativeCachedBitmap(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateCachedBitmap( + bitmap ? ((GpBitmap*) bitmap->nativeImage) : NULL, + graphics ? graphics->nativeGraphics : NULL, + &nativeCachedBitmap); +} + +__inline__ CachedBitmap::~CachedBitmap() +{ + DllExports::GdipDeleteCachedBitmap(nativeCachedBitmap); +} + + +// CustomLineCap + +__inline__ CustomLineCap::CustomLineCap( + const GraphicsPath *fillPath, + const GraphicsPath *strokePath, + LineCap baseCap, REAL baseInset): + nativeCustomLineCap(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateCustomLineCap( + fillPath ? fillPath->nativePath : NULL, + strokePath ? strokePath->nativePath : NULL, + baseCap, baseInset, &nativeCustomLineCap); +} + +__inline__ LineCap CustomLineCap::GetBaseCap() const +{ + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetCustomLineCapBaseCap( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ REAL CustomLineCap::GetBaseInset() const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetCustomLineCapBaseInset( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ Status CustomLineCap::GetStrokeCaps(LineCap *startCap, + LineCap *endCap) const +{ + return updateStatus(DllExports::GdipGetCustomLineCapStrokeCaps( + nativeCustomLineCap, startCap, endCap)); +} + +__inline__ LineJoin CustomLineCap::GetStrokeJoin() const +{ + LineJoin result = LineJoinMiter; + updateStatus(DllExports::GdipGetCustomLineCapStrokeJoin( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ REAL CustomLineCap::GetWidthScale() const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetCustomLineCapWidthScale( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ Status CustomLineCap::SetBaseCap(LineCap baseCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapBaseCap( + nativeCustomLineCap, baseCap)); +} + +__inline__ Status CustomLineCap::SetBaseInset(REAL inset) +{ + return updateStatus(DllExports::GdipSetCustomLineCapBaseInset( + nativeCustomLineCap, inset)); +} + +__inline__ Status CustomLineCap::SetStrokeCap(LineCap strokeCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeCaps( + nativeCustomLineCap, strokeCap, strokeCap)); +} + +__inline__ Status CustomLineCap::SetStrokeCaps(LineCap startCap, LineCap endCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeCaps( + nativeCustomLineCap, startCap, endCap)); +} + +__inline__ Status CustomLineCap::SetStrokeJoin(LineJoin lineJoin) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeJoin( + nativeCustomLineCap, lineJoin)); +} + +__inline__ Status CustomLineCap::SetWidthScale(REAL widthScale) +{ + return updateStatus(DllExports::GdipSetCustomLineCapWidthScale( + nativeCustomLineCap, widthScale)); +} + + +// Font + +__inline__ Font::Font(const FontFamily *family, + REAL emSize, INT style, Unit unit): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFont( + family ? family->nativeFontFamily : NULL, + emSize, style, unit, &nativeFont); +} + +__inline__ Font::Font(HDC hdc, HFONT hfont): + nativeFont(NULL), lastStatus(Ok) +{ + LOGFONTW logfont; + if (GetObject(hfont, sizeof logfont, &logfont)) { + lastStatus = DllExports::GdipCreateFontFromLogfontW( + hdc, &logfont, &nativeFont); + } else { + lastStatus = DllExports::GdipCreateFontFromDC( + hdc, &nativeFont); + } +} + +__inline__ Font::Font(HDC hdc, const LOGFONTA *logfont): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromLogfontA( + hdc, logfont, &nativeFont); +} + +__inline__ Font::Font(HDC hdc, const LOGFONTW *logfont): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromLogfontW( + hdc, logfont, &nativeFont); +} + +__inline__ Font::Font(HDC hdc): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromDC(hdc, &nativeFont); +} + +__inline__ Font::Font(const WCHAR *familyName, REAL emSize, INT style, + Unit unit, const FontCollection *fontCollection): + nativeFont(NULL), lastStatus(Ok) +{ + GpFontFamily *nativeFamily = NULL; + lastStatus = DllExports::GdipCreateFontFamilyFromName( + familyName, + fontCollection ? fontCollection->nativeFontCollection : NULL, + &nativeFamily); + + if (nativeFamily) { + lastStatus = DllExports::GdipCreateFont( + nativeFamily, emSize, style, unit, &nativeFont); + DllExports::GdipDeleteFontFamily(nativeFamily); + } +} + +__inline__ Font::~Font() +{ + DllExports::GdipDeleteFont(nativeFont); +} + +__inline__ Font* Font::Clone() const +{ + GpFont *cloneFont = NULL; + Status status = updateStatus(DllExports::GdipCloneFont( + nativeFont, &cloneFont)); + if (status == Ok) { + Font *result = new Font(cloneFont, lastStatus); + if (!result) { + DllExports::GdipDeleteFont(cloneFont); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Status Font::GetFamily(FontFamily *family) const +{ + if (!family) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteFontFamily first? + return family->lastStatus = updateStatus(DllExports::GdipGetFamily( + nativeFont, &family->nativeFontFamily)); +} + +__inline__ REAL Font::GetHeight(const Graphics *graphics) const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetFontHeight( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + &result)); + return result; +} + +__inline__ REAL Font::GetHeight(REAL dpi) const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetFontHeightGivenDPI( + nativeFont, dpi, &result)); + return result; +} + +__inline__ Status Font::GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) +const +{ + return updateStatus(DllExports::GdipGetLogFontA( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + logfontA)); +} + +__inline__ Status Font::GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) +const +{ + return updateStatus(DllExports::GdipGetLogFontW( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + logfontW)); +} + +__inline__ REAL Font::GetSize() const +{ + REAL result = 0.0; + updateStatus(DllExports::GdipGetFontSize(nativeFont, &result)); + return result; +} + +__inline__ INT Font::GetStyle() const +{ + INT result = FontStyleRegular; + updateStatus(DllExports::GdipGetFontStyle(nativeFont, &result)); + return result; +} + +__inline__ Unit Font::GetUnit() const +{ + Unit result = UnitPoint; + updateStatus(DllExports::GdipGetFontUnit(nativeFont, &result)); + return result; +} + + +// FontCollection + +__inline__ FontCollection::FontCollection(): + nativeFontCollection(NULL), lastStatus(Ok) +{ +} + +__inline__ Status FontCollection::GetFamilies(INT numSought, + FontFamily *families, INT *numFound) const +{ + if (numSought <= 0 || !families || !numFound) + return lastStatus = InvalidParameter; + + for (int i = 0; i < numSought; ++i) { + families[i].nativeFontFamily = NULL; + families[i].lastStatus = FontFamilyNotFound; + } + *numFound = 0; + + GpFontFamily **nativeFamilyArray = (GpFontFamily**) + DllExports::GdipAlloc(numSought * sizeof (GpFontFamily*)); + if (!nativeFamilyArray) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetFontCollectionFamilyList( + nativeFontCollection, numSought, nativeFamilyArray, + numFound)); + + // FIXME: must the native GpFontFamily objects be cloned? Seems so. + // (if this is not done, the "Creating a Private Font Collection" + // example crashes on "delete[] pFontFamily") + + if (status == Ok) { + for (int i = 0; i < *numFound; ++i) { + families[i].lastStatus = + updateStatus(DllExports::GdipCloneFontFamily( + nativeFamilyArray[i], + &families[i].nativeFontFamily)); + } + } + + DllExports::GdipFree(nativeFamilyArray); + return status; +} + +__inline__ INT FontCollection::GetFamilyCount() const +{ + INT result = 0; + updateStatus(DllExports::GdipGetFontCollectionFamilyCount( + nativeFontCollection, &result)); + return result; +} + + +// FontFamily + +// FIXME: do FontFamily::GenericMonospace() et al. need to be thread safe? +// FIXME: maybe put parts of this in gdiplus.c + +extern "C" void *_GdipFontFamilyCachedGenericMonospace; +extern "C" void *_GdipFontFamilyCachedGenericSansSerif; +extern "C" void *_GdipFontFamilyCachedGenericSerif; + +__inline__ const FontFamily* FontFamily::GenericMonospace() +{ + if (!_GdipFontFamilyCachedGenericMonospace) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilyMonospace( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericMonospace = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericMonospace; +} + +__inline__ const FontFamily* FontFamily::GenericSansSerif() +{ + if (!_GdipFontFamilyCachedGenericSansSerif) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilySansSerif( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericSansSerif = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericSansSerif; +} + +__inline__ const FontFamily* FontFamily::GenericSerif() +{ + if (!_GdipFontFamilyCachedGenericSerif) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilySerif( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericSerif = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericSerif; +} + +__inline__ FontFamily::FontFamily(): + nativeFontFamily(NULL), lastStatus(Ok) +{ +} + +__inline__ FontFamily::FontFamily(const WCHAR *name, + const FontCollection *fontCollection): + nativeFontFamily(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFamilyFromName(name, + fontCollection ? fontCollection->nativeFontCollection : NULL, + &nativeFontFamily); +} + +__inline__ FontFamily::~FontFamily() +{ + DllExports::GdipDeleteFontFamily(nativeFontFamily); +} + +__inline__ FontFamily* FontFamily::Clone() const +{ + GpFontFamily *cloneFontFamily = NULL; + Status status = updateStatus(DllExports::GdipCloneFontFamily( + nativeFontFamily, &cloneFontFamily)); + if (status == Ok) { + FontFamily *result = new FontFamily(cloneFontFamily, lastStatus); + if (!result) { + DllExports::GdipDeleteFontFamily(cloneFontFamily); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ UINT16 FontFamily::GetCellAscent(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetCellAscent( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ UINT16 FontFamily::GetCellDescent(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetCellDescent( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ UINT16 FontFamily::GetEmHeight(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetEmHeight( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ Status FontFamily::GetFamilyName(WCHAR name[LF_FACESIZE], + LANGID language) const +{ + return updateStatus(DllExports::GdipGetFamilyName( + nativeFontFamily, name, language)); +} + +__inline__ UINT16 FontFamily::GetLineSpacing(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetLineSpacing( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ BOOL FontFamily::IsStyleAvailable(INT style) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsStyleAvailable( + nativeFontFamily, style, &result)); + return result; +} + + +// InstalledFontCollection + +__inline__ InstalledFontCollection::InstalledFontCollection() +{ + lastStatus = DllExports::GdipNewInstalledFontCollection( + &nativeFontCollection); +} + + +// PrivateFontCollection + +__inline__ PrivateFontCollection::PrivateFontCollection() +{ + lastStatus = DllExports::GdipNewPrivateFontCollection( + &nativeFontCollection); +} + +__inline__ Status PrivateFontCollection::AddFontFile(const WCHAR *filename) +{ + return updateStatus(DllExports::GdipPrivateAddFontFile( + nativeFontCollection, filename)); +} + +__inline__ Status PrivateFontCollection::AddMemoryFont( + const VOID *memory, INT length) +{ + return updateStatus(DllExports::GdipPrivateAddMemoryFont( + nativeFontCollection, memory, length)); +} + + +// Region + +__inline__ Region* Region::FromHRGN(HRGN hrgn) +{ + return new Region(hrgn); +} + +__inline__ Region::Region(): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegion(&nativeRegion); +} + +__inline__ Region::Region(const RectF& rect): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRect(&rect, &nativeRegion); +} + +__inline__ Region::Region(const Rect& rect): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRectI(&rect, &nativeRegion); +} + +__inline__ Region::Region(const GraphicsPath *path): + nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionPath( + path ? path->nativePath : NULL, &nativeRegion); +} + +__inline__ Region::Region(const BYTE *regionData, INT size): + nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRgnData( + regionData, size, &nativeRegion); +} + +__inline__ Region::Region(HRGN hrgn): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionHrgn(hrgn, &nativeRegion); +} + +__inline__ Region::~Region() +{ + DllExports::GdipDeleteRegion(nativeRegion); +} + +__inline__ Region* Region::Clone() const +{ + GpRegion *cloneRegion = NULL; + Status status = updateStatus(DllExports::GdipCloneRegion( + nativeRegion, &cloneRegion)); + if (status == Ok) { + Region *result = new Region(cloneRegion, lastStatus); + if (!result) { + DllExports::GdipDeleteRegion(cloneRegion); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Status Region::Complement(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeComplement)); +} + +__inline__ Status Region::Complement(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeComplement)); +} + +__inline__ Status Region::Complement(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeComplement)); +} + +__inline__ Status Region::Complement(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeComplement)); +} + +__inline__ BOOL Region::Equals(const Region *region, const Graphics *graphics) +const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsEqualRegion( + nativeRegion, region ? region->nativeRegion : NULL, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::Exclude(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeExclude)); +} + +__inline__ Status Region::GetBounds(RectF *rect, const Graphics *graphics) const +{ + return updateStatus(DllExports::GdipGetRegionBounds(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, rect)); +} + +__inline__ Status Region::GetBounds(Rect *rect, const Graphics *graphics) const +{ + return updateStatus(DllExports::GdipGetRegionBoundsI(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, rect)); +} + +__inline__ Status Region::GetData(BYTE *buffer, UINT bufferSize, + UINT *sizeFilled) const +{ + return updateStatus(DllExports::GdipGetRegionData( + nativeRegion, buffer, bufferSize, sizeFilled)); +} + +__inline__ UINT Region::GetDataSize() const +{ + UINT result = 0; + updateStatus(DllExports::GdipGetRegionDataSize(nativeRegion, &result)); + return result; +} + +__inline__ HRGN Region::GetHRGN(const Graphics *graphics) const +{ + HRGN result = NULL; + updateStatus(DllExports::GdipGetRegionHRgn(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::GetRegionScans(const Matrix *matrix, + RectF *rects, INT *count) const +{ + return updateStatus(DllExports::GdipGetRegionScans( + nativeRegion, rects, count, + matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ Status Region::GetRegionScans(const Matrix *matrix, + Rect *rects, INT *count) const +{ + return updateStatus(DllExports::GdipGetRegionScansI( + nativeRegion, rects, count, + matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ UINT Region::GetRegionScansCount(const Matrix *matrix) const +{ + UINT result = 0; + updateStatus(DllExports::GdipGetRegionScansCount( + nativeRegion, &result, + matrix ? matrix->nativeMatrix : NULL)); + return result; +} + +__inline__ Status Region::Intersect(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeIntersect)); +} + +__inline__ BOOL Region::IsEmpty(const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsEmptyRegion(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsInfinite(const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsInfiniteRegion(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(REAL x, REAL y, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPoint( + nativeRegion, x, y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(INT x, INT y, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPointI( + nativeRegion, x, y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const PointF& point, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPoint( + nativeRegion, point.X, point.Y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const Point& point, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPointI( + nativeRegion, point.X, point.Y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(REAL x, REAL y, REAL width, REAL height, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRect( + nativeRegion, x, y, width, height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(INT x, INT y, INT width, INT height, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRectI( + nativeRegion, x, y, width, height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const RectF& rect, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRect( + nativeRegion, rect.X, rect.Y, rect.Width, rect.Height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const Rect& rect, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRectI( + nativeRegion, rect.X, rect.Y, rect.Width, rect.Height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::MakeEmpty() +{ + return updateStatus(DllExports::GdipSetEmpty(nativeRegion)); +} + +__inline__ Status Region::MakeInfinite() +{ + return updateStatus(DllExports::GdipSetInfinite(nativeRegion)); +} + +__inline__ Status Region::Transform(const Matrix *matrix) +{ + return updateStatus(DllExports::GdipTransformRegion( + nativeRegion, matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ Status Region::Translate(REAL dx, REAL dy) +{ + return updateStatus(DllExports::GdipTranslateRegion( + nativeRegion, dx, dy)); +} + +__inline__ Status Region::Translate(INT dx, INT dy) +{ + return updateStatus(DllExports::GdipTranslateRegionI( + nativeRegion, dx, dy)); +} + +__inline__ Status Region::Union(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeUnion)); +} + +__inline__ Status Region::Union(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeUnion)); +} + +__inline__ Status Region::Union(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeUnion)); +} + +__inline__ Status Region::Union(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeUnion)); +} + +__inline__ Status Region::Xor(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeXor)); +} + +__inline__ Status Region::Xor(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeXor)); +} + +__inline__ Status Region::Xor(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeXor)); +} + +__inline__ Status Region::Xor(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeXor)); +} + + +// GraphicsPath + +__inline__ BOOL GraphicsPath::IsOutlineVisible(REAL x, REAL y, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPoint( + nativePath, x, y, pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(INT x, INT y, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPointI( + nativePath, x, y, pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(const PointF& point, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPoint( + nativePath, point.X, point.Y, + pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(const Point& point, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPointI( + nativePath, point.X, point.Y, + pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(REAL x, REAL y, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPoint( + nativePath, x, y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} +__inline__ BOOL GraphicsPath::IsVisible(INT x, INT y, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPointI( + nativePath, x, y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(const PointF& point, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPoint( + nativePath, point.X, point.Y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(const Point& point, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPointI( + nativePath, point.X, point.Y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + + +// PathData + +__inline__ Status PathData::AllocateArrays(INT capacity) +{ + if (capacity < 0) { + return InvalidParameter; + } else if (Count < capacity) { + FreeArrays(); + + PointF *pointArray = (PointF*) + DllExports::GdipAlloc(capacity * sizeof(PointF)); + if (!pointArray) + return OutOfMemory; + + BYTE *typeArray = (BYTE*) + DllExports::GdipAlloc(capacity * sizeof(BYTE)); + if (!typeArray) { + DllExports::GdipFree(pointArray); + return OutOfMemory; + } + + Count = capacity; + Points = pointArray; + Types = typeArray; + } + return Ok; +} + +__inline__ VOID PathData::FreeArrays() +{ + if (Points) DllExports::GdipFree(Points); + if (Types) DllExports::GdipFree(Types); + Count = 0; + Points = NULL; + Types = NULL; +} + +#endif /* __GDIPLUS_IMPL_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusinit.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusinit.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,74 @@ +/* + * gdiplusinit.h + * + * GDI+ Initialization + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_INIT_H +#define __GDIPLUS_INIT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef struct GdiplusStartupInput { + UINT32 GdiplusVersion; + DebugEventProc DebugEventCallback; + BOOL SuppressBackgroundThread; + BOOL SuppressExternalCodecs; + + #ifdef __cplusplus + GdiplusStartupInput(DebugEventProc debugEventCallback = NULL, + BOOL suppressBackgroundThread = FALSE, + BOOL suppressExternalCodecs = FALSE): + GdiplusVersion(1), + DebugEventCallback(debugEventCallback), + SuppressBackgroundThread(suppressBackgroundThread), + SuppressExternalCodecs(suppressExternalCodecs) {} + #endif /* __cplusplus */ +} GdiplusStartupInput; + +typedef GpStatus WINGDIPAPI (*NotificationHookProc)(ULONG_PTR *token); +typedef VOID WINGDIPAPI (*NotificationUnhookProc)(ULONG_PTR token); + +typedef struct GdiplusStartupOutput { + NotificationHookProc NotificationHook; + NotificationUnhookProc NotificationUnhook; + + #ifdef __cplusplus + GdiplusStartupOutput(): + NotificationHook(NULL), + NotificationUnhook(NULL) {} + #endif /* __cplusplus */ +} GdiplusStartupOutput; + +#ifdef __cplusplus +extern "C" { +#endif + +GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*); +VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR); +GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*); +VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +#endif /* __GDIPLUS_INIT_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluslinecaps.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluslinecaps.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,131 @@ +/* + * gdipluslinecaps.h + * + * GDI+ AdjustableArrowCap class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_LINECAPS_H +#define __GDIPLUS_LINECAPS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluslinecaps.h." +#endif + +class AdjustableArrowCap: public CustomLineCap +{ +public: + AdjustableArrowCap(REAL height, REAL width, BOOL isFilled): + CustomLineCap(NULL, Ok) + { + GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL; + lastStatus = DllExports::GdipCreateAdjustableArrowCap( + height, width, isFilled, + &nativeAdjustableArrowCap); + nativeCustomLineCap = nativeAdjustableArrowCap; + } + virtual ~AdjustableArrowCap() + { + } + virtual AdjustableArrowCap* Clone() const + { + GpCustomLineCap *cloneCustomLineCap = NULL; + Status status = updateStatus(DllExports::GdipCloneCustomLineCap( + nativeCustomLineCap, &cloneCustomLineCap)); + if (status == Ok) { + AdjustableArrowCap *result = new AdjustableArrowCap( + cloneCustomLineCap, lastStatus); + if (!result) { + DllExports::GdipDeleteCustomLineCap( + cloneCustomLineCap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + REAL GetHeight() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapHeight( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + REAL GetMiddleInset() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + REAL GetWidth() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapWidth( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + BOOL IsFilled() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetAdjustableArrowCapFillState( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + Status SetFillState(BOOL isFilled) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState( + (GpAdjustableArrowCap*) nativeCustomLineCap, + isFilled)); + } + Status SetHeight(REAL height) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight( + (GpAdjustableArrowCap*) nativeCustomLineCap, + height)); + } + Status SetMiddleInset(REAL middleInset) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset( + (GpAdjustableArrowCap*) nativeCustomLineCap, + middleInset)); + } + Status SetWidth(REAL width) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth( + (GpAdjustableArrowCap*) nativeCustomLineCap, + width)); + } + +private: + AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status): + CustomLineCap(customLineCap, status) {} + AdjustableArrowCap(const AdjustableArrowCap&); + AdjustableArrowCap& operator=(const AdjustableArrowCap&); +}; + +#endif /* __GDIPLUS_LINECAPS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusmatrix.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusmatrix.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,240 @@ +/* + * gdiplusmatrix.h + * + * GDI+ Matrix class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_MATRIX_H +#define __GDIPLUS_MATRIX_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusmatrix.h." +#endif + +#define GDIP_MATRIX_PI \ + 3.1415926535897932384626433832795028841971693993751058209749445923078164 + +class Matrix: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + friend class LinearGradientBrush; + friend class PathGradientBrush; + friend class Pen; + friend class Region; + friend class TextureBrush; + +public: + Matrix(): nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix(&nativeMatrix); + } + Matrix(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix2( + m11, m12, m21, m22, dx, dy, + &nativeMatrix); + } + Matrix(const RectF& rect, const PointF *dstplg): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix3( + &rect, dstplg, &nativeMatrix); + } + Matrix(const Rect& rect, const Point *dstplg): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix3I( + &rect, dstplg, &nativeMatrix); + } + ~Matrix() + { + DllExports::GdipDeleteMatrix(nativeMatrix); + } + Matrix* Clone() const + { + GpMatrix *cloneMatrix = NULL; + Status status = updateStatus(DllExports::GdipCloneMatrix( + nativeMatrix, &cloneMatrix)); + if (status == Ok) { + Matrix *result = new Matrix(cloneMatrix, lastStatus); + if (!result) { + DllExports::GdipDeleteMatrix(cloneMatrix); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + BOOL Equals(const Matrix *matrix) const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixEqual( + nativeMatrix, + matrix ? matrix->nativeMatrix : NULL, &result)); + return result; + } + Status GetElements(REAL *m) const + { + return updateStatus(DllExports::GdipGetMatrixElements( + nativeMatrix, m)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status Invert() + { + return updateStatus(DllExports::GdipInvertMatrix(nativeMatrix)); + } + BOOL IsIdentity() const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixIdentity( + nativeMatrix, &result)); + return result; + } + BOOL IsInvertible() const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixInvertible( + nativeMatrix, &result)); + return result; + } + Status Multiply(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyMatrix( + nativeMatrix, + matrix ? matrix->nativeMatrix : NULL, order)); + } + REAL OffsetX() const + { + REAL m[6]; + updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); + return m[4]; + } + REAL OffsetY() const + { + REAL m[6]; + updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); + return m[5]; + } + Status Reset() + { + return updateStatus(DllExports::GdipSetMatrixElements( + nativeMatrix, + 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f)); + } + Status Rotate(REAL angle, MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateMatrix( + nativeMatrix, angle, order)); + } + Status RotateAt(REAL angle, const PointF& center, + MatrixOrder order = MatrixOrderPrepend) + { + REAL angleRadian = angle * GDIP_MATRIX_PI / 180.0f; + REAL cosAngle = ::cos(angleRadian); + REAL sinAngle = ::sin(angleRadian); + REAL x = center.X; + REAL y = center.Y; + + Matrix matrix2(cosAngle, sinAngle, -sinAngle, cosAngle, + x * (1.0f-cosAngle) + y * sinAngle, + -x * sinAngle + y * (1.0f-cosAngle)); + Status status = matrix2.GetLastStatus(); + if (status == Ok) { + return Multiply(&matrix2, order); + } else { + return lastStatus = status; + } + } + Status Scale(REAL scaleX, REAL scaleY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleMatrix( + nativeMatrix, scaleX, scaleY, order)); + } + Status SetElements(REAL m11, REAL m12, REAL m21, REAL m22, + REAL dx, REAL dy) + { + return updateStatus(DllExports::GdipSetMatrixElements( + nativeMatrix, m11, m12, m21, m22, dx, dy)); + } + Status Shear(REAL shearX, REAL shearY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipShearMatrix( + nativeMatrix, shearX, shearY, order)); + } + Status TransformPoints(PointF *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipTransformMatrixPoints( + nativeMatrix, pts, count)); + } + Status TransformPoints(Point *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipTransformMatrixPointsI( + nativeMatrix, pts, count)); + } + Status TransformVectors(PointF *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipVectorTransformMatrixPoints( + nativeMatrix, pts, count)); + } + Status TransformVectors(Point *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipVectorTransformMatrixPointsI( + nativeMatrix, pts, count)); + } + Status Translate(REAL offsetX, REAL offsetY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateMatrix( + nativeMatrix, offsetX, offsetY, order)); + } + +private: + Matrix(GpMatrix *matrix, Status status): + nativeMatrix(matrix), lastStatus(status) {} + Matrix(const Matrix&); + Matrix& operator=(const Matrix&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpMatrix *nativeMatrix; + mutable Status lastStatus; +}; + +#undef GDIP_MATRIX_PI + +#endif /* __GDIPLUS_MATRIX_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusmem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusmem.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,42 @@ +/* + * gdiplusmem.h + * + * GDI+ memory allocation + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_MEM_H +#define __GDIPLUS_MEM_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +namespace DllExports { +extern "C" { +#endif + +VOID* WINGDIPAPI GdipAlloc(size_t); +VOID WINGDIPAPI GdipFree(VOID*); + +#ifdef __cplusplus +} /* extern "C" */ +} /* namespace DllExports */ +#endif + +#endif /* __GDIPLUS_MEM_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusmetafile.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusmetafile.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,305 @@ +/* + * gdiplusmetafile.h + * + * GDI+ Metafile class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_METAFILE_H +#define __GDIPLUS_METAFILE_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusmetafile.h." +#endif + +class Metafile: public Image +{ +public: + static UINT EmfToWmfBits(HENHMETAFILE hEmf, + UINT cbData16, LPBYTE pData16, + INT iMapMode = MM_ANISOTROPIC, + EmfToWmfBitsFlags eFlags = EmfToWmfBitsFlagsDefault) + { + return DllExports::GdipEmfToWmfBits(hEmf, + cbData16, pData16, iMapMode, eFlags); + } + static Status GetMetafileHeader(const WCHAR *filename, + MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromFile( + filename, header); + } + static Status GetMetafileHeader(IStream *stream, MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromStream( + stream, header); + } + ////TODO: Metafile::GetMetafileHeader + //static Status GetMetafileHeader(HMETAFILE hWmf, + // const WmfPlaceableFileHeader *wmfPlaceableFileHeader, + // MetafileHeader *header) + //{ + // // WTF: No flat API to do this. + // return NotImplemented; + //} + static Status GetMetafileHeader(HENHMETAFILE hEmf, + MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header); + } + + Metafile(HMETAFILE hWmf, + const WmfPlaceableFileHeader *wmfPlaceableFileHeader, + BOOL deleteWmf = FALSE): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromWmf( + hWmf, deleteWmf, wmfPlaceableFileHeader, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HENHMETAFILE hEmf, BOOL deleteEmf = FALSE): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromEmf( + hEmf, deleteEmf, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromFile( + filename, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, + const WmfPlaceableFileHeader *wmfPlaceableFileHeader): + Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromWmfFile( + filename, wmfPlaceableFileHeader, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromStream( + stream, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafile( + referenceHdc, type, NULL, MetafileFrameUnitGdi, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafile( + referenceHdc, type, &frameRect, frameUnit, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileI( + referenceHdc, type, &frameRect, frameUnit, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileName( + filename, referenceHdc, type, NULL, + MetafileFrameUnitGdi, description, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileName( + filename, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileNameI( + filename, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStream( + stream, referenceHdc, type, NULL, + MetafileFrameUnitGdi, description, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStream( + stream, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStreamI( + stream, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + virtual ~Metafile() + { + } + virtual Metafile* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Metafile *result = new Metafile(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlus because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlus( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, + // conversionSuccess, emfType, description, ???)); + //} + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // const WCHAR *filename, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlusToFile because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlusToFile( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, conversionSuccess, + // filename, emfType, description, ???)); + //} + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // IStream *stream, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlusToStream because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlusToStream( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, conversionSuccess, + // stream, emfType, description, ???)); + //} + UINT GetDownLevelRasterizationLimit() const + { + UINT result = 0; + updateStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit( + (GpMetafile*) nativeImage, &result)); + return result; + } + HENHMETAFILE GetHENHMETAFILE() + { + HENHMETAFILE result = NULL; + updateStatus(DllExports::GdipGetHemfFromMetafile( + (GpMetafile*) nativeImage, &result)); + return result; + } + Status GetMetafileHeader(MetafileHeader *header) const + { + return updateStatus(DllExports::GdipGetMetafileHeaderFromMetafile( + (GpMetafile*) nativeImage, header)); + } + Status PlayRecord(EmfPlusRecordType recordType, UINT flags, + UINT dataSize, const BYTE *data) const + { + return updateStatus(DllExports::GdipPlayMetafileRecord( + (GpMetafile*) nativeImage, + recordType, flags, dataSize, data)); + } + Status SetDownLevelRasterizationLimit(UINT limitDpi) + { + return updateStatus(DllExports::GdipSetMetafileDownLevelRasterizationLimit( + (GpMetafile*) nativeImage, limitDpi)); + } + +private: + Metafile(GpImage *image, Status status): Image(image, status) {} + Metafile(const Metafile&); + Metafile& operator=(const Metafile&); +}; + +#endif /* __GDIPLUS_METAFILE_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusmetaheader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusmetaheader.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,193 @@ +/* + * gdiplusmetaheader.h + * + * GDI+ metafile header structure + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_METAHEADER_H +#define __GDIPLUS_METAHEADER_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + + +/* + * FIXME: is 1 the correct value for GDIP_EMFPLUSFLAGS_DISPLAY? This number + * has been determined by calling Metafile::GetMetafileHeader() on a EMF+ + * metafile which was recorded on a display device context (SampleMetafile.emf). + */ +#ifdef __cplusplus +const UINT GDIP_EMFPLUSFLAGS_DISPLAY = 1; +#else +#define GDIP_EMFPLUSFLAGS_DISPLAY ((UINT) 1) +#endif + +typedef struct tagENHMETAHEADER3 { + DWORD iType; + DWORD nSize; + RECTL rclBounds; + RECTL rclFrame; + DWORD dSignature; + DWORD nVersion; + DWORD nBytes; + DWORD nRecords; + WORD nHandles; + WORD sReserved; + DWORD nDescription; + DWORD offDescription; + DWORD nPalEntries; + SIZEL szlDevice; + SIZEL szlMillimeters; +} ENHMETAHEADER3,*LPENHMETAHEADER3; + +typedef struct PWMFRect16 { + INT16 Left; + INT16 Top; + INT16 Right; + INT16 Bottom; +} PWMFRect16; + +typedef struct WmfPlaceableFileHeader { + UINT32 Key; + INT16 Hmf; + PWMFRect16 BoundingBox; + INT16 Inch; + UINT32 Reserved; + INT16 Checksum; +} WmfPlaceableFileHeader; + +typedef struct MetafileHeader { + MetafileType Type; + UINT Size; + UINT Version; + UINT EmfPlusFlags; + REAL DpiX; + REAL DpiY; + INT X; + INT Y; + INT Width; + INT Height; + __extension__ union { + METAHEADER WmfHeader; + ENHMETAHEADER3 EmfHeader; + }; + INT EmfPlusHeaderSize; + INT LogicalDpiX; + INT LogicalDpiY; + + #ifdef __cplusplus + public: + void GetBounds(Rect *rect) const + { + if (rect) + { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + REAL GetDpiX() const + { + return DpiX; + } + REAL GetDpiY() const + { + return DpiY; + } + const ENHMETAHEADER3* GetEmfHeader() const + { + if (Type == MetafileTypeEmf + || Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual) + { + return &EmfHeader; + } + else + { + return NULL; + } + } + UINT GetEmfPlusFlags() const + { + return EmfPlusFlags; + } + UINT GetMetafileSize() const + { + return Size; + } + MetafileType GetType() const + { + return Type; + } + UINT GetVersion() const + { + return Version; + } + const METAHEADER* GetWmfHeader() const + { + if (Type == MetafileTypeWmf || Type == MetafileTypeWmfPlaceable) + { + return &WmfHeader; + } + else + { + return NULL; + } + } + BOOL IsDisplay() const + { + return EmfPlusFlags == GDIP_EMFPLUSFLAGS_DISPLAY; + } + BOOL IsEmf() const + { + return Type == MetafileTypeEmf; + } + BOOL IsEmfOrEmfPlus() const + { + return Type == MetafileTypeEmf + || Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlus() const + { + return Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlusDual() const + { + return Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlusOnly() const + { + return Type == MetafileTypeEmfPlusOnly; + } + BOOL IsWmf() const + { + return Type == MetafileTypeWmf + || Type == MetafileTypeWmfPlaceable; + } + BOOL IsWmfPlaceable() const + { + return Type == MetafileTypeWmfPlaceable; + } + #endif +} MetafileHeader; + +#endif /* __GDIPLUS_METAHEADER_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluspath.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluspath.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,964 @@ +/* + * gdipluspath.h + * + * GDI+ GraphicsPath class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PATH_H +#define __GDIPLUS_PATH_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluspath.h." +#endif + +// Note that some methods of GraphicsPath are implemented in gdiplusimpl.h. +// This avoids a cyclic dependency on Graphics and Pen. + +class GraphicsPath: public GdiplusBase +{ + friend class CustomLineCap; + friend class Graphics; + friend class GraphicsPathIterator; + friend class PathGradientBrush; + friend class Region; + +public: + GraphicsPath(FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath(fillMode, &nativePath); + } + GraphicsPath(const PointF *points, const BYTE *types, INT count, + FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath2( + points, types, count, fillMode, &nativePath); + } + GraphicsPath(const Point *points, const BYTE *types, INT count, + FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath2I( + points, types, count, fillMode, &nativePath); + } + ~GraphicsPath() + { + DllExports::GdipDeletePath(nativePath); + } + GraphicsPath* Clone() const + { + GpPath *clonePath = NULL; + Status status = updateStatus(DllExports::GdipClonePath( + nativePath, &clonePath)); + if (status == Ok) { + GraphicsPath *result = new GraphicsPath(clonePath, lastStatus); + if (!result) { + DllExports::GdipDeletePath(clonePath); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status AddArc(REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArc(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddArc(INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArcI(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddArc(const RectF& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArc(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddArc(const Rect& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArcI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddBezier(REAL x1, REAL y1, REAL x2, REAL y2, + REAL x3, REAL y3, REAL x4, REAL y4) + { + return updateStatus(DllExports::GdipAddPathBezier(nativePath, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status AddBezier(INT x1, INT y1, INT x2, INT y2, + INT x3, INT y3, INT x4, INT y4) + { + return updateStatus(DllExports::GdipAddPathBezierI(nativePath, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status AddBezier(const PointF& pt1, const PointF& pt2, + const PointF& pt3, const PointF& pt4) + { + return updateStatus(DllExports::GdipAddPathBezier(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status AddBezier(const Point& pt1, const Point& pt2, + const Point& pt3, const Point& pt4) + { + return updateStatus(DllExports::GdipAddPathBezierI(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status AddBeziers(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathBeziers( + nativePath, points, count)); + } + Status AddBeziers(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathBeziersI( + nativePath, points, count)); + } + Status AddClosedCurve(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathClosedCurve( + nativePath, points, count)); + } + Status AddClosedCurve(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathClosedCurveI( + nativePath, points, count)); + } + Status AddClosedCurve(const PointF *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathClosedCurve2( + nativePath, points, count, tension)); + } + Status AddClosedCurve(const Point *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathClosedCurve2I( + nativePath, points, count, tension)); + } + Status AddCurve(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathCurve( + nativePath, points, count)); + } + Status AddCurve(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathCurveI( + nativePath, points, count)); + } + Status AddCurve(const PointF *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve2( + nativePath, points, count, tension)); + } + Status AddCurve(const Point *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve2I( + nativePath, points, count, tension)); + } + Status AddCurve(const PointF *points, INT count, INT offset, + INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve3( + nativePath, points, count, + offset, numberOfSegments, tension)); + } + Status AddCurve(const Point *points, INT count, INT offset, + INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve3I( + nativePath, points, count, + offset, numberOfSegments, tension)); + } + Status AddEllipse(REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipAddPathEllipse(nativePath, + x, y, width, height)); + } + Status AddEllipse(INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, + x, y, width, height)); + } + Status AddEllipse(const RectF& rect) + { + return updateStatus(DllExports::GdipAddPathEllipse(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddEllipse(const Rect& rect) + { + return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddLine(REAL x1, REAL y1, REAL x2, REAL y2) + { + return updateStatus(DllExports::GdipAddPathLine(nativePath, + x1, y1, x2, y2)); + } + Status AddLine(INT x1, INT y1, INT x2, INT y2) + { + return updateStatus(DllExports::GdipAddPathLineI(nativePath, + x1, y1, x2, y2)); + } + Status AddLine(const PointF& pt1, const PointF& pt2) + { + return updateStatus(DllExports::GdipAddPathLine(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status AddLine(const Point& pt1, const Point& pt2) + { + return updateStatus(DllExports::GdipAddPathLineI(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status AddLines(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathLine2(nativePath, + points, count)); + } + Status AddLines(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathLine2I(nativePath, + points, count)); + } + Status AddPath(const GraphicsPath *addingPath, BOOL connect) + { + return updateStatus(DllExports::GdipAddPathPath(nativePath, + addingPath ? addingPath->nativePath : NULL, + connect)); + } + Status AddPie(REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPie(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddPie(INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPieI(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddPie(const RectF& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPie(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddPie(const Rect& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPieI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddPolygon(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathPolygon(nativePath, + points, count)); + } + Status AddPolygon(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathPolygonI(nativePath, + points, count)); + } + Status AddRectangle(const RectF& rect) + { + return updateStatus(DllExports::GdipAddPathRectangle(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddRectangle(const Rect& rect) + { + return updateStatus(DllExports::GdipAddPathRectangleI( + nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddRectangles(const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipAddPathRectangles( + nativePath, rects, count)); + } + Status AddRectangles(const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipAddPathRectanglesI( + nativePath, rects, count)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const PointF& origin, const StringFormat *format) + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipAddPathString(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const Point& origin, const StringFormat *format) + { + Rect layoutRect(origin, Size(0, 0)); + return updateStatus(DllExports::GdipAddPathStringI(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const RectF& layoutRect, const StringFormat *format) + { + return updateStatus(DllExports::GdipAddPathString(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const Rect& layoutRect, const StringFormat *format) + { + return updateStatus(DllExports::GdipAddPathStringI(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status ClearMarkers() + { + return updateStatus(DllExports::GdipClearPathMarkers( + nativePath)); + } + Status CloseAllFigures() + { + return updateStatus(DllExports::GdipClosePathFigures( + nativePath)); + } + Status CloseFigure() + { + return updateStatus(DllExports::GdipClosePathFigure( + nativePath)); + } + Status Flatten(const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipFlattenPath(nativePath, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + Status GetBounds(RectF *bounds, const Matrix *matrix = NULL, + const Pen *pen = NULL) const + { + return updateStatus(DllExports::GdipGetPathWorldBounds( + nativePath, bounds, + matrix ? matrix->nativeMatrix : NULL, + pen ? pen->nativePen : NULL)); + } + Status GetBounds(Rect *bounds, const Matrix *matrix = NULL, + const Pen *pen = NULL) const + { + return updateStatus(DllExports::GdipGetPathWorldBoundsI( + nativePath, bounds, + matrix ? matrix->nativeMatrix : NULL, + pen ? pen->nativePen : NULL)); + } + FillMode GetFillMode() const + { + FillMode result = FillModeAlternate; + updateStatus(DllExports::GdipGetPathFillMode(nativePath, + &result)); + return result; + } + Status GetLastPoint(PointF *lastPoint) const + { + return updateStatus(DllExports::GdipGetPathLastPoint( + nativePath, lastPoint)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status GetPathData(PathData *pathData) const + { + if (!pathData) return lastStatus = InvalidParameter; + + Status status; + INT count; + + status = updateStatus(DllExports::GdipGetPointCount( + nativePath, &count)); + if (status != Ok) return status; + + status = updateStatus(pathData->AllocateArrays(count)); + if (status != Ok) return status; + + return updateStatus(DllExports::GdipGetPathData( + nativePath, (GpPathData*) pathData)); + } + Status GetPathPoints(PointF *points, INT count) const + { + return updateStatus(DllExports::GdipGetPathPoints(nativePath, + points, count)); + } + Status GetPathPoints(Point *points, INT count) const + { + return updateStatus(DllExports::GdipGetPathPointsI(nativePath, + points, count)); + } + Status GetPathTypes(BYTE *types, INT count) const + { + return updateStatus(DllExports::GdipGetPathTypes(nativePath, + types, count)); + } + INT GetPointCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPointCount(nativePath, + &result)); + return result; + } + BOOL IsOutlineVisible(REAL x, REAL y, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(INT x, INT y, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(const PointF& point, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(const Point& point, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsVisible(REAL x, REAL y, const Graphics *g = NULL) const; + BOOL IsVisible(INT x, INT y, const Graphics *g = NULL) const; + BOOL IsVisible(const PointF& point, const Graphics *g = NULL) const; + BOOL IsVisible(const Point& point, const Graphics *g = NULL) const; + Status Outline(const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWindingModeOutline( + nativePath, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + Status Reset() + { + return updateStatus(DllExports::GdipResetPath(nativePath)); + } + Status Reverse() + { + return updateStatus(DllExports::GdipReversePath(nativePath)); + } + Status SetFillMode(FillMode fillMode) + { + return updateStatus(DllExports::GdipSetPathFillMode( + nativePath, fillMode)); + } + Status SetMarker() + { + return updateStatus(DllExports::GdipSetPathMarker(nativePath)); + } + Status StartFigure() + { + return updateStatus(DllExports::GdipStartPathFigure( + nativePath)); + } + Status Transform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipTransformPath( + nativePath, + matrix ? matrix->nativeMatrix : NULL)); + } + Status Warp(const PointF *destPoints, INT count, const RectF& srcRect, + const Matrix *matrix = NULL, + WarpMode warpMode = WarpModePerspective, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWarpPath(nativePath, + matrix ? matrix->nativeMatrix : NULL, + destPoints, count, + srcRect.X, srcRect.Y, + srcRect.Width, srcRect.Height, + warpMode, flatness)); + } + Status Widen(const Pen *pen, const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWidenPath(nativePath, + pen ? pen->nativePen : NULL, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + +private: + GraphicsPath(GpPath *path, Status status): + nativePath(path), lastStatus(status) {} + GraphicsPath(const GraphicsPath&); + GraphicsPath& operator=(const GraphicsPath&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPath *nativePath; + mutable Status lastStatus; +}; + +class GraphicsPathIterator: public GdiplusBase +{ +public: + GraphicsPathIterator(GraphicsPath *path): + nativePathIterator(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePathIter( + &nativePathIterator, + path ? path->nativePath : NULL); + } + ~GraphicsPathIterator() + { + DllExports::GdipDeletePathIter(nativePathIterator); + } + + INT CopyData(PointF *points, BYTE *types, INT startIndex, INT endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterCopyData( + nativePathIterator, &result, + points, types, startIndex, endIndex)); + return result; + } + INT Enumerate(PointF *points, BYTE *types, INT count) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterEnumerate( + nativePathIterator, &result, + points, types, count)); + return result; + } + INT GetCount() const + { + INT result = 0; + updateStatus(DllExports::GdipPathIterGetCount( + nativePathIterator, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + INT GetSubpathCount() const + { + INT result = 0; + updateStatus(DllExports::GdipPathIterGetSubpathCount( + nativePathIterator, &result)); + return result; + } + BOOL HasCurve() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipPathIterHasCurve( + nativePathIterator, &result)); + return result; + } + INT NextMarker(INT *startIndex, INT *endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextMarker( + nativePathIterator, &result, + startIndex, endIndex)); + return result; + } + INT NextMarker(GraphicsPath *path) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextMarkerPath( + nativePathIterator, &result, + path ? path->nativePath : NULL)); + return result; + } + INT NextPathType(BYTE *pathType, INT *startIndex, INT *endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextPathType( + nativePathIterator, &result, + pathType, startIndex, endIndex)); + return result; + } + INT NextSubpath(INT *startIndex, INT *endIndex, BOOL *isClosed) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextSubpath( + nativePathIterator, &result, + startIndex, endIndex, isClosed)); + return result; + } + INT NextSubpath(GraphicsPath *path, BOOL *isClosed) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextSubpathPath( + nativePathIterator, &result, + path ? path->nativePath : NULL, isClosed)); + return result; + } + VOID Rewind() + { + updateStatus(DllExports::GdipPathIterRewind( + nativePathIterator)); + } + +private: + GraphicsPathIterator(GpPathIterator *pathIterator, Status status): + nativePathIterator(pathIterator), lastStatus(status) {} + GraphicsPathIterator(const GraphicsPathIterator&); + GraphicsPathIterator& operator=(const GraphicsPathIterator&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPathIterator *nativePathIterator; + mutable Status lastStatus; +}; + +class PathGradientBrush: public Brush +{ +public: + PathGradientBrush(const PointF *points, INT count, + WrapMode wrapMode = WrapModeClamp) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradient( + points, count, wrapMode, &nativePathGradient); + nativeBrush = nativePathGradient; + } + PathGradientBrush(const Point *points, INT count, + WrapMode wrapMode = WrapModeClamp) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradientI( + points, count, wrapMode, &nativePathGradient); + nativeBrush = nativePathGradient; + } + PathGradientBrush(const GraphicsPath *path) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradientFromPath( + path ? path->nativePath : NULL, + &nativePathGradient); + nativeBrush = nativePathGradient; + } + virtual PathGradientBrush *Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + PathGradientBrush *result = + new PathGradientBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBlend(REAL *blendFactors, REAL *blendPositions, + INT count) const + { + return updateStatus(DllExports::GdipGetPathGradientBlend( + (GpPathGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + INT GetBlendCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientBlendCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetCenterColor(Color *color) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterColor( + (GpPathGradient*) nativeBrush, + color ? &color->Value : NULL)); + } + Status GetCenterPoint(PointF *point) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterPoint( + (GpPathGradient*) nativeBrush, point)); + } + Status GetCenterPoint(Point *point) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterPointI( + (GpPathGradient*) nativeBrush, point)); + } + Status GetFocusScales(REAL *xScale, REAL *yScale) const + { + return updateStatus(DllExports::GdipGetPathGradientFocusScales( + (GpPathGradient*) nativeBrush, xScale, yScale)); + } + BOOL GetGammaCorrection() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetPathGradientGammaCorrection( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + //Status GetGraphicsPath(GraphicsPath *path) const + //{ + // // TODO: implement PathGradientBrush::GetGraphicsPath + // return updateStatus(NotImplemented); + //} + INT GetInterpolationColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientPresetBlendCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetInterpolationColors(Color *presetColors, + REAL *blendPositions, INT count) const + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetPathGradientPresetBlend( + (GpPathGradient*) nativeBrush, + presetArgb, blendPositions, count)); + for (INT i = 0; i < count; ++i) { + presetColors[i].SetValue(presetArgb[i]); + } + DllExports::GdipFree((void*) presetArgb); + return status; + } + INT GetPointCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientPointCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetRectangle(RectF *rect) const + { + return updateStatus(DllExports::GdipGetPathGradientRect( + (GpPathGradient*) nativeBrush, rect)); + } + Status GetRectangle(Rect *rect) const + { + return updateStatus(DllExports::GdipGetPathGradientRectI( + (GpPathGradient*) nativeBrush, rect)); + } + INT GetSurroundColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientSurroundColorCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetSurroundColors(Color *colors, INT *count) + { + if (!colors || !count || *count <= 0) + return lastStatus = InvalidParameter; + + ARGB *colorsArgb = + (ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); + if (!colorsArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetPathGradientSurroundColorsWithCount( + (GpPathGradient*) nativeBrush, + colorsArgb, count)); + for (INT i = 0; i < *count; ++i) { + colors[i].SetValue(colorsArgb[i]); + } + DllExports::GdipFree((void*) colorsArgb); + return status; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode result = WrapModeTile; + updateStatus(DllExports::GdipGetPathGradientWrapMode( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetPathGradientTransform( + (GpPathGradient*) nativeBrush)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotatePathGradientTransform( + (GpPathGradient*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScalePathGradientTransform( + (GpPathGradient*) nativeBrush, sx, sy, order)); + } + Status SetBlend(REAL *blendFactors, REAL *blendPositions, INT count) + { + return updateStatus(DllExports::GdipSetPathGradientBlend( + (GpPathGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetPathGradientSigmaBlend( + (GpPathGradient*) nativeBrush, focus, scale)); + } + Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetPathGradientLinearBlend( + (GpPathGradient*) nativeBrush, focus, scale)); + } + Status SetCenterColor(const Color& color) + { + return updateStatus(DllExports::GdipSetPathGradientCenterColor( + (GpPathGradient*) nativeBrush, + color.GetValue())); + } + Status SetCenterPoint(const PointF& point) + { + return updateStatus(DllExports::GdipSetPathGradientCenterPoint( + (GpPathGradient*) nativeBrush, &point)); + } + Status SetCenterPoint(const Point& point) + { + return updateStatus(DllExports::GdipSetPathGradientCenterPointI( + (GpPathGradient*) nativeBrush, &point)); + } + Status SetFocusScales(REAL xScale, REAL yScale) + { + return updateStatus(DllExports::GdipSetPathGradientFocusScales( + (GpPathGradient*) nativeBrush, xScale, yScale)); + } + Status SetGammaCorrection(BOOL useGammaCorrection) + { + return updateStatus(DllExports::GdipSetPathGradientGammaCorrection( + (GpPathGradient*) nativeBrush, + useGammaCorrection)); + } + //Status SetGraphicsPath(const GraphicsPath *path) + //{ + // // TODO: implement PathGradientBrush::SetGraphicsPath + // return updateStatus(NotImplemented); + //} + Status SetInterpolationColors(const Color *presetColors, + REAL *blendPositions, INT count) + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < count; ++i) { + presetArgb[i] = presetColors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetPathGradientPresetBlend( + (GpPathGradient*) nativeBrush, + presetArgb, blendPositions, count)); + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status SetSurroundColors(const Color *colors, INT *count) + { + if (!colors || !count || *count <= 0) + return lastStatus = InvalidParameter; + + ARGB *colorsArgb = + (ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); + if (!colorsArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < *count; ++i) { + colorsArgb[i] = colors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetPathGradientSurroundColorsWithCount( + (GpPathGradient*) nativeBrush, + colorsArgb, count)); + DllExports::GdipFree((void*) colorsArgb); + return status; + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetPathGradientWrapMode( + (GpPathGradient*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslatePathGradientTransform( + (GpPathGradient*) nativeBrush, dx, dy, order)); + } + +private: + PathGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} + PathGradientBrush(const PathGradientBrush&); + PathGradientBrush& operator=(const PathGradientBrush&); +}; + + + +#endif /* __GDIPLUS_PATH_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluspen.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluspen.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,338 @@ +/* + * gdipluspen.h + * + * GDI+ Pen class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PEN_H +#define __GDIPLUS_PEN_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluspen.h." +#endif + +class Pen: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + +public: + Pen(const Color& color, REAL width = 1.0f): + nativePen(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePen1( + color.GetValue(), width, UnitWorld, + &nativePen); + } + Pen(const Brush *brush, REAL width = 1.0f): + nativePen(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePen2( + brush ? brush->nativeBrush : NULL, + width, UnitWorld, &nativePen); + } + ~Pen() + { + DllExports::GdipDeletePen(nativePen); + } + Pen* Clone() const + { + GpPen *clonePen = NULL; + Status status = updateStatus(DllExports::GdipClonePen( + nativePen, &clonePen)); + if (status == Ok) { + Pen *result = new Pen(clonePen, lastStatus); + if (!result) { + DllExports::GdipDeletePen(clonePen); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + PenAlignment GetAlignment() const + { + PenAlignment result = PenAlignmentCenter; + updateStatus(DllExports::GdipGetPenMode(nativePen, &result)); + return result; + } + // TODO: implement Pen::GetBrush() + //Brush *GetBrush() const + //{ + // // where is the pen brush allocated (static,member,new,other)? + // // GdipGetPenBrushFill just returns a GpBrush* + // updateStatus(NotImplemented); + // return NULL; + //} + Status GetColor(Color *color) const + { + return updateStatus(DllExports::GdipGetPenColor( + nativePen, color ? &color->Value : NULL)); + } + Status GetCompoundArray(REAL *compoundArray, INT count) const + { + return updateStatus(DllExports::GdipGetPenCompoundArray( + nativePen, compoundArray, count)); + } + INT GetCompoundArrayCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPenCompoundCount( + nativePen, &result)); + return result; + } + Status GetCustomEndCap(CustomLineCap *customCap) const + { + if (!customCap) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteCustomLineCap first? + return updateStatus(DllExports::GdipGetPenCustomEndCap( + nativePen, &customCap->nativeCustomLineCap)); + } + Status GetCustomStartCap(CustomLineCap *customCap) const + { + if (!customCap) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteCustomLineCap first? + return updateStatus(DllExports::GdipGetPenCustomStartCap( + nativePen, &customCap->nativeCustomLineCap)); + } + DashCap GetDashCap() const + { + DashCap result = DashCapFlat; + updateStatus(DllExports::GdipGetPenDashCap197819( + nativePen, &result)); + return result; + } + REAL GetDashOffset() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetPenDashOffset( + nativePen, &result)); + return result; + } + Status GetDashPattern(REAL *dashArray, INT count) const + { + return updateStatus(DllExports::GdipGetPenDashArray( + nativePen, dashArray, count)); + } + INT GetDashPatternCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPenDashCount( + nativePen, &result)); + return result; + } + DashStyle GetDashStyle() const + { + DashStyle result = DashStyleSolid; + updateStatus(DllExports::GdipGetPenDashStyle( + nativePen, &result)); + return result; + } + LineCap GetEndCap() const + { + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetPenEndCap(nativePen, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + LineJoin GetLineJoin() const + { + LineJoin result = LineJoinMiter; + updateStatus(DllExports::GdipGetPenLineJoin( + nativePen, &result)); + return result; + } + REAL GetMiterLimit() const + { + REAL result = 10.0f; + updateStatus(DllExports::GdipGetPenMiterLimit( + nativePen, &result)); + return result; + } + PenType GetPenType() const + { + PenType result = PenTypeUnknown; + updateStatus(DllExports::GdipGetPenFillType( + nativePen, &result)); + return result; + } + LineCap GetStartCap() const + { + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetPenStartCap( + nativePen, &result)); + return result; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL)); + } + REAL GetWidth() const + { + REAL result = 1.0f; + updateStatus(DllExports::GdipGetPenWidth(nativePen, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetPenTransform( + nativePen)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotatePenTransform( + nativePen, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScalePenTransform( + nativePen, sx, sy, order)); + } + Status SetAlignment(PenAlignment penAlignment) + { + return updateStatus(DllExports::GdipSetPenMode( + nativePen, penAlignment)); + } + Status SetBrush(const Brush *brush) + { + return updateStatus(DllExports::GdipSetPenBrushFill( + nativePen, brush ? brush->nativeBrush : NULL)); + } + Status SetColor(const Color& color) + { + return updateStatus(DllExports::GdipSetPenColor( + nativePen, color.GetValue())); + } + Status SetCompoundArray(const REAL *compoundArray, INT count) + { + return updateStatus(DllExports::GdipSetPenCompoundArray( + nativePen, compoundArray, count)); + } + Status SetCustomEndCap(const CustomLineCap *customCap) + { + return updateStatus(DllExports::GdipSetPenCustomEndCap( + nativePen, + customCap ? customCap->nativeCustomLineCap : NULL)); + } + Status SetCustomStartCap(const CustomLineCap *customCap) + { + return updateStatus(DllExports::GdipSetPenCustomStartCap( + nativePen, + customCap ? customCap->nativeCustomLineCap : NULL)); + } + Status SetDashCap(DashCap dashCap) + { + return updateStatus(DllExports::GdipSetPenDashCap197819( + nativePen, dashCap)); + } + Status SetDashOffset(REAL dashOffset) + { + return updateStatus(DllExports::GdipSetPenDashOffset( + nativePen, dashOffset)); + } + Status SetDashPattern(const REAL *dashArray, INT count) + { + return updateStatus(DllExports::GdipSetPenDashArray( + nativePen, dashArray, count)); + } + Status SetDashStyle(DashStyle dashStyle) + { + return updateStatus(DllExports::GdipSetPenDashStyle( + nativePen, dashStyle)); + } + Status SetEndCap(LineCap endCap) + { + return updateStatus(DllExports::GdipSetPenEndCap( + nativePen, endCap)); + } + Status SetLineCap(LineCap startCap, LineCap endCap, DashCap dashCap) + { + return updateStatus(DllExports::GdipSetPenLineCap197819( + nativePen, startCap, endCap, dashCap)); + } + Status SetLineJoin(LineJoin lineJoin) + { + return updateStatus(DllExports::GdipSetPenLineJoin( + nativePen, lineJoin)); + } + Status SetMiterLimit(REAL miterLimit) + { + return updateStatus(DllExports::GdipSetPenMiterLimit( + nativePen, miterLimit)); + } + Status SetStartCap(LineCap startCap) + { + return updateStatus(DllExports::GdipSetPenStartCap( + nativePen, startCap)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWidth(REAL width) + { + return updateStatus(DllExports::GdipSetPenWidth( + nativePen, width)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslatePenTransform( + nativePen, dx, dy, order)); + } + +private: + Pen(GpPen *pen, Status status): nativePen(pen), lastStatus(status) {} + Pen(const Pen& pen); + Pen& operator=(const Pen&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPen *nativePen; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_PEN_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdipluspixelformats.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdipluspixelformats.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,120 @@ +/* + * gdipluspixelformats.h + * + * GDI+ pixel formats + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PIXELFORMATS_H +#define __GDIPLUS_PIXELFORMATS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef DWORD ARGB; +typedef INT PixelFormat; + +#define PixelFormatIndexed ((PixelFormat) 0x00010000) +#define PixelFormatGDI ((PixelFormat) 0x00020000) +#define PixelFormatAlpha ((PixelFormat) 0x00040000) +#define PixelFormatPAlpha ((PixelFormat) 0x00080000) +#define PixelFormatExtended ((PixelFormat) 0x00100000) +#define PixelFormatCanonical ((PixelFormat) 0x00200000) +#define PixelFormatUndefined ((PixelFormat) 0) +#define PixelFormatDontCare ((PixelFormat) 0) +#define PixelFormat1bppIndexed ((PixelFormat) \ + (1 | (1<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat4bppIndexed ((PixelFormat) \ + (2 | (4<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat8bppIndexed ((PixelFormat) \ + (3 | (8<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat16bppGrayScale ((PixelFormat) \ + (4 | (16<<8) | PixelFormatExtended)) +#define PixelFormat16bppRGB555 ((PixelFormat) \ + (5 | (16<<8) | PixelFormatGDI)) +#define PixelFormat16bppRGB565 ((PixelFormat) \ + (6 | (16<<8) | PixelFormatGDI)) +#define PixelFormat16bppARGB1555 ((PixelFormat) \ + (7 | (16<<8) | PixelFormatAlpha | PixelFormatGDI)) +#define PixelFormat24bppRGB ((PixelFormat) \ + (8 | (24<<8) | PixelFormatGDI)) +#define PixelFormat32bppRGB ((PixelFormat) \ + (9 | (32<<8) | PixelFormatGDI)) +#define PixelFormat32bppARGB ((PixelFormat) \ + (10 | (32<<8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical)) +#define PixelFormat32bppPARGB ((PixelFormat) \ + (11 | (32<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI)) +#define PixelFormat48bppRGB ((PixelFormat) \ + (12 | (48<<8) | PixelFormatExtended)) +#define PixelFormat64bppARGB ((PixelFormat) \ + (13 | (64<<8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended)) +#define PixelFormat64bppPARGB ((PixelFormat) \ + (14 | (64<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended)) +#define PixelFormatMax ((PixelFormat) 15) + +typedef enum PaletteFlags { + PaletteFlagsHasAlpha = 1, + PaletteFlagsGrayScale = 2, + PaletteFlagsHalftone = 4 +} PaletteFlags; + +typedef enum PaletteType { + PaletteTypeCustom = 0, + PaletteTypeOptimal = 1, + PaletteTypeFixedBW = 2, + PaletteTypeFixedHalftone8 = 3, + PaletteTypeFixedHalftone27 = 4, + PaletteTypeFixedHalftone64 = 5, + PaletteTypeFixedHalftone125 = 6, + PaletteTypeFixedHalftone216 = 7, + PaletteTypeFixedHalftone252 = 8, + PaletteTypeFixedHalftone256 = 9 +} PaletteType; + +typedef struct ColorPalette { + UINT Flags; + UINT Count; + ARGB Entries[1]; +} ColorPalette; + +static __inline__ UINT GetPixelFormatSize(PixelFormat pixfmt) +{ + return (((UINT) pixfmt) & 0xff00U) >> 8; +} + +static __inline__ BOOL IsAlphaPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatAlpha) != 0; +} + +static __inline__ BOOL IsCanonicalPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatCanonical) != 0; +} + +static __inline__ BOOL IsExtendedPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatExtended) != 0; +} + +static __inline__ BOOL IsIndexedPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatIndexed) != 0; +} + +#endif /* __GDIPLUS_PIXELFORMATS_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplusstringformat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplusstringformat.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,251 @@ +/* + * gdiplusstringformat.h + * + * GDI+ StringFormat class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_STRINGFORMAT_H +#define __GDIPLUS_STRINGFORMAT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusstringformat.h." +#endif + +class StringFormat: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + +public: + static const StringFormat* GenericDefault(); + static const StringFormat* GenericTypographic(); + + StringFormat(INT formatFlags = 0, LANGID language = LANG_NEUTRAL): + nativeStringFormat(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateStringFormat( + formatFlags, language, &nativeStringFormat); + } + StringFormat(const StringFormat *format): + nativeStringFormat(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCloneStringFormat( + format ? format->nativeStringFormat : NULL, + &nativeStringFormat); + } + ~StringFormat() + { + DllExports::GdipDeleteStringFormat(nativeStringFormat); + } + StringFormat* Clone() const + { + GpStringFormat *cloneStringFormat = NULL; + Status status = updateStatus(DllExports::GdipCloneStringFormat( + nativeStringFormat, &cloneStringFormat)); + if (status == Ok) { + StringFormat *result = new StringFormat( + cloneStringFormat, lastStatus); + if (!result) { + DllExports::GdipDeleteStringFormat(cloneStringFormat); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + StringAlignment GetAlignment() const + { + StringAlignment result = StringAlignmentNear; + updateStatus(DllExports::GdipGetStringFormatAlign( + nativeStringFormat, &result)); + return result; + } + LANGID GetDigitSubstitutionLanguage() const + { + LANGID result = 0; + StringDigitSubstitute method; + updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( + nativeStringFormat, &result, &method)); + return result; + } + StringDigitSubstitute GetDigitSubstitutionMethod() const + { + LANGID language; + StringDigitSubstitute result = StringDigitSubstituteUser; + updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( + nativeStringFormat, &language, &result)); + return result; + } + INT GetFormatFlags() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatFlags( + nativeStringFormat, &result)); + return result; + } + HotkeyPrefix GetHotkeyPrefix() const + { + HotkeyPrefix result = HotkeyPrefixNone; + updateStatus(DllExports::GdipGetStringFormatHotkeyPrefix( + nativeStringFormat, (INT*) &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + StringAlignment GetLineAlignment() const + { + StringAlignment result = StringAlignmentNear; + updateStatus(DllExports::GdipGetStringFormatLineAlign( + nativeStringFormat, &result)); + return result; + } + INT GetMeasurableCharacterRangeCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatMeasurableCharacterRangeCount( + nativeStringFormat, &result)); + return result; + } + INT GetTabStopCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatTabStopCount( + nativeStringFormat, &result)); + return result; + } + Status GetTabStops(INT count, REAL *firstTabOffset, REAL *tabStops) + { + return updateStatus(DllExports::GdipGetStringFormatTabStops( + nativeStringFormat, count, + firstTabOffset, tabStops)); + } + StringTrimming GetTrimming() const + { + StringTrimming result = StringTrimmingNone; + updateStatus(DllExports::GdipGetStringFormatTrimming( + nativeStringFormat, &result)); + return result; + } + Status SetAlignment(StringAlignment align) + { + return updateStatus(DllExports::GdipSetStringFormatAlign( + nativeStringFormat, align)); + } + Status SetDigitSubstitution(LANGID language, + StringDigitSubstitute substitute) + { + return updateStatus(DllExports::GdipSetStringFormatDigitSubstitution( + nativeStringFormat, language, substitute)); + } + Status SetFormatFlags(INT flags) + { + return updateStatus(DllExports::GdipSetStringFormatFlags( + nativeStringFormat, flags)); + } + Status SetHotkeyPrefix(HotkeyPrefix hotkeyPrefix) + { + return updateStatus(DllExports::GdipSetStringFormatHotkeyPrefix( + nativeStringFormat, (INT) hotkeyPrefix)); + } + Status SetLineAlignment(StringAlignment align) + { + return updateStatus(DllExports::GdipSetStringFormatLineAlign( + nativeStringFormat, align)); + } + Status SetMeasurableCharacterRanges(INT rangeCount, + const CharacterRange *ranges) + { + return updateStatus(DllExports::GdipSetStringFormatMeasurableCharacterRanges( + nativeStringFormat, rangeCount, ranges)); + } + Status SetTabStops(REAL firstTabOffset, INT count, const REAL *tabStops) + { + return updateStatus(DllExports::GdipSetStringFormatTabStops( + nativeStringFormat, firstTabOffset, + count, tabStops)); + } + Status SetTrimming(StringTrimming trimming) + { + return updateStatus(DllExports::GdipSetStringFormatTrimming( + nativeStringFormat, trimming)); + } + +private: + StringFormat(GpStringFormat *stringFormat, Status status): + nativeStringFormat(stringFormat), lastStatus(status) {} + StringFormat(const StringFormat&); + StringFormat& operator=(const StringFormat&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpStringFormat *nativeStringFormat; + mutable Status lastStatus; +}; + + +// FIXME: do StringFormat::GenericDefault() et al. need to be thread safe? +// FIXME: maybe put this in gdiplus.c? + +extern "C" void *_GdipStringFormatCachedGenericDefault; +extern "C" void *_GdipStringFormatCachedGenericTypographic; + +__inline__ const StringFormat* StringFormat::GenericDefault() +{ + if (!_GdipStringFormatCachedGenericDefault) { + GpStringFormat *nativeStringFormat = 0; + Status status = DllExports::GdipStringFormatGetGenericDefault( + &nativeStringFormat); + if (status == Ok && nativeStringFormat) { + _GdipStringFormatCachedGenericDefault = (void*) + new StringFormat(nativeStringFormat, Ok); + } + } + return (StringFormat*) _GdipStringFormatCachedGenericDefault; +} + +__inline__ const StringFormat* StringFormat::GenericTypographic() +{ + if (!_GdipStringFormatCachedGenericTypographic) { + GpStringFormat *nativeStringFormat = 0; + Status status = DllExports::GdipStringFormatGetGenericTypographic( + &nativeStringFormat); + if (status == Ok && nativeStringFormat) { + _GdipStringFormatCachedGenericTypographic = (void*) + new StringFormat(nativeStringFormat, Ok); + } + } + return (StringFormat*) _GdipStringFormatCachedGenericTypographic; +} + + + +#endif /* __GDIPLUS_STRINGFORMAT_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 gdiplus/gdiplustypes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gdiplus/gdiplustypes.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,456 @@ +/* + * gdiplustypes.h + * + * GDI+ basic type declarations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_TYPES_H +#define __GDIPLUS_TYPES_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#define WINGDIPAPI __stdcall +#define GDIPCONST const + +typedef enum GpStatus { + Ok = 0, + GenericError = 1, + InvalidParameter = 2, + OutOfMemory = 3, + ObjectBusy = 4, + InsufficientBuffer = 5, + NotImplemented = 6, + Win32Error = 7, + WrongState = 8, + Aborted = 9, + FileNotFound = 10, + ValueOverflow = 11, + AccessDenied = 12, + UnknownImageFormat = 13, + FontFamilyNotFound = 14, + FontStyleNotFound = 15, + NotTrueTypeFont = 16, + UnsupportedGdiplusVersion = 17, + GdiplusNotInitialized = 18, + PropertyNotFound = 19, + PropertyNotSupported = 20, + ProfileNotFound = 21 +} GpStatus; + +#ifdef __cplusplus +typedef GpStatus Status; +#endif + +typedef struct Size { + INT Width; + INT Height; + + #ifdef __cplusplus + Size(): Width(0), Height(0) {} + Size(INT width, INT height): Width(width), Height(height) {} + Size(const Size& size): Width(size.Width), Height(size.Height) {} + + BOOL Empty() const { + return Width == 0 && Height == 0; + } + BOOL Equals(const Size& size) const { + return Width == size.Width && Height == size.Height; + } + Size operator+(const Size& size) const { + return Size(Width + size.Width, Height + size.Height); + } + Size operator-(const Size& size) const { + return Size(Width - size.Width, Height - size.Height); + } + #endif /* __cplusplus */ +} Size; + +typedef struct SizeF { + REAL Width; + REAL Height; + + #ifdef __cplusplus + SizeF(): Width(0.0f), Height(0.0f) {} + SizeF(REAL width, REAL height): Width(width), Height(height) {} + SizeF(const SizeF& size): Width(size.Width), Height(size.Height) {} + + BOOL Empty() const { + return Width == 0.0f && Height == 0.0f; + } + BOOL Equals(const SizeF& size) const { + return Width == size.Width && Height == size.Height; + } + SizeF operator+(const SizeF& size) const { + return SizeF(Width + size.Width, Height + size.Height); + } + SizeF operator-(const SizeF& size) const { + return SizeF(Width - size.Width, Height - size.Height); + } + #endif /* __cplusplus */ +} SizeF; + +typedef struct Point { + INT X; + INT Y; + + #ifdef __cplusplus + Point(): X(0), Y(0) {} + Point(INT x, INT y): X(x), Y(y) {} + Point(const Point& point): X(point.X), Y(point.Y) {} + Point(const Size& size): X(size.Width), Y(size.Height) {} + + BOOL Equals(const Point& point) const { + return X == point.X && Y == point.Y; + } + Point operator+(const Point& point) const { + return Point(X + point.X, Y + point.Y); + } + Point operator-(const Point& point) const { + return Point(X - point.X, Y - point.Y); + } + #endif /* __cplusplus */ +} Point; + +typedef struct PointF { + REAL X; + REAL Y; + + #ifdef __cplusplus + PointF(): X(0.0f), Y(0.0f) {} + PointF(REAL x, REAL y): X(x), Y(y) {} + PointF(const PointF& point): X(point.X), Y(point.Y) {} + PointF(const SizeF& size): X(size.Width), Y(size.Height) {} + + BOOL Equals(const PointF& point) const { + return X == point.X && Y == point.Y; + } + PointF operator+(const PointF& point) const { + return PointF(X + point.X, Y + point.Y); + } + PointF operator-(const PointF& point) const { + return PointF(X - point.X, Y - point.Y); + } + #endif /* __cplusplus */ +} PointF; + +typedef struct Rect { + INT X; + INT Y; + INT Width; + INT Height; + + #ifdef __cplusplus + Rect(): X(0), Y(0), Width(0), Height(0) {} + Rect(const Point& location, const Size& size): + X(location.X), Y(location.Y), + Width(size.Width), Height(size.Height) {} + Rect(INT x, INT y, INT width, INT height): + X(x), Y(y), Width(width), Height(height) {} + + Rect* Clone() const { + return new Rect(X, Y, Width, Height); + } + BOOL Contains(INT x, INT y) const { + return X <= x && Y <= y && x < X+Width && y < Y+Height; + } + BOOL Contains(const Point& point) const { + return Contains(point.X, point.Y); + } + BOOL Contains(const Rect& rect) const { + return X <= rect.X && Y <= rect.Y + && rect.X+rect.Width <= X+Width + && rect.Y+rect.Height <= Y+Height; + } + BOOL Equals(const Rect& rect) const { + return X == rect.X && Y == rect.Y + && Width == rect.Width && Height == rect.Height; + } + INT GetBottom() const { + return Y+Height; + } + VOID GetBounds(Rect *rect) const { + if (rect != NULL) { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + INT GetLeft() const { + return X; + } + VOID GetLocation(Point *point) const { + if (point != NULL) { + point->X = X; + point->Y = Y; + } + } + INT GetRight() const { + return X+Width; + } + VOID GetSize(Size *size) const { + if (size != NULL) { + size->Width = Width; + size->Height = Height; + } + } + INT GetTop() const { + return Y; + } + BOOL IsEmptyArea() const { + return Width <= 0 || Height <= 0; + } + VOID Inflate(INT dx, INT dy) { + X -= dx; + Y -= dy; + Width += 2*dx; + Height += 2*dy; + } + VOID Inflate(const Point& point) { + Inflate(point.X, point.Y); + } + static BOOL Intersect(Rect& c, const Rect& a, const Rect& b) { + INT intersectLeft = (a.X < b.X) ? b.X : a.X; + INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y; + INT intersectRight = (a.GetRight() < b.GetRight()) + ? a.GetRight() : b.GetRight(); + INT intersectBottom = (a.GetBottom() < b.GetBottom()) + ? a.GetBottom() : b.GetBottom(); + c.X = intersectLeft; + c.Y = intersectTop; + c.Width = intersectRight - intersectLeft; + c.Height = intersectBottom - intersectTop; + return !c.IsEmptyArea(); + } + BOOL Intersect(const Rect& rect) { + return Intersect(*this, *this, rect); + } + BOOL IntersectsWith(const Rect& rc) const { + INT intersectLeft = (X < rc.X) ? rc.X : X; + INT intersectTop = (Y < rc.Y) ? rc.Y : Y; + INT intersectRight = (GetRight() < rc.GetRight()) + ? GetRight() : rc.GetRight(); + INT intersectBottom = (GetBottom() < rc.GetBottom()) + ? GetBottom() : rc.GetBottom(); + return intersectLeft < intersectRight + && intersectTop < intersectBottom; + } + VOID Offset(INT dx, INT dy) { + X += dx; + Y += dy; + } + VOID Offset(const Point& point) { + Offset(point.X, point.Y); + } + static BOOL Union(Rect& c, const Rect& a, const Rect& b) { + INT unionLeft = (a.X < b.X) ? a.X : b.X; + INT unionTop = (a.Y < b.Y) ? a.Y : b.Y; + INT unionRight = (a.GetRight() < b.GetRight()) + ? b.GetRight() : a.GetRight(); + INT unionBottom = (a.GetBottom() < b.GetBottom()) + ? b.GetBottom() : a.GetBottom(); + c.X = unionLeft; + c.Y = unionTop; + c.Width = unionRight - unionLeft; + c.Height = unionBottom - unionTop; + return !c.IsEmptyArea(); + } + #endif /* __cplusplus */ +} Rect; + +typedef struct RectF { + REAL X; + REAL Y; + REAL Width; + REAL Height; + + #ifdef __cplusplus + RectF(): X(0.0f), Y(0.0f), Width(0.0f), Height(0.0f) {} + RectF(const PointF& location, const SizeF& size): + X(location.X), Y(location.Y), + Width(size.Width), Height(size.Height) {} + RectF(REAL x, REAL y, REAL width, REAL height): + X(x), Y(y), Width(width), Height(height) {} + + RectF* Clone() const { + return new RectF(X, Y, Width, Height); + } + BOOL Contains(REAL x, REAL y) const { + return X <= x && Y <= y && x < X+Width && y < Y+Height; + } + BOOL Contains(const PointF& point) const { + return Contains(point.X, point.Y); + } + BOOL Contains(const RectF& rect) const { + return X <= rect.X && Y <= rect.Y + && rect.X+rect.Width <= X+Width + && rect.Y+rect.Height <= Y+Height; + } + BOOL Equals(const RectF& rect) const { + return X == rect.X && Y == rect.Y + && Width == rect.Width && Height == rect.Height; + } + REAL GetBottom() const { + return Y+Height; + } + VOID GetBounds(RectF *rect) const { + if (rect != NULL) { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + REAL GetLeft() const { + return X; + } + VOID GetLocation(PointF *point) const { + if (point != NULL) { + point->X = X; + point->Y = Y; + } + } + REAL GetRight() const { + return X+Width; + } + VOID GetSize(SizeF *size) const { + if (size != NULL) { + size->Width = Width; + size->Height = Height; + } + } + REAL GetTop() const { + return Y; + } + BOOL IsEmptyArea() const { + return Width <= 0.0f || Height <= 0.0f; + } + VOID Inflate(REAL dx, REAL dy) { + X -= dx; + Y -= dy; + Width += 2*dx; + Height += 2*dy; + } + VOID Inflate(const PointF& point) { + Inflate(point.X, point.Y); + } + static BOOL Intersect(RectF& c, const RectF& a, const RectF& b) { + INT intersectLeft = (a.X < b.X) ? b.X : a.X; + INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y; + INT intersectRight = (a.GetRight() < b.GetRight()) + ? a.GetRight() : b.GetRight(); + INT intersectBottom = (a.GetBottom() < b.GetBottom()) + ? a.GetBottom() : b.GetBottom(); + c.X = intersectLeft; + c.Y = intersectTop; + c.Width = intersectRight - intersectLeft; + c.Height = intersectBottom - intersectTop; + return !c.IsEmptyArea(); + } + BOOL Intersect(const RectF& rect) { + return Intersect(*this, *this, rect); + } + BOOL IntersectsWith(const RectF& rc) const { + INT intersectLeft = (X < rc.X) ? rc.X : X; + INT intersectTop = (Y < rc.Y) ? rc.Y : Y; + INT intersectRight = (GetRight() < rc.GetRight()) + ? GetRight() : rc.GetRight(); + INT intersectBottom = (GetBottom() < rc.GetBottom()) + ? GetBottom() : rc.GetBottom(); + return intersectLeft < intersectRight + && intersectTop < intersectBottom; + } + VOID Offset(REAL dx, REAL dy) { + X += dx; + Y += dy; + } + VOID Offset(const PointF& point) { + Offset(point.X, point.Y); + } + static BOOL Union(RectF& c, const RectF& a, const RectF& b) { + INT unionLeft = (a.X < b.X) ? a.X : b.X; + INT unionTop = (a.Y < b.Y) ? a.Y : b.Y; + INT unionRight = (a.GetRight() < b.GetRight()) + ? b.GetRight() : a.GetRight(); + INT unionBottom = (a.GetBottom() < b.GetBottom()) + ? b.GetBottom() : a.GetBottom(); + c.X = unionLeft; + c.Y = unionTop; + c.Width = unionRight - unionLeft; + c.Height = unionBottom - unionTop; + return !c.IsEmptyArea(); + } + #endif /* __cplusplus */ +} RectF; + +/* FIXME: Are descendants of this class, when compiled with g++, + binary compatible with MSVC++ code (especially GDIPLUS.DLL of course)? */ +#ifdef __cplusplus +struct GdiplusAbort { + virtual HRESULT __stdcall Abort(void) {} +}; +#else +typedef struct GdiplusAbort GdiplusAbort; /* incomplete type */ +#endif + +typedef struct CharacterRange { + INT First; + INT Length; + + #ifdef __cplusplus + CharacterRange(): First(0), Length(0) {} + CharacterRange(INT first, INT length): First(first), Length(length) {} + CharacterRange& operator=(const CharacterRange& rhs) { + /* This gracefully handles self-assignment */ + First = rhs.First; + Length = rhs.Length; + return *this; + } + #endif /* __cplusplus */ +} CharacterRange; + +typedef struct PathData { + INT Count; + PointF *Points; + BYTE *Types; + + #ifdef __cplusplus + friend class GraphicsPath; + + PathData(): Count(0), Points(NULL), Types(NULL) {} + ~PathData() { + FreeArrays(); + } +private: + /* used by GraphicsPath::GetPathData, defined in gdipluspath.h */ + Status AllocateArrays(INT capacity); + VOID FreeArrays(); + #endif /* __cplusplus */ +} PathData; + +/* Callback function types */ +/* FIXME: need a correct definition for these function pointer types */ +typedef void *DebugEventProc; +typedef BOOL CALLBACK (*EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*); +typedef void *DrawImageAbort; +typedef void *GetThumbnailImageAbort; + + +#endif /* __GDIPLUS_TYPES_H */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/fcntl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/fcntl.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,7 @@ +/* + * This file is part of the Mingw32 package. + * + * This fcntl.h maps to the root fcntl.h + */ + +#include <fcntl.h>
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/file.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/file.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,7 @@ +/* + * This file is part of the Mingw32 package. + * + * This file.h maps to the root fcntl.h + * TODO? + */ +#include <fcntl.h>
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/locking.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/locking.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,31 @@ +/* + * locking.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + * Constants for the mode parameter of the locking function. + * + */ + +#ifndef _LOCKING_H_ +#define _LOCKING_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#define _LK_UNLCK 0 /* Unlock */ +#define _LK_LOCK 1 /* Lock */ +#define _LK_NBLCK 2 /* Non-blocking lock */ +#define _LK_RLCK 3 /* Lock for read only */ +#define _LK_NBRLCK 4 /* Non-blocking lock for read only */ + +#ifndef NO_OLDNAMES +#define LK_UNLCK _LK_UNLCK +#define LK_LOCK _LK_LOCK +#define LK_NBLCK _LK_NBLCK +#define LK_RLCK _LK_RLCK +#define LK_NBRLCK _LK_NBRLCK +#endif /* Not NO_OLDNAMES */ + +#endif /* Not _LOCKING_H_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/param.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/param.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,22 @@ +/* + * param.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + */ + +#ifndef _SYS_PARAM_H +#define _SYS_PARAM_H + +#include <sys/types.h> +#include <limits.h> + +/* These are useful for cross-compiling */ +#define BIG_ENDIAN 4321 +#define LITTLE_ENDIAN 1234 +#define BYTE_ORDER LITTLE_ENDIAN + +#define MAXPATHLEN PATH_MAX + +#endif
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/stat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/stat.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,279 @@ +/* + * stat.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + * Symbolic constants for opening and creating files, also stat, fstat and + * chmod functions. + * + */ + +#ifndef _STAT_H_ +#define _STAT_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#define __need_size_t +#define __need_wchar_t +#ifndef RC_INVOKED +#include <stddef.h> +#endif /* Not RC_INVOKED */ + +#include <sys/types.h> + +/* + * Constants for the stat st_mode member. + */ +#define _S_IFIFO 0x1000 /* FIFO */ +#define _S_IFCHR 0x2000 /* Character */ +#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */ +#define _S_IFDIR 0x4000 /* Directory */ +#define _S_IFREG 0x8000 /* Regular */ + +#define _S_IFMT 0xF000 /* File type mask */ + +#define _S_IEXEC 0x0040 +#define _S_IWRITE 0x0080 +#define _S_IREAD 0x0100 + +#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC) +#define _S_IXUSR _S_IEXEC +#define _S_IWUSR _S_IWRITE +#define _S_IRUSR _S_IREAD + +#define _S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) +#define _S_ISFIFO(m) (((m) & _S_IFMT) == _S_IFIFO) +#define _S_ISCHR(m) (((m) & _S_IFMT) == _S_IFCHR) +#define _S_ISBLK(m) (((m) & _S_IFMT) == _S_IFBLK) +#define _S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG) + +#ifndef _NO_OLDNAMES + +#define S_IFIFO _S_IFIFO +#define S_IFCHR _S_IFCHR +#define S_IFBLK _S_IFBLK +#define S_IFDIR _S_IFDIR +#define S_IFREG _S_IFREG +#define S_IFMT _S_IFMT +#define S_IEXEC _S_IEXEC +#define S_IWRITE _S_IWRITE +#define S_IREAD _S_IREAD +#define S_IRWXU _S_IRWXU +#define S_IXUSR _S_IXUSR +#define S_IWUSR _S_IWUSR +#define S_IRUSR _S_IRUSR + +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) + +#endif /* Not _NO_OLDNAMES */ + +#ifndef RC_INVOKED + +#ifndef _STAT_DEFINED +/* + * The structure manipulated and returned by stat and fstat. + * + * NOTE: If called on a directory the values in the time fields are not only + * invalid, they will cause localtime et. al. to return NULL. And calling + * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! + */ +struct _stat +{ + _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ + _ino_t st_ino; /* Always zero ? */ + _mode_t st_mode; /* See above constants */ + short st_nlink; /* Number of links. */ + short st_uid; /* User: Maybe significant on NT ? */ + short st_gid; /* Group: Ditto */ + _dev_t st_rdev; /* Seems useless (not even filled in) */ + _off_t st_size; /* File size in bytes */ + time_t st_atime; /* Accessed date (always 00:00 hrs local + * on FAT) */ + time_t st_mtime; /* Modified time */ + time_t st_ctime; /* Creation time */ +}; + +#ifndef _NO_OLDNAMES +/* NOTE: Must be the same as _stat above. */ +struct stat +{ + dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ + ino_t st_ino; /* Always zero ? */ + mode_t st_mode; /* See above constants */ + short st_nlink; /* Number of links. */ + short st_uid; /* User: Maybe significant on NT ? */ + short st_gid; /* Group: Ditto */ + dev_t st_rdev; /* Seems useless (not even filled in) */ + off_t st_size; /* File size in bytes */ + time_t st_atime; /* Accessed date (always 00:00 hrs local + * on FAT) */ + time_t st_mtime; /* Modified time */ + time_t st_ctime; /* Creation time */ +}; +#endif /* _NO_OLDNAMES */ + +#if defined (__MSVCRT__) +struct _stati64 { + _dev_t st_dev; + _ino_t st_ino; + _mode_t st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +}; +#if __MSVCRT_VERSION__ >= 0x0601 +struct __stat64 +{ + _dev_t st_dev; + _ino_t st_ino; + _mode_t st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + __time64_t st_atime; + __time64_t st_mtime; + __time64_t st_ctime; +}; +#endif /* __MSVCRT_VERSION__ >= 0x0601 */ +#if __MSVCRT_VERSION__ >= 0x0800 +struct __stat32 +{ + _dev_t st_dev; + _ino_t st_ino; + _mode_t st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int32 st_size; + __time32_t st_atime; + __time32_t st_mtime; + __time32_t st_ctime; +}; +struct _stat32i64 { + _dev_t st_dev; + _ino_t st_ino; + _mode_t st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + __time32_t st_atime; + __time32_t st_mtime; + __time32_t st_ctime; +}; +struct _stat64i32 { + _dev_t st_dev; + _ino_t st_ino; + _mode_t st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int32 st_size; + __time64_t st_atime; + __time64_t st_mtime; + __time64_t st_ctime; +}; +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ +#endif /* __MSVCRT__ */ +#define _STAT_DEFINED +#endif /* _STAT_DEFINED */ + +#ifdef __cplusplus +extern "C" { +#endif + +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _fstat (int, struct _stat*); +#endif +_CRTIMP int __cdecl __MINGW_NOTHROW _chmod (const char*, int); +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _stat (const char*, struct _stat*); +#endif + +#ifndef _NO_OLDNAMES +/* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ +/* These functions live in liboldnames.a. */ +_CRTIMP int __cdecl __MINGW_NOTHROW fstat (int, struct stat*); +_CRTIMP int __cdecl __MINGW_NOTHROW chmod (const char*, int); +_CRTIMP int __cdecl __MINGW_NOTHROW stat (const char*, struct stat*); + +#endif /* Not _NO_OLDNAMES */ + +#if defined (__MSVCRT__) +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _fstati64(int, struct _stati64 *); +_CRTIMP int __cdecl __MINGW_NOTHROW _stati64(const char *, struct _stati64 *); +#endif +/* These require newer versions of msvcrt.dll (6.10 or higher). */ +#if __MSVCRT_VERSION__ >= 0x0601 +_CRTIMP int __cdecl __MINGW_NOTHROW _fstat64 (int, struct __stat64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _stat64 (const char*, struct __stat64*); +#endif /* __MSVCRT_VERSION__ >= 0x0601 */ +#if __MSVCRT_VERSION__ >= 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _fstat32 (int, struct __stat32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _stat32 (const char*, struct __stat32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _fstat32i64 (int, struct _stat32i64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _fstat64i32 (int, struct _stat64i32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _stat32i64 (const char*, struct _stat32i64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _stat64i32 (const char*, struct _stat64i32*); +#ifndef _USE_32BIT_TIME_T +_CRTALIAS int __cdecl __MINGW_NOTHROW _fstat (int _v1, struct _stat* _v2) { return(_fstat64i32 (_v1,(struct _stat64i32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _stat (const char* _v1, struct _stat* _v2) { return(_stat64i32 (_v1,(struct _stat64i32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _fstati64 (int _v1, struct _stati64* _v2) { return(_fstat64 (_v1,(struct __stat64*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _stati64 (const char* _v1, struct _stati64* _v2) { return(_stat64 (_v1,(struct __stat64*)_v2)); } +#else +_CRTALIAS int __cdecl __MINGW_NOTHROW _fstat (int _v1, struct _stat* _v2) { return(_fstat32 (_v1,(struct __stat32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _stat (const char* _v1, struct _stat* _v2) { return(_stat32 (_v1,(struct __stat32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _fstati64 (int _v1, struct _stati64* _v2) { return(_fstat32i64 (_v1,(struct _stat32i64*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _stati64 (const char* _v1, struct _stati64* _v2) { return(_stat32i64 (_v1,(struct _stat32i64*)_v2)); } +#endif /* !_USE_32BIT_TIME_T */ +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ + + +#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */ +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _wstat(const wchar_t*, struct _stat*); +_CRTIMP int __cdecl __MINGW_NOTHROW _wstati64 (const wchar_t*, struct _stati64*); +#endif +#if __MSVCRT_VERSION__ >= 0x0601 +_CRTIMP int __cdecl __MINGW_NOTHROW _wstat64 (const wchar_t*, struct __stat64*); +#endif /* __MSVCRT_VERSION__ >= 0x0601 */ +#if __MSVCRT_VERSION__ >= 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _wstat32 (const wchar_t*, struct __stat32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _wstat32i64 (const wchar_t*, struct _stat32i64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _wstat64i32 (const wchar_t*, struct _stat64i32*); +#ifndef _USE_32BIT_TIME_T +_CRTALIAS int __cdecl __MINGW_NOTHROW _wstat (const wchar_t* _v1, struct _stat* _v2) { return(_wstat64i32 (_v1,(struct _stat64i32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat64 (_v1,(struct __stat64*)_v2)); } +#else +_CRTALIAS int __cdecl __MINGW_NOTHROW _wstat (const wchar_t* _v1, struct _stat* _v2) { return(_wstat32 (_v1,(struct __stat32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat32i64 (_v1,(struct _stat32i64*)_v2)); } +#endif /* !_USE_32BIT_TIME_T */ +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ +#define _WSTAT_DEFINED +#endif /* _WSTAT_DEFIND */ +#endif /* __MSVCRT__ */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* Not _STAT_H_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/time.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/time.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,47 @@ +#ifndef _SYS_TIME_H_ +#define _SYS_TIME_H_ +#include <time.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _TIMEVAL_DEFINED /* also in winsock[2].h */ +#define _TIMEVAL_DEFINED +struct timeval { + long tv_sec; + long tv_usec; +}; +#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) +#define timercmp(tvp, uvp, cmp) \ + (((tvp)->tv_sec != (uvp)->tv_sec) ? \ + ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ + ((tvp)->tv_usec cmp (uvp)->tv_usec)) +#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 +#endif /* _TIMEVAL_DEFINED */ + +/* Provided for compatibility with code that assumes that + the presence of gettimeofday function implies a definition + of struct timezone. */ +struct timezone +{ + int tz_minuteswest; /* of Greenwich */ + int tz_dsttime; /* type of dst correction to apply */ +}; + +/* + Implementation as per: + The Open Group Base Specifications, Issue 6 + IEEE Std 1003.1, 2004 Edition + + The timezone pointer arg is ignored. Errors are ignored. +*/ +int __cdecl __MINGW_NOTHROW gettimeofday(struct timeval *__restrict__, + void *__restrict__ /* tzp (unused) */); + +#ifdef __cplusplus +} +#endif + + +#endif /* _SYS_TIME_H_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/timeb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/timeb.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,97 @@ +/* + * timeb.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + * Support for the UNIX System V ftime system call. + * + */ + +#ifndef _TIMEB_H_ +#define _TIMEB_H_ + +/* All the headers include this file. */ +#include <_mingw.h> +#include <sys/types.h> + +#ifndef RC_INVOKED + +/* + * TODO: Structure not tested. + */ +struct _timeb +{ + time_t time; + short millitm; + short timezone; + short dstflag; +}; + +#if __MSVCRT_VERSION__ >= 0x0800 +/* + * TODO: Structure not tested. + */ +struct __timeb32 +{ + __time32_t time; + short millitm; + short timezone; + short dstflag; +}; +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ + +#ifndef _NO_OLDNAMES +/* + * TODO: Structure not tested. + */ +struct timeb +{ + time_t time; + short millitm; + short timezone; + short dstflag; +}; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* TODO: Not tested. */ +_CRTIMP void __cdecl __MINGW_NOTHROW _ftime (struct _timeb*); + +#ifndef _NO_OLDNAMES +/* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ +_CRTIMP void __cdecl __MINGW_NOTHROW ftime (struct timeb*); +#endif /* Not _NO_OLDNAMES */ + +/* This requires newer versions of msvcrt.dll (6.10 or higher). */ +#if __MSVCRT_VERSION__ >= 0x0601 +struct __timeb64 +{ + __time64_t time; + short millitm; + short timezone; + short dstflag; +}; + +_CRTIMP void __cdecl __MINGW_NOTHROW _ftime64 (struct __timeb64*); +#endif /* __MSVCRT_VERSION__ >= 0x0601 */ + +#if __MSVCRT_VERSION__ >= 0x0800 +_CRTIMP void __cdecl __MINGW_NOTHROW _ftime32 (struct __timeb32*); +#ifndef _USE_32BIT_TIME_T +_CRTALIAS void __cdecl __MINGW_NOTHROW _ftime (struct _timeb* _v) { return(_ftime64 ((struct __timeb64*)_v)); } +#else +_CRTALIAS void __cdecl __MINGW_NOTHROW _ftime (struct _timeb* _v) { return(_ftime32 ((struct __timeb32*)_v)); } +#endif +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* Not _TIMEB_H_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/types.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/types.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,138 @@ +/* + * types.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + * The definition of constants, data types and global variables. + * + */ + +#ifndef _TYPES_H_ +#define _TYPES_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#define __need_wchar_t +#define __need_size_t +#define __need_ptrdiff_t +#ifndef RC_INVOKED +#include <stddef.h> +#endif /* Not RC_INVOKED */ + +#ifndef RC_INVOKED + +#ifndef _TIME32_T_DEFINED +typedef __int32 __time32_t; +#define _TIME32_T_DEFINED +#endif + +#ifndef _TIME64_T_DEFINED +typedef __int64 __time64_t; +#define _TIME64_T_DEFINED +#endif + +#ifndef _TIME_T_DEFINED +/* FIXME __STRICT_ANSI__ ! */ +#if __MSVCRT_VERSION__ >= 0x0800 +#ifndef _USE_32BIT_TIME_T +typedef __time64_t time_t; +#else +typedef __time32_t time_t; +#endif /* !_USE_32BIT_TIME_T */ +#else +typedef __time32_t time_t; +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ +#define _TIME_T_DEFINED +#endif + +#ifndef _OFF_T_ +#define _OFF_T_ +typedef long _off_t; + +#ifndef _NO_OLDNAMES +typedef _off_t off_t; +#endif +#endif /* Not _OFF_T_ */ + + +#ifndef _DEV_T_ +#define _DEV_T_ +#ifdef __MSVCRT__ +typedef unsigned int _dev_t; +#else +typedef short _dev_t; +#endif + +#ifndef _NO_OLDNAMES +typedef _dev_t dev_t; +#endif +#endif /* Not _DEV_T_ */ + + +#ifndef _INO_T_ +#define _INO_T_ +typedef short _ino_t; + +#ifndef _NO_OLDNAMES +typedef _ino_t ino_t; +#endif +#endif /* Not _INO_T_ */ + + +#ifndef _PID_T_ +#define _PID_T_ +typedef int _pid_t; + +#ifndef _NO_OLDNAMES +typedef _pid_t pid_t; +#endif +#endif /* Not _PID_T_ */ + + +#ifndef _MODE_T_ +#define _MODE_T_ +typedef unsigned short _mode_t; + +#ifndef _NO_OLDNAMES +typedef _mode_t mode_t; +#endif +#endif /* Not _MODE_T_ */ + + +#ifndef _SIGSET_T_ +#define _SIGSET_T_ +typedef int _sigset_t; + +#ifndef _NO_OLDNAMES +typedef _sigset_t sigset_t; +#endif +#endif /* Not _SIGSET_T_ */ + +#ifndef _SSIZE_T_ +#define _SSIZE_T_ +typedef long _ssize_t; + +#ifndef _NO_OLDNAMES +typedef _ssize_t ssize_t; +#endif +#endif /* Not _SSIZE_T_ */ + +#ifndef _FPOS64_T_ +#define _FPOS64_T_ +typedef long long fpos64_t; +#endif + +#ifndef _OFF64_T_ +#define _OFF64_T_ +typedef long long off64_t; +#endif + +#if !defined __NO_ISOCEXT +typedef unsigned int useconds_t; +#endif /* Not __NO_ISOCEXT */ + +#endif /* Not RC_INVOKED */ + +#endif /* Not _TYPES_H_ */
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/unistd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/unistd.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,6 @@ +/* + * This file is part of the Mingw32 package. + * + * unistd.h maps (roughly) to io.h + */ +#include <io.h>
diff -r 5853bf44af9f -r 0c3bcea5b4d0 sys/utime.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/utime.h Mon Mar 05 04:56:58 2012 +0000 @@ -0,0 +1,110 @@ +/* + * utime.h + * This file has no copyright assigned and is placed in the Public Domain. + * This file is a part of the mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within the package. + * + * Support for the utime function. + * + */ +#ifndef _UTIME_H_ +#define _UTIME_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#define __need_wchar_t +#define __need_size_t +#ifndef RC_INVOKED +#include <stddef.h> +#endif /* Not RC_INVOKED */ +#include <sys/types.h> + +#ifndef RC_INVOKED + +/* + * Structure used by _utime function. + */ +struct _utimbuf +{ + time_t actime; /* Access time */ + time_t modtime; /* Modification time */ +}; +#if __MSVCRT_VERSION__ >= 0x0800 +struct __utimbuf32 +{ + __time32_t actime; + __time32_t modtime; +}; +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ + + +#ifndef _NO_OLDNAMES +/* NOTE: Must be the same as _utimbuf above. */ +struct utimbuf +{ + time_t actime; + time_t modtime; +}; +#endif /* Not _NO_OLDNAMES */ + +#ifdef __cplusplus +extern "C" { +#endif + +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _utime (const char*, struct _utimbuf*); +#endif + +#ifndef _NO_OLDNAMES +/* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ +_CRTIMP int __cdecl __MINGW_NOTHROW utime (const char*, struct utimbuf*); +#endif /* Not _NO_OLDNAMES */ + +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _futime (int, struct _utimbuf*); +#endif + +/* The wide character version, only available for MSVCRT versions of the + * C runtime library. */ +#ifdef __MSVCRT__ +#if __MSVCRT_VERSION__ < 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _wutime (const wchar_t*, struct _utimbuf*); +#endif +#endif /* MSVCRT runtime */ + +/* These require newer versions of msvcrt.dll (6.10 or higher). */ +#if __MSVCRT_VERSION__ >= 0x0601 +struct __utimbuf64 +{ + __time64_t actime; + __time64_t modtime; +}; + +_CRTIMP int __cdecl __MINGW_NOTHROW _utime64 (const char*, struct __utimbuf64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _wutime64 (const wchar_t*, struct __utimbuf64*); +_CRTIMP int __cdecl __MINGW_NOTHROW _futime64 (int, struct __utimbuf64*); +#endif /* __MSVCRT_VERSION__ >= 0x0601 */ + +#if __MSVCRT_VERSION__ >= 0x0800 +_CRTIMP int __cdecl __MINGW_NOTHROW _utime32 (const char*, struct __utimbuf32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _wutime32 (const wchar_t*, struct __utimbuf32*); +_CRTIMP int __cdecl __MINGW_NOTHROW _futime32 (int, struct __utimbuf32*); +#ifndef _USE_32BIT_TIME_T +_CRTALIAS int __cdecl __MINGW_NOTHROW _utime (const char* _v1, struct _utimbuf* _v2) { return(_utime64 (_v1,(struct __utimbuf64*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _wutime (const wchar_t* _v1, struct _utimbuf* _v2) { return(_wutime64 (_v1,(struct __utimbuf64*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _futime (int _v1, struct _utimbuf* _v2) { return(_futime64 (_v1,(struct __utimbuf64*)_v2)); } +#else +_CRTALIAS int __cdecl __MINGW_NOTHROW _utime (const char* _v1, struct _utimbuf* _v2) { return(_utime32 (_v1,(struct __utimbuf32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _wutime (const wchar_t* _v1, struct _utimbuf* _v2) { return(_wutime32 (_v1,(struct __utimbuf32*)_v2)); } +_CRTALIAS int __cdecl __MINGW_NOTHROW _futime (int _v1, struct _utimbuf* _v2) { return(_futime32 (_v1,(struct __utimbuf32*)_v2)); } +#endif +#endif /* __MSVCRT_VERSION__ >= 0x0800 */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* Not _UTIME_H_ */