/* ** (c)Copyright 2014 Prasad Dixit (pjdixit@gmail.com). All rights reserved. ** ** Unauthorized copying of this file, via any medium is strictly prohibited. ** Proprietary and confidential. ** ** Project: XXXX ** */ /* ** Notes: ** 1. ** */ /* **ToDo: ** 1. ** 2. */ #ifndef __WGLWIDGET_WRAPPER_H__ #define __WGLWIDGET_WRAPPER_H__ #include // Standard Include file(s) // Include file(s) // Global declaration(s) //typedef khronos_int8_t GLbyte; //typedef khronos_float_t GLclampf; //typedef khronos_int32_t GLfixed; typedef short GLshort; typedef unsigned short GLushort; typedef void GLvoid; typedef struct __GLsync *GLsync; //typedef khronos_int64_t GLint64; //typedef khronos_uint64_t GLuint64; typedef unsigned int GLenum; typedef unsigned int GLuint; typedef char GLchar; //typedef khronos_float_t GLfloat; //typedef khronos_ssize_t GLsizeiptr; //typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef unsigned char GLboolean; typedef int GLsizei; //typedef khronos_uint8_t GLubyte; namespace Wt { // WT_WGL_TEMPLATE is undefined at the end of WGLWidget.h. Define it here again for use in WGLWidgetWrapper class. // It is undefined again at the end of the class declaration. #if !defined(WT_TARGET_JAVA) #define WT_WGL_TEMPLATE(...) template < __VA_ARGS__ > #else #define WT_WGL_TEMPLATE(...) #endif /* ** A wrapper class for WGLWidget to keep OpenGL ES code base portable to Wt with minimal effort ** **/ class WGLWidgetWrapper : public WGLWidget { public: // Constructor(s) WGLWidgetWrapper(WContainerWidget *parent = 0) : WGLWidget(parent) { } // Destructor(s) //~WGLWidgetWrapper(); // Enumerator(s) /*! \brief The enourmous GLenum * * This enum contains all numeric constants defined by the WebGL standard. */ enum GLenum { /* ClearBufferMask */ //DEPTH_BUFFER_BIT = 0x00000100, //STENCIL_BUFFER_BIT = 0x00000400, //COLOR_BUFFER_BIT = 0x00004000, GL_DEPTH_BUFFER_BIT = DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT = STENCIL_BUFFER_BIT, GL_COLOR_BUFFER_BIT = COLOR_BUFFER_BIT, /* BeginMode */ //POINTS = 0x0000, //LINES = 0x0001, //LINE_LOOP = 0x0002, //LINE_STRIP = 0x0003, //TRIANGLES = 0x0004, //TRIANGLE_STRIP = 0x0005, //TRIANGLE_FAN = 0x0006, GL_POINTS = POINTS, GL_LINES = LINES, GL_LINE_LOOP = LINE_LOOP, GL_LINE_STRIP = LINE_STRIP, GL_TRIANGLES = TRIANGLES, GL_TRIANGLE_STRIP = TRIANGLE_STRIP, GL_TRIANGLE_FAN = TRIANGLE_FAN, /* AlphaFunction (not supported in ES20) */ /* NEVER */ /* LESS */ /* EQUAL */ /* LEQUAL */ /* GREATER */ /* NOTEQUAL */ /* GEQUAL */ /* ALWAYS */ /* BlendingFactorDest */ //ZERO = 0x0, //ONE = 0x1, //SRC_COLOR = 0x0300, //ONE_MINUS_SRC_COLOR = 0x0301, //SRC_ALPHA = 0x0302, //ONE_MINUS_SRC_ALPHA = 0x0303, //DST_ALPHA = 0x0304, //ONE_MINUS_DST_ALPHA = 0x0305, GL_ZERO = ZERO, GL_ONE = ONE, GL_SRC_COLOR = SRC_COLOR, GL_ONE_MINUS_SRC_COLOR = ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA = SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA = ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA = DST_ALPHA, GL_ONE_MINUS_DST_ALPHA = ONE_MINUS_DST_ALPHA, /* BlendingFactorSrc */ /* ZERO */ /* ONE */ //DST_COLOR = 0x0306, //ONE_MINUS_DST_COLOR = 0x0307, //SRC_ALPHA_SATURATE = 0x0308, GL_DST_COLOR = DST_COLOR, GL_ONE_MINUS_DST_COLOR = ONE_MINUS_DST_COLOR, GL_SRC_ALPHA_SATURATE = SRC_ALPHA_SATURATE, /* SRC_ALPHA */ /* ONE_MINUS_SRC_ALPHA */ /* DST_ALPHA */ /* ONE_MINUS_DST_ALPHA */ /* BlendEquationSeparate */ //FUNC_ADD = 0x8006, //BLEND_EQUATION = 0x8009, //BLEND_EQUATION_RGB = 0x8009, /* same as BLEND_EQUATION */ //BLEND_EQUATION_ALPHA = 0x883D, GL_FUNC_ADD = FUNC_ADD, GL_BLEND_EQUATION = BLEND_EQUATION, GL_BLEND_EQUATION_RGB = BLEND_EQUATION_RGB, GL_BLEND_EQUATION_ALPHA = BLEND_EQUATION_ALPHA, /* BlendSubtract */ //FUNC_SUBTRACT = 0x800A, //FUNC_REVERSE_SUBTRACT = 0x800B, GL_FUNC_SUBTRACT = FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT = FUNC_REVERSE_SUBTRACT, /* Separate Blend Functions */ //BLEND_DST_RGB = 0x80C8, //BLEND_SRC_RGB = 0x80C9, //BLEND_DST_ALPHA = 0x80CA, //BLEND_SRC_ALPHA = 0x80CB, //CONSTANT_COLOR = 0x8001, //ONE_MINUS_CONSTANT_COLOR = 0x8002, //CONSTANT_ALPHA = 0x8003, //ONE_MINUS_CONSTANT_ALPHA = 0x8004, //BLEND_COLOR = 0x8005, GL_BLEND_DST_RGB = BLEND_DST_RGB, GL_BLEND_SRC_RGB = BLEND_SRC_RGB, GL_BLEND_DST_ALPHA = BLEND_DST_ALPHA, GL_BLEND_SRC_ALPHA = BLEND_SRC_ALPHA, GL_CONSTANT_COLOR = CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR = ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA = CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA = ONE_MINUS_CONSTANT_ALPHA, GL_BLEND_COLOR = BLEND_COLOR, /* Buffer Objects */ //ARRAY_BUFFER = 0x8892, //ELEMENT_ARRAY_BUFFER = 0x8893, //ARRAY_BUFFER_BINDING = 0x8894, //ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, GL_ARRAY_BUFFER = ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER = ELEMENT_ARRAY_BUFFER, GL_ARRAY_BUFFER_BINDING = ARRAY_BUFFER_BINDING, GL_ELEMENT_ARRAY_BUFFER_BINDING = ELEMENT_ARRAY_BUFFER_BINDING, //STREAM_DRAW = 0x88E0, //STATIC_DRAW = 0x88E4, //DYNAMIC_DRAW = 0x88E8, GL_STREAM_DRAW = STREAM_DRAW, GL_STATIC_DRAW = STATIC_DRAW, GL_DYNAMIC_DRAW = DYNAMIC_DRAW, //BUFFER_SIZE = 0x8764, //BUFFER_USAGE = 0x8765, GL_BUFFER_SIZE = BUFFER_SIZE, GL_BUFFER_USAGE = BUFFER_USAGE, //CURRENT_VERTEX_ATTRIB = 0x8626, GL_CURRENT_VERTEX_ATTRIB = CURRENT_VERTEX_ATTRIB, /* CullFaceMode */ //FRONT = 0x0404, //BACK = 0x0405, //FRONT_AND_BACK = 0x0408, GL_FRONT = FRONT, GL_BACK = BACK, GL_FRONT_AND_BACK = FRONT_AND_BACK, /* DepthFunction */ /* NEVER */ /* LESS */ /* EQUAL */ /* LEQUAL */ /* GREATER */ /* NOTEQUAL */ /* GEQUAL */ /* ALWAYS */ /* EnableCap */ /* TEXTURE_2D */ //CULL_FACE = 0x0B44, //BLEND = 0x0BE2, //DITHER = 0x0BD0, //STENCIL_TEST = 0x0B90, //DEPTH_TEST = 0x0B71, //SCISSOR_TEST = 0x0C11, //POLYGON_OFFSET_FILL = 0x8037, //SAMPLE_ALPHA_TO_COVERAGE = 0x809E, //SAMPLE_COVERAGE = 0x80A0, GL_CULL_FACE = CULL_FACE, GL_BLEND = BLEND, GL_DITHER = DITHER, GL_STENCIL_TEST = STENCIL_TEST, GL_DEPTH_TEST = DEPTH_TEST, GL_SCISSOR_TEST = SCISSOR_TEST, GL_POLYGON_OFFSET_FILL = POLYGON_OFFSET_FILL, GL_SAMPLE_ALPHA_TO_COVERAGE = SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_COVERAGE = SAMPLE_COVERAGE, /* ErrorCode */ //NO_ERROR = 0x0, //INVALID_ENUM = 0x0500, //INVALID_VALUE = 0x0501, //INVALID_OPERATION = 0x0502, //OUT_OF_MEMORY = 0x0505, GL_NO_ERROR = NO_ERROR, GL_INVALID_ENUM = INVALID_ENUM, GL_INVALID_VALUE = INVALID_VALUE, GL_INVALID_OPERATION = INVALID_OPERATION, GL_OUT_OF_MEMORY = OUT_OF_MEMORY, /* FrontFaceDirection */ //CW = 0x0900, //CCW = 0x0901, GL_CW = CW, GL_CCW = CCW, /* GetPName */ //LINE_WIDTH = 0x0B21, //ALIASED_POINT_SIZE_RANGE = 0x846D, //ALIASED_LINE_WIDTH_RANGE = 0x846E, //CULL_FACE_MODE = 0x0B45, //FRONT_FACE = 0x0B46, //DEPTH_RANGE = 0x0B70, //DEPTH_WRITEMASK = 0x0B72, //DEPTH_CLEAR_VALUE = 0x0B73, //DEPTH_FUNC = 0x0B74, //STENCIL_CLEAR_VALUE = 0x0B91, //STENCIL_FUNC = 0x0B92, //STENCIL_FAIL = 0x0B94, //STENCIL_PASS_DEPTH_FAIL = 0x0B95, //STENCIL_PASS_DEPTH_PASS = 0x0B96, //STENCIL_REF = 0x0B97, //STENCIL_VALUE_MASK = 0x0B93, //STENCIL_WRITEMASK = 0x0B98, //STENCIL_BACK_FUNC = 0x8800, //STENCIL_BACK_FAIL = 0x8801, //STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, //STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, //STENCIL_BACK_REF = 0x8CA3, //STENCIL_BACK_VALUE_MASK = 0x8CA4, //STENCIL_BACK_WRITEMASK = 0x8CA5, //VIEWPORT = 0x0BA2, //SCISSOR_BOX = 0x0C10, GL_LINE_WIDTH = LINE_WIDTH, GL_ALIASED_POINT_SIZE_RANGE = ALIASED_POINT_SIZE_RANGE, GL_ALIASED_LINE_WIDTH_RANGE = ALIASED_LINE_WIDTH_RANGE, GL_CULL_FACE_MODE = CULL_FACE_MODE, GL_FRONT_FACE = FRONT_FACE, GL_DEPTH_RANGE = DEPTH_RANGE, GL_DEPTH_WRITEMASK = DEPTH_WRITEMASK, GL_DEPTH_CLEAR_VALUE = DEPTH_CLEAR_VALUE, GL_DEPTH_FUNC = DEPTH_FUNC, GL_STENCIL_CLEAR_VALUE = STENCIL_CLEAR_VALUE, GL_STENCIL_FUNC = STENCIL_FUNC, GL_STENCIL_FAIL = STENCIL_FAIL, GL_STENCIL_PASS_DEPTH_FAIL = STENCIL_PASS_DEPTH_FAIL, GL_STENCIL_PASS_DEPTH_PASS = STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF = STENCIL_REF, GL_STENCIL_VALUE_MASK = STENCIL_VALUE_MASK, GL_STENCIL_WRITEMASK = STENCIL_WRITEMASK, GL_STENCIL_BACK_FUNC = STENCIL_BACK_FUNC, GL_STENCIL_BACK_FAIL = STENCIL_BACK_FAIL, GL_STENCIL_BACK_PASS_DEPTH_FAIL = STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS = STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF = STENCIL_BACK_REF, GL_STENCIL_BACK_VALUE_MASK = STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK = STENCIL_BACK_WRITEMASK, GL_VIEWPORT = VIEWPORT, GL_SCISSOR_BOX = SCISSOR_BOX, /* SCISSOR_TEST */ //COLOR_CLEAR_VALUE = 0x0C22, //COLOR_WRITEMASK = 0x0C23, //UNPACK_ALIGNMENT = 0x0CF5, //PACK_ALIGNMENT = 0x0D05, //MAX_TEXTURE_SIZE = 0x0D33, //MAX_VIEWPORT_DIMS = 0x0D3A, //SUBPIXEL_BITS = 0x0D50, //RED_BITS = 0x0D52, //GREEN_BITS = 0x0D53, //BLUE_BITS = 0x0D54, //ALPHA_BITS = 0x0D55, //DEPTH_BITS = 0x0D56, //STENCIL_BITS = 0x0D57, //POLYGON_OFFSET_UNITS = 0x2A00, GL_COLOR_CLEAR_VALUE = COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK = COLOR_WRITEMASK, GL_UNPACK_ALIGNMENT = UNPACK_ALIGNMENT, GL_PACK_ALIGNMENT = PACK_ALIGNMENT, GL_MAX_TEXTURE_SIZE = MAX_TEXTURE_SIZE, GL_MAX_VIEWPORT_DIMS = MAX_VIEWPORT_DIMS, GL_SUBPIXEL_BITS = SUBPIXEL_BITS, GL_RED_BITS = RED_BITS, GL_GREEN_BITS = GREEN_BITS, GL_BLUE_BITS = BLUE_BITS, GL_ALPHA_BITS = ALPHA_BITS, GL_DEPTH_BITS = DEPTH_BITS, GL_STENCIL_BITS = STENCIL_BITS, GL_POLYGON_OFFSET_UNITS = POLYGON_OFFSET_UNITS, /* POLYGON_OFFSET_FILL */ //POLYGON_OFFSET_FACTOR = 0x8038, //TEXTURE_BINDING_2D = 0x8069, //SAMPLE_BUFFERS = 0x80A8, //SAMPLES = 0x80A9, //SAMPLE_COVERAGE_VALUE = 0x80AA, //SAMPLE_COVERAGE_INVERT = 0x80AB, GL_POLYGON_OFFSET_FACTOR = POLYGON_OFFSET_FACTOR, GL_TEXTURE_BINDING_2D = TEXTURE_BINDING_2D, GL_SAMPLE_BUFFERS = SAMPLE_BUFFERS, GL_SAMPLES = SAMPLES, GL_SAMPLE_COVERAGE_VALUE = SAMPLE_COVERAGE_VALUE, GL_SAMPLE_COVERAGE_INVERT = SAMPLE_COVERAGE_INVERT, /* GetTextureParameter */ /* TEXTURE_MAG_FILTER */ /* TEXTURE_MIN_FILTER */ /* TEXTURE_WRAP_S */ /* TEXTURE_WRAP_T */ //NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, //COMPRESSED_TEXTURE_FORMATS = 0x86A3, GL_NUM_COMPRESSED_TEXTURE_FORMATS = NUM_COMPRESSED_TEXTURE_FORMATS, GL_COMPRESSED_TEXTURE_FORMATS = COMPRESSED_TEXTURE_FORMATS, /* HintMode */ //DONT_CARE = 0x1100, //FASTEST = 0x1101, //NICEST = 0x1102, GL_DONT_CARE = DONT_CARE, GL_FASTEST = FASTEST, GL_NICEST = NICEST, /* HintTarget */ //GENERATE_MIPMAP_HINT = 0x8192, GL_GENERATE_MIPMAP_HINT = GENERATE_MIPMAP_HINT, /* DataType */ //BYTE = 0x1400, //UNSIGNED_BYTE = 0x1401, //SHORT = 0x1402, //UNSIGNED_SHORT = 0x1403, //INT = 0x1404, //UNSIGNED_INT = 0x1405, //FLOAT = 0x1406, GL_BYTE = BYTE, GL_UNSIGNED_BYTE = UNSIGNED_BYTE, GL_SHORT = SHORT, GL_UNSIGNED_SHORT = UNSIGNED_SHORT, GL_INT = INT, GL_UNSIGNED_INT = UNSIGNED_INT, GL_FLOAT = FLOAT, /* PixelFormat */ //DEPTH_COMPONENT = 0x1902, //ALPHA = 0x1906, //RGB = 0x1907, //RGBA = 0x1908, //LUMINANCE = 0x1909, //LUMINANCE_ALPHA = 0x190A, GL_DEPTH_COMPONENT = DEPTH_COMPONENT, GL_ALPHA = ALPHA, GL_RGB = RGB, GL_RGBA = RGBA, GL_LUMINANCE = LUMINANCE, GL_LUMINANCE_ALPHA = LUMINANCE_ALPHA, /* PixelType */ /* UNSIGNED_BYTE */ //UNSIGNED_SHORT_4_4_4_4 = 0x8033, //UNSIGNED_SHORT_5_5_5_1 = 0x8034, //UNSIGNED_SHORT_5_6_5 = 0x8363, GL_UNSIGNED_SHORT_4_4_4_4 = UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1 = UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_5_6_5 = UNSIGNED_SHORT_5_6_5, /* Shaders */ //FRAGMENT_SHADER = 0x8B30, //VERTEX_SHADER = 0x8B31, //MAX_VERTEX_ATTRIBS = 0x8869, //MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB, //MAX_VARYING_VECTORS = 0x8DFC, //MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D, //MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, //MAX_TEXTURE_IMAGE_UNITS = 0x8872, //MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD, //SHADER_TYPE = 0x8B4F, //DELETE_STATUS = 0x8B80, //LINK_STATUS = 0x8B82, //VALIDATE_STATUS = 0x8B83, //ATTACHED_SHADERS = 0x8B85, //ACTIVE_UNIFORMS = 0x8B86, //ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, //ACTIVE_ATTRIBUTES = 0x8B89, //ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, //SHADING_LANGUAGE_VERSION = 0x8B8C, //CURRENT_PROGRAM = 0x8B8D, GL_FRAGMENT_SHADER = FRAGMENT_SHADER, GL_VERTEX_SHADER = VERTEX_SHADER, GL_MAX_VERTEX_ATTRIBS = MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_UNIFORM_VECTORS = MAX_VERTEX_UNIFORM_VECTORS, GL_MAX_VARYING_VECTORS = MAX_VARYING_VECTORS, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_COMBINED_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS, GL_MAX_FRAGMENT_UNIFORM_VECTORS = MAX_FRAGMENT_UNIFORM_VECTORS, GL_SHADER_TYPE = SHADER_TYPE, GL_DELETE_STATUS = DELETE_STATUS, GL_LINK_STATUS = LINK_STATUS, GL_VALIDATE_STATUS = VALIDATE_STATUS, GL_ATTACHED_SHADERS = ATTACHED_SHADERS, GL_ACTIVE_UNIFORMS = ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH = ACTIVE_UNIFORM_MAX_LENGTH, GL_ACTIVE_ATTRIBUTES = ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_SHADING_LANGUAGE_VERSION = SHADING_LANGUAGE_VERSION, GL_CURRENT_PROGRAM = CURRENT_PROGRAM, /* StencilFunction */ //NEVER = 0x0200, //LESS = 0x0201, //EQUAL = 0x0202, //LEQUAL = 0x0203, //GREATER = 0x0204, //NOTEQUAL = 0x0205, //GEQUAL = 0x0206, //ALWAYS = 0x0207, GL_NEVER = NEVER, GL_LESS = LESS, GL_EQUAL = EQUAL, GL_LEQUAL = LEQUAL, GL_GREATER = GREATER, GL_NOTEQUAL = NOTEQUAL, GL_GEQUAL = GEQUAL, GL_ALWAYS = ALWAYS, /* StencilOp */ /* ZERO */ //KEEP = 0x1E00, //REPLACE = 0x1E01, //INCR = 0x1E02, //DECR = 0x1E03, //INVERT = 0x150A, //INCR_WRAP = 0x8507, //DECR_WRAP = 0x8508, GL_KEEP = KEEP, GL_REPLACE = REPLACE, GL_INCR = INCR, GL_DECR = DECR, GL_INVERT = INVERT, GL_INCR_WRAP = INCR_WRAP, GL_DECR_WRAP = DECR_WRAP, /* StringName */ //VENDOR = 0x1F00, //RENDERER = 0x1F01, //VERSION = 0x1F02, GL_VENDOR = VENDOR, GL_RENDERER = RENDERER, GL_VERSION = VERSION, /* TextureMagFilter */ //NEAREST = 0x2600, //LINEAR = 0x2601, GL_NEAREST = NEAREST, GL_LINEAR = LINEAR, /* TextureMinFilter */ /* NEAREST */ /* LINEAR */ //NEAREST_MIPMAP_NEAREST = 0x2700, //LINEAR_MIPMAP_NEAREST = 0x2701, //NEAREST_MIPMAP_LINEAR = 0x2702, //LINEAR_MIPMAP_LINEAR = 0x2703, GL_NEAREST_MIPMAP_NEAREST = NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST = LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR = NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR = LINEAR_MIPMAP_LINEAR, /* TextureParameterName */ //TEXTURE_MAG_FILTER = 0x2800, //TEXTURE_MIN_FILTER = 0x2801, //TEXTURE_WRAP_S = 0x2802, //TEXTURE_WRAP_T = 0x2803, GL_TEXTURE_MAG_FILTER = TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER = TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S = TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T = TEXTURE_WRAP_T, /* TextureTarget */ //TEXTURE_2D = 0x0DE1, //TEXTURE = 0x1702, GL_TEXTURE_2D = TEXTURE_2D, GL_TEXTURE = TEXTURE, //TEXTURE_CUBE_MAP = 0x8513, //TEXTURE_BINDING_CUBE_MAP = 0x8514, //TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, //TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, //TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, //TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, //TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, //TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, //MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, GL_TEXTURE_CUBE_MAP = TEXTURE_CUBE_MAP, GL_TEXTURE_BINDING_CUBE_MAP = TEXTURE_BINDING_CUBE_MAP, GL_TEXTURE_CUBE_MAP_POSITIVE_X = TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X = TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y = TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z = TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_MAX_CUBE_MAP_TEXTURE_SIZE = MAX_CUBE_MAP_TEXTURE_SIZE, /* TextureUnit */ //TEXTURE0 = 0x84C0, //TEXTURE1 = 0x84C1, //TEXTURE2 = 0x84C2, //TEXTURE3 = 0x84C3, //TEXTURE4 = 0x84C4, //TEXTURE5 = 0x84C5, //TEXTURE6 = 0x84C6, //TEXTURE7 = 0x84C7, //TEXTURE8 = 0x84C8, //TEXTURE9 = 0x84C9, //TEXTURE10 = 0x84CA, //TEXTURE11 = 0x84CB, //TEXTURE12 = 0x84CC, //TEXTURE13 = 0x84CD, //TEXTURE14 = 0x84CE, //TEXTURE15 = 0x84CF, //TEXTURE16 = 0x84D0, //TEXTURE17 = 0x84D1, //TEXTURE18 = 0x84D2, //TEXTURE19 = 0x84D3, //TEXTURE20 = 0x84D4, //TEXTURE21 = 0x84D5, //TEXTURE22 = 0x84D6, //TEXTURE23 = 0x84D7, //TEXTURE24 = 0x84D8, //TEXTURE25 = 0x84D9, //TEXTURE26 = 0x84DA, //TEXTURE27 = 0x84DB, //TEXTURE28 = 0x84DC, //TEXTURE29 = 0x84DD, //TEXTURE30 = 0x84DE, //TEXTURE31 = 0x84DF, //ACTIVE_TEXTURE = 0x84E0, GL_TEXTURE0 = TEXTURE0, GL_TEXTURE1 = TEXTURE1, GL_TEXTURE2 = TEXTURE2, GL_TEXTURE3 = TEXTURE3, GL_TEXTURE4 = TEXTURE4, GL_TEXTURE5 = TEXTURE5, GL_TEXTURE6 = TEXTURE6, GL_TEXTURE7 = TEXTURE7, GL_TEXTURE8 = TEXTURE8, GL_TEXTURE9 = TEXTURE9, GL_TEXTURE10 = TEXTURE10, GL_TEXTURE11 = TEXTURE11, GL_TEXTURE12 = TEXTURE12, GL_TEXTURE13 = TEXTURE13, GL_TEXTURE14 = TEXTURE14, GL_TEXTURE15 = TEXTURE15, GL_TEXTURE16 = TEXTURE16, GL_TEXTURE17 = TEXTURE17, GL_TEXTURE18 = TEXTURE18, GL_TEXTURE19 = TEXTURE19, GL_TEXTURE20 = TEXTURE20, GL_TEXTURE21 = TEXTURE21, GL_TEXTURE22 = TEXTURE22, GL_TEXTURE23 = TEXTURE23, GL_TEXTURE24 = TEXTURE24, GL_TEXTURE25 = TEXTURE25, GL_TEXTURE26 = TEXTURE26, GL_TEXTURE27 = TEXTURE27, GL_TEXTURE28 = TEXTURE28, GL_TEXTURE29 = TEXTURE29, GL_TEXTURE30 = TEXTURE30, GL_TEXTURE31 = TEXTURE31, GL_ACTIVE_TEXTURE = ACTIVE_TEXTURE, /* TextureWrapMode */ //REPEAT = 0x2901, //CLAMP_TO_EDGE = 0x812F, //MIRRORED_REPEAT = 0x8370, GL_REPEAT = REPEAT, GL_CLAMP_TO_EDGE = CLAMP_TO_EDGE, GL_MIRRORED_REPEAT = MIRRORED_REPEAT, /* Uniform Types */ //FLOAT_VEC2 = 0x8B50, //FLOAT_VEC3 = 0x8B51, //FLOAT_VEC4 = 0x8B52, //INT_VEC2 = 0x8B53, //INT_VEC3 = 0x8B54, //INT_VEC4 = 0x8B55, //BOOL = 0x8B56, //BOOL_VEC2 = 0x8B57, //BOOL_VEC3 = 0x8B58, //BOOL_VEC4 = 0x8B59, //FLOAT_MAT2 = 0x8B5A, //FLOAT_MAT3 = 0x8B5B, //FLOAT_MAT4 = 0x8B5C, //SAMPLER_2D = 0x8B5E, //SAMPLER_CUBE = 0x8B60, GL_FLOAT_VEC2 = FLOAT_VEC2, GL_FLOAT_VEC3 = FLOAT_VEC3, GL_FLOAT_VEC4 = FLOAT_VEC4, GL_INT_VEC2 = INT_VEC2, GL_INT_VEC3 = INT_VEC3, GL_INT_VEC4 = INT_VEC4, GL_BOOL = BOOL, GL_BOOL_VEC2 = BOOL_VEC2, GL_BOOL_VEC3 = BOOL_VEC3, GL_BOOL_VEC4 = BOOL_VEC4, GL_FLOAT_MAT2 = FLOAT_MAT2, GL_FLOAT_MAT3 = FLOAT_MAT3, GL_FLOAT_MAT4 = FLOAT_MAT4, GL_SAMPLER_2D = SAMPLER_2D, GL_SAMPLER_CUBE = SAMPLER_CUBE, /* Vertex Arrays */ //VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, //VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, //VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, //VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, //VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, //VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, //VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F, GL_VERTEX_ATTRIB_ARRAY_ENABLED = VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE = VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE = VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE = VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = VERTEX_ATTRIB_ARRAY_NORMALIZED, GL_VERTEX_ATTRIB_ARRAY_POINTER = VERTEX_ATTRIB_ARRAY_POINTER, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, /* Shader Source */ //COMPILE_STATUS = 0x8B81, //INFO_LOG_LENGTH = 0x8B84, //SHADER_SOURCE_LENGTH = 0x8B88, GL_COMPILE_STATUS = COMPILE_STATUS, GL_INFO_LOG_LENGTH = INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH = SHADER_SOURCE_LENGTH, /* Shader Precision-Specified Types */ //LOW_FLOAT = 0x8DF0, //MEDIUM_FLOAT = 0x8DF1, //HIGH_FLOAT = 0x8DF2, //LOW_INT = 0x8DF3, //MEDIUM_INT = 0x8DF4, //HIGH_INT = 0x8DF5, GL_LOW_FLOAT = LOW_FLOAT, GL_MEDIUM_FLOAT = MEDIUM_FLOAT, GL_HIGH_FLOAT = HIGH_FLOAT, GL_LOW_INT = LOW_INT, GL_MEDIUM_INT = MEDIUM_INT, GL_HIGH_INT = HIGH_INT, /* Framebuffer Object. */ //FRAMEBUFFER = 0x8D40, //RENDERBUFFER = 0x8D41, GL_FRAMEBUFFER = FRAMEBUFFER, GL_RENDERBUFFER = RENDERBUFFER, //RGBA4 = 0x8056, //RGB5_A1 = 0x8057, //RGB565 = 0x8D62, //DEPTH_COMPONENT16 = 0x81A5, //STENCIL_INDEX = 0x1901, //STENCIL_INDEX8 = 0x8D48, //DEPTH_STENCIL = 0x84F9, GL_RGBA4 = RGBA4, GL_RGB5_A1 = RGB5_A1, GL_RGB565 = RGB565, GL_DEPTH_COMPONENT16 = DEPTH_COMPONENT16, GL_STENCIL_INDEX = STENCIL_INDEX, GL_STENCIL_INDEX8 = STENCIL_INDEX8, GL_DEPTH_STENCIL = DEPTH_STENCIL, //RENDERBUFFER_WIDTH = 0x8D42, //RENDERBUFFER_HEIGHT = 0x8D43, //RENDERBUFFER_INTERNAL_FORMAT = 0x8D44, //RENDERBUFFER_RED_SIZE = 0x8D50, //RENDERBUFFER_GREEN_SIZE = 0x8D51, //RENDERBUFFER_BLUE_SIZE = 0x8D52, //RENDERBUFFER_ALPHA_SIZE = 0x8D53, //RENDERBUFFER_DEPTH_SIZE = 0x8D54, //RENDERBUFFER_STENCIL_SIZE = 0x8D55, GL_RENDERBUFFER_WIDTH = RENDERBUFFER_WIDTH, GL_RENDERBUFFER_HEIGHT = RENDERBUFFER_HEIGHT, GL_RENDERBUFFER_INTERNAL_FORMAT = RENDERBUFFER_INTERNAL_FORMAT, GL_RENDERBUFFER_RED_SIZE = RENDERBUFFER_RED_SIZE, GL_RENDERBUFFER_GREEN_SIZE = RENDERBUFFER_GREEN_SIZE, GL_RENDERBUFFER_BLUE_SIZE = RENDERBUFFER_BLUE_SIZE, GL_RENDERBUFFER_ALPHA_SIZE = RENDERBUFFER_ALPHA_SIZE, GL_RENDERBUFFER_DEPTH_SIZE = RENDERBUFFER_DEPTH_SIZE, GL_RENDERBUFFER_STENCIL_SIZE = RENDERBUFFER_STENCIL_SIZE, //FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0, //FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1, //FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2, //FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE, //COLOR_ATTACHMENT0 = 0x8CE0, //DEPTH_ATTACHMENT = 0x8D00, //STENCIL_ATTACHMENT = 0x8D20, //DEPTH_STENCIL_ATTACHMENT = 0x821A, GL_COLOR_ATTACHMENT0 = COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT = DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT = STENCIL_ATTACHMENT, GL_DEPTH_STENCIL_ATTACHMENT = DEPTH_STENCIL_ATTACHMENT, //NONE = 0x0, GL_NONE = NONE, //FRAMEBUFFER_COMPLETE = 0x8CD5, //FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6, //FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7, //FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9, //FRAMEBUFFER_UNSUPPORTED = 0x8CDD, GL_FRAMEBUFFER_COMPLETE = FRAMEBUFFER_COMPLETE, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = FRAMEBUFFER_INCOMPLETE_ATTACHMENT, GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = FRAMEBUFFER_INCOMPLETE_DIMENSIONS, GL_FRAMEBUFFER_UNSUPPORTED = FRAMEBUFFER_UNSUPPORTED, //FRAMEBUFFER_BINDING = 0x8CA6, //RENDERBUFFER_BINDING = 0x8CA7, //MAX_RENDERBUFFER_SIZE = 0x84E8, GL_FRAMEBUFFER_BINDING = FRAMEBUFFER_BINDING, GL_RENDERBUFFER_BINDING = RENDERBUFFER_BINDING, GL_MAX_RENDERBUFFER_SIZE = MAX_RENDERBUFFER_SIZE, //INVALID_FRAMEBUFFER_OPERATION = 0x0506, GL_INVALID_FRAMEBUFFER_OPERATION = INVALID_FRAMEBUFFER_OPERATION, /* WebGL-specific enums */ //UNPACK_FLIP_Y_WEBGL = 0x9240, //UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241, //CONTEXT_LOST_WEBGL = 0x9242, //UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243, //BROWSER_DEFAULT_WEBGL = 0x9244, GL_UNPACK_FLIP_Y_WEBGL = UNPACK_FLIP_Y_WEBGL, GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = UNPACK_PREMULTIPLY_ALPHA_WEBGL, GL_CONTEXT_LOST_WEBGL = CONTEXT_LOST_WEBGL, GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = UNPACK_COLORSPACE_CONVERSION_WEBGL, GL_BROWSER_DEFAULT_WEBGL = BROWSER_DEFAULT_WEBGL, }; // Operator overloading // Set function(s) // Get function(s) // Other function(s) /*! @name WebGL methods * The WebGL methods are mostly 1-on-1 translated to the identical * JavaScript call. You can use the WebGL methods in your resizeGL(), * paintGL() and updateGL() specializations. Wt takes care that data, * arguments, ... are transfered to the client side and that the equivalent * JavaScript WebGL funtion is executed. * @{ */ /*! \brief GL function to activate an existing texture * * * glActiveTexture() OpenGL ES manpage */ //void activeTexture(GLenum texture); inline void glActiveTexture(GLenum texture) { activeTexture(static_cast(texture)); } /*! \brief GL function to attach a shader to a program * * * glAttachShader() OpenGL ES manpage */ //void attachShader(Program program, Shader shader); inline void glAttachShader(GLuint program, GLuint shader) { attachShader(static_cast(program), static_cast(shader)); } /*! \brief GL function to bind an attribute to a given location * * * glBindAttribLocation() OpenGL ES manpage */ //void bindAttribLocation(Program program, unsigned index, // const std::string &name); inline void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name) { bindAttribLocation(static_cast(program), index, name); } /*! \brief GL function to bind a buffer to a target * * * glBindBuffer() OpenGL ES manpage */ //void bindBuffer(GLenum target, Buffer buffer); inline void glBindBuffer(GLenum target, GLuint buffer) { bindBuffer(static_cast(target), static_cast(buffer)); } /*! \brief GL function to bind a frame buffer to a target * * * glBindFramebuffer() OpenGL ES manpage */ //void bindFramebuffer(GLenum target, Framebuffer framebuffer); inline void glBindFramebuffer(GLenum target, GLuint framebuffer) { bindFramebuffer(static_cast(target), static_cast(framebuffer)); } /*! \brief GL function to bind a render buffer to a target * * * glBindRenderbuffer() OpenGL ES manpage */ //void bindRenderbuffer(GLenum target, Renderbuffer renderbuffer); inline void glBindRenderbuffer(GLenum target, GLuint renderbuffer) { bindRenderbuffer(static_cast(target), static_cast(renderbuffer)); } /* TODO: Map remaining WebGL functions */ }; #undef WT_WGL_TEMPLATE } // namespace Wt #endif