diff --git a/source/derelict/gles/constants3.d b/source/derelict/gles/constants3.d new file mode 100644 index 0000000..2e8400a --- /dev/null +++ b/source/derelict/gles/constants3.d @@ -0,0 +1,516 @@ +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.gles.constants3; + +public import derelict.gles.constants2; + +enum : uint { + GL_READ_BUFFER = 0x0C02, + GL_UNPACK_ROW_LENGTH = 0x0CF2, + GL_UNPACK_SKIP_ROWS = 0x0CF3, + GL_UNPACK_SKIP_PIXELS = 0x0CF4, + GL_PACK_ROW_LENGTH = 0x0D02, + GL_PACK_SKIP_ROWS = 0x0D03, + GL_PACK_SKIP_PIXELS = 0x0D04, + GL_COLOR = 0x1800, + GL_DEPTH = 0x1801, + GL_STENCIL = 0x1802, + GL_RED = 0x1903, + GL_RGB8 = 0x8051, + GL_RGBA8 = 0x8058, + GL_RGB10_A2 = 0x8059, + GL_TEXTURE_BINDING_3D = 0x806A, + GL_UNPACK_SKIP_IMAGES = 0x806D, + GL_UNPACK_IMAGE_HEIGHT = 0x806E, + GL_TEXTURE_3D = 0x806F, + GL_TEXTURE_WRAP_R = 0x8072, + GL_MAX_3D_TEXTURE_SIZE = 0x8073, + GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, + GL_MAX_ELEMENTS_VERTICES = 0x80E8, + GL_MAX_ELEMENTS_INDICES = 0x80E9, + GL_TEXTURE_MIN_LOD = 0x813A, + GL_TEXTURE_MAX_LOD = 0x813B, + GL_TEXTURE_BASE_LEVEL = 0x813C, + GL_TEXTURE_MAX_LEVEL = 0x813D, + GL_MIN = 0x8007, + GL_MAX = 0x8008, + GL_DEPTH_COMPONENT24 = 0x81A6, + GL_MAX_TEXTURE_LOD_BIAS = 0x84FD, + GL_TEXTURE_COMPARE_MODE = 0x884C, + GL_TEXTURE_COMPARE_FUNC = 0x884D, + GL_CURRENT_QUERY = 0x8865, + GL_QUERY_RESULT = 0x8866, + GL_QUERY_RESULT_AVAILABLE = 0x8867, + GL_BUFFER_MAPPED = 0x88BC, + GL_BUFFER_MAP_POINTER = 0x88BD, + GL_STREAM_READ = 0x88E1, + GL_STREAM_COPY = 0x88E2, + GL_STATIC_READ = 0x88E5, + GL_STATIC_COPY = 0x88E6, + GL_DYNAMIC_READ = 0x88E9, + GL_DYNAMIC_COPY = 0x88EA, + GL_MAX_DRAW_BUFFERS = 0x8824, + GL_DRAW_BUFFER0 = 0x8825, + GL_DRAW_BUFFER1 = 0x8826, + GL_DRAW_BUFFER2 = 0x8827, + GL_DRAW_BUFFER3 = 0x8828, + GL_DRAW_BUFFER4 = 0x8829, + GL_DRAW_BUFFER5 = 0x882A, + GL_DRAW_BUFFER6 = 0x882B, + GL_DRAW_BUFFER7 = 0x882C, + GL_DRAW_BUFFER8 = 0x882D, + GL_DRAW_BUFFER9 = 0x882E, + GL_DRAW_BUFFER10 = 0x882F, + GL_DRAW_BUFFER11 = 0x8830, + GL_DRAW_BUFFER12 = 0x8831, + GL_DRAW_BUFFER13 = 0x8832, + GL_DRAW_BUFFER14 = 0x8833, + GL_DRAW_BUFFER15 = 0x8834, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, + GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, + GL_SAMPLER_3D = 0x8B5F, + GL_SAMPLER_2D_SHADOW = 0x8B62, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, + GL_PIXEL_PACK_BUFFER = 0x88EB, + GL_PIXEL_UNPACK_BUFFER = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF, + GL_FLOAT_MAT2x3 = 0x8B65, + GL_FLOAT_MAT2x4 = 0x8B66, + GL_FLOAT_MAT3x2 = 0x8B67, + GL_FLOAT_MAT3x4 = 0x8B68, + GL_FLOAT_MAT4x2 = 0x8B69, + GL_FLOAT_MAT4x3 = 0x8B6A, + GL_SRGB = 0x8C40, + GL_SRGB8 = 0x8C41, + GL_SRGB8_ALPHA8 = 0x8C43, + GL_COMPARE_REF_TO_TEXTURE = 0x884E, + GL_MAJOR_VERSION = 0x821B, + GL_MINOR_VERSION = 0x821C, + GL_NUM_EXTENSIONS = 0x821D, + GL_RGBA32F = 0x8814, + GL_RGB32F = 0x8815, + GL_RGBA16F = 0x881A, + GL_RGB16F = 0x881B, + GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD, + GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF, + GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905, + GL_MAX_VARYING_COMPONENTS = 0x8B4B, + GL_TEXTURE_2D_ARRAY = 0x8C1A, + GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D, + GL_R11F_G11F_B10F = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B, + GL_RGB9_E5 = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88, + GL_RASTERIZER_DISCARD = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B, + GL_INTERLEAVED_ATTRIBS = 0x8C8C, + GL_SEPARATE_ATTRIBS = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F, + GL_RGBA32UI = 0x8D70, + GL_RGB32UI = 0x8D71, + GL_RGBA16UI = 0x8D76, + GL_RGB16UI = 0x8D77, + GL_RGBA8UI = 0x8D7C, + GL_RGB8UI = 0x8D7D, + GL_RGBA32I = 0x8D82, + GL_RGB32I = 0x8D83, + GL_RGBA16I = 0x8D88, + GL_RGB16I = 0x8D89, + GL_RGBA8I = 0x8D8E, + GL_RGB8I = 0x8D8F, + GL_RED_INTEGER = 0x8D94, + GL_RGB_INTEGER = 0x8D98, + GL_RGBA_INTEGER = 0x8D99, + GL_SAMPLER_2D_ARRAY = 0x8DC1, + GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW = 0x8DC5, + GL_UNSIGNED_INT_VEC2 = 0x8DC6, + GL_UNSIGNED_INT_VEC3 = 0x8DC7, + GL_UNSIGNED_INT_VEC4 = 0x8DC8, + GL_INT_SAMPLER_2D = 0x8DCA, + GL_INT_SAMPLER_3D = 0x8DCB, + GL_INT_SAMPLER_CUBE = 0x8DCC, + GL_INT_SAMPLER_2D_ARRAY = 0x8DCF, + GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7, + GL_BUFFER_ACCESS_FLAGS = 0x911F, + GL_BUFFER_MAP_LENGTH = 0x9120, + GL_BUFFER_MAP_OFFSET = 0x9121, + GL_DEPTH_COMPONENT32F = 0x8CAC, + GL_DEPTH32F_STENCIL8 = 0x8CAD, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD, + GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210, + GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211, + GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212, + GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213, + GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214, + GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215, + GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216, + GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217, + GL_FRAMEBUFFER_DEFAULT = 0x8218, + GL_FRAMEBUFFER_UNDEFINED = 0x8219, + GL_DEPTH_STENCIL_ATTACHMENT = 0x821A, + GL_DEPTH_STENCIL = 0x84F9, + GL_UNSIGNED_INT_24_8 = 0x84FA, + GL_DEPTH24_STENCIL8 = 0x88F0, + GL_UNSIGNED_NORMALIZED = 0x8C17, + GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6, + GL_READ_FRAMEBUFFER = 0x8CA8, + GL_DRAW_FRAMEBUFFER = 0x8CA9, + GL_READ_FRAMEBUFFER_BINDING = 0x8CAA, + GL_RENDERBUFFER_SAMPLES = 0x8CAB, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4, + GL_MAX_COLOR_ATTACHMENTS = 0x8CDF, + GL_COLOR_ATTACHMENT1 = 0x8CE1, + GL_COLOR_ATTACHMENT2 = 0x8CE2, + GL_COLOR_ATTACHMENT3 = 0x8CE3, + GL_COLOR_ATTACHMENT4 = 0x8CE4, + GL_COLOR_ATTACHMENT5 = 0x8CE5, + GL_COLOR_ATTACHMENT6 = 0x8CE6, + GL_COLOR_ATTACHMENT7 = 0x8CE7, + GL_COLOR_ATTACHMENT8 = 0x8CE8, + GL_COLOR_ATTACHMENT9 = 0x8CE9, + GL_COLOR_ATTACHMENT10 = 0x8CEA, + GL_COLOR_ATTACHMENT11 = 0x8CEB, + GL_COLOR_ATTACHMENT12 = 0x8CEC, + GL_COLOR_ATTACHMENT13 = 0x8CED, + GL_COLOR_ATTACHMENT14 = 0x8CEE, + GL_COLOR_ATTACHMENT15 = 0x8CEF, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56, + GL_MAX_SAMPLES = 0x8D57, + GL_HALF_FLOAT = 0x140B, + GL_MAP_READ_BIT = 0x0001, + GL_MAP_WRITE_BIT = 0x0002, + GL_MAP_INVALIDATE_RANGE_BIT = 0x0004, + GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008, + GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010, + GL_MAP_UNSYNCHRONIZED_BIT = 0x0020, + GL_RG = 0x8227, + GL_RG_INTEGER = 0x8228, + GL_R8 = 0x8229, + GL_RG8 = 0x822B, + GL_R16F = 0x822D, + GL_R32F = 0x822E, + GL_RG16F = 0x822F, + GL_RG32F = 0x8230, + GL_R8I = 0x8231, + GL_R8UI = 0x8232, + GL_R16I = 0x8233, + GL_R16UI = 0x8234, + GL_R32I = 0x8235, + GL_R32UI = 0x8236, + GL_RG8I = 0x8237, + GL_RG8UI = 0x8238, + GL_RG16I = 0x8239, + GL_RG16UI = 0x823A, + GL_RG32I = 0x823B, + GL_RG32UI = 0x823C, + GL_VERTEX_ARRAY_BINDING = 0x85B5, + GL_R8_SNORM = 0x8F94, + GL_RG8_SNORM = 0x8F95, + GL_RGB8_SNORM = 0x8F96, + GL_RGBA8_SNORM = 0x8F97, + GL_SIGNED_NORMALIZED = 0x8F9C, + GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69, + GL_COPY_READ_BUFFER = 0x8F36, + GL_COPY_WRITE_BUFFER = 0x8F37, + GL_COPY_READ_BUFFER_BINDING = 0x8F36, + GL_COPY_WRITE_BUFFER_BINDING = 0x8F37, + GL_UNIFORM_BUFFER = 0x8A11, + GL_UNIFORM_BUFFER_BINDING = 0x8A28, + GL_UNIFORM_BUFFER_START = 0x8A29, + GL_UNIFORM_BUFFER_SIZE = 0x8A2A, + GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B, + GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D, + GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E, + GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F, + GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30, + GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31, + GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33, + GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34, + GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35, + GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36, + GL_UNIFORM_TYPE = 0x8A37, + GL_UNIFORM_SIZE = 0x8A38, + GL_UNIFORM_NAME_LENGTH = 0x8A39, + GL_UNIFORM_BLOCK_INDEX = 0x8A3A, + GL_UNIFORM_OFFSET = 0x8A3B, + GL_UNIFORM_ARRAY_STRIDE = 0x8A3C, + GL_UNIFORM_MATRIX_STRIDE = 0x8A3D, + GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E, + GL_UNIFORM_BLOCK_BINDING = 0x8A3F, + GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40, + GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43, + GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44, + GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46, + GL_INVALID_INDEX = 0xFFFFFFFFu, + GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122, + GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125, + GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111, + GL_OBJECT_TYPE = 0x9112, + GL_SYNC_CONDITION = 0x9113, + GL_SYNC_STATUS = 0x9114, + GL_SYNC_FLAGS = 0x9115, + GL_SYNC_FENCE = 0x9116, + GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117, + GL_UNSIGNALED = 0x9118, + GL_SIGNALED = 0x9119, + GL_ALREADY_SIGNALED = 0x911A, + GL_TIMEOUT_EXPIRED = 0x911B, + GL_CONDITION_SATISFIED = 0x911C, + GL_WAIT_FAILED = 0x911D, + GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001, + GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE, + GL_ANY_SAMPLES_PASSED = 0x8C2F, + GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A, + GL_SAMPLER_BINDING = 0x8919, + GL_RGB10_A2UI = 0x906F, + GL_TEXTURE_SWIZZLE_R = 0x8E42, + GL_TEXTURE_SWIZZLE_G = 0x8E43, + GL_TEXTURE_SWIZZLE_B = 0x8E44, + GL_TEXTURE_SWIZZLE_A = 0x8E45, + GL_GREEN = 0x1904, + GL_BLUE = 0x1905, + GL_INT_2_10_10_10_REV = 0x8D9F, + GL_TRANSFORM_FEEDBACK = 0x8E22, + GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23, + GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24, + GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25, + GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257, + GL_PROGRAM_BINARY_LENGTH = 0x8741, + GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE, + GL_PROGRAM_BINARY_FORMATS = 0x87FF, + GL_COMPRESSED_R11_EAC = 0x9270, + GL_COMPRESSED_SIGNED_R11_EAC = 0x9271, + GL_COMPRESSED_RG11_EAC = 0x9272, + GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273, + GL_COMPRESSED_RGB8_ETC2 = 0x9274, + GL_COMPRESSED_SRGB8_ETC2 = 0x9275, + GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276, + GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, + GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278, + GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279, + GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F, + GL_MAX_ELEMENT_INDEX = 0x8D6B, + GL_NUM_SAMPLE_COUNTS = 0x9380, + GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF, +} + +enum GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF; + +// 3.1 +enum : uint { + GL_COMPUTE_SHADER = 0x91B9, + GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB, + GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC, + GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD, + GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262, + GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263, + GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264, + GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265, + GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266, + GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB, + GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE, + GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF, + GL_COMPUTE_WORK_GROUP_SIZE = 0x8267, + GL_DISPATCH_INDIRECT_BUFFER = 0x90EE, + GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF, + GL_COMPUTE_SHADER_BIT = 0x00000020, + GL_DRAW_INDIRECT_BUFFER = 0x8F3F, + GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43, + GL_MAX_UNIFORM_LOCATIONS = 0x826E, + GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310, + GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311, + GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313, + GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314, + GL_MAX_FRAMEBUFFER_WIDTH = 0x9315, + GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316, + GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318, + GL_UNIFORM = 0x92E1, + GL_UNIFORM_BLOCK = 0x92E2, + GL_PROGRAM_INPUT = 0x92E3, + GL_PROGRAM_OUTPUT = 0x92E4, + GL_BUFFER_VARIABLE = 0x92E5, + GL_SHADER_STORAGE_BLOCK = 0x92E6, + GL_ATOMIC_COUNTER_BUFFER = 0x92C0, + GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4, + GL_ACTIVE_RESOURCES = 0x92F5, + GL_MAX_NAME_LENGTH = 0x92F6, + GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7, + GL_NAME_LENGTH = 0x92F9, + GL_TYPE = 0x92FA, + GL_ARRAY_SIZE = 0x92FB, + GL_OFFSET = 0x92FC, + GL_BLOCK_INDEX = 0x92FD, + GL_ARRAY_STRIDE = 0x92FE, + GL_MATRIX_STRIDE = 0x92FF, + GL_IS_ROW_MAJOR = 0x9300, + GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301, + GL_BUFFER_BINDING = 0x9302, + GL_BUFFER_DATA_SIZE = 0x9303, + GL_NUM_ACTIVE_VARIABLES = 0x9304, + GL_ACTIVE_VARIABLES = 0x9305, + GL_REFERENCED_BY_VERTEX_SHADER = 0x9306, + GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A, + GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B, + GL_TOP_LEVEL_ARRAY_SIZE = 0x930C, + GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D, + GL_LOCATION = 0x930E, + GL_VERTEX_SHADER_BIT = 0x00000001, + GL_FRAGMENT_SHADER_BIT = 0x00000002, + GL_ALL_SHADER_BITS = 0xFFFFFFFF, + GL_PROGRAM_SEPARABLE = 0x8258, + GL_ACTIVE_PROGRAM = 0x8259, + GL_PROGRAM_PIPELINE_BINDING = 0x825A, + GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1, + GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2, + GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3, + GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC, + GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0, + GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1, + GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2, + GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6, + GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7, + GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8, + GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC, + GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9, + GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB, + GL_MAX_IMAGE_UNITS = 0x8F38, + GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA, + GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE, + GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF, + GL_IMAGE_BINDING_NAME = 0x8F3A, + GL_IMAGE_BINDING_LEVEL = 0x8F3B, + GL_IMAGE_BINDING_LAYERED = 0x8F3C, + GL_IMAGE_BINDING_LAYER = 0x8F3D, + GL_IMAGE_BINDING_ACCESS = 0x8F3E, + GL_IMAGE_BINDING_FORMAT = 0x906E, + GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001, + GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002, + GL_UNIFORM_BARRIER_BIT = 0x00000004, + GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008, + GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020, + GL_COMMAND_BARRIER_BIT = 0x00000040, + GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080, + GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100, + GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200, + GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400, + GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800, + GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000, + GL_ALL_BARRIER_BITS = 0xFFFFFFFF, + GL_IMAGE_2D = 0x904D, + GL_IMAGE_3D = 0x904E, + GL_IMAGE_CUBE = 0x9050, + GL_IMAGE_2D_ARRAY = 0x9053, + GL_INT_IMAGE_2D = 0x9058, + GL_INT_IMAGE_3D = 0x9059, + GL_INT_IMAGE_CUBE = 0x905B, + GL_INT_IMAGE_2D_ARRAY = 0x905E, + GL_UNSIGNED_INT_IMAGE_2D = 0x9063, + GL_UNSIGNED_INT_IMAGE_3D = 0x9064, + GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066, + GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069, + GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9, + GL_READ_ONLY = 0x88B8, + GL_WRITE_ONLY = 0x88B9, + GL_READ_WRITE = 0x88BA, + GL_SHADER_STORAGE_BUFFER = 0x90D2, + GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3, + GL_SHADER_STORAGE_BUFFER_START = 0x90D4, + GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5, + GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6, + GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA, + GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB, + GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC, + GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD, + GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE, + GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF, + GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000, + GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39, + GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA, + GL_STENCIL_INDEX = 0x1901, + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F, + GL_SAMPLE_POSITION = 0x8E50, + GL_SAMPLE_MASK = 0x8E51, + GL_SAMPLE_MASK_VALUE = 0x8E52, + GL_TEXTURE_2D_MULTISAMPLE = 0x9100, + GL_MAX_SAMPLE_MASK_WORDS = 0x8E59, + GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E, + GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F, + GL_MAX_INTEGER_SAMPLES = 0x9110, + GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104, + GL_TEXTURE_SAMPLES = 0x9106, + GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107, + GL_TEXTURE_WIDTH = 0x1000, + GL_TEXTURE_HEIGHT = 0x1001, + GL_TEXTURE_DEPTH = 0x8071, + GL_TEXTURE_INTERNAL_FORMAT = 0x1003, + GL_TEXTURE_RED_SIZE = 0x805C, + GL_TEXTURE_GREEN_SIZE = 0x805D, + GL_TEXTURE_BLUE_SIZE = 0x805E, + GL_TEXTURE_ALPHA_SIZE = 0x805F, + GL_TEXTURE_DEPTH_SIZE = 0x884A, + GL_TEXTURE_STENCIL_SIZE = 0x88F1, + GL_TEXTURE_SHARED_SIZE = 0x8C3F, + GL_TEXTURE_RED_TYPE = 0x8C10, + GL_TEXTURE_GREEN_TYPE = 0x8C11, + GL_TEXTURE_BLUE_TYPE = 0x8C12, + GL_TEXTURE_ALPHA_TYPE = 0x8C13, + GL_TEXTURE_DEPTH_TYPE = 0x8C16, + GL_TEXTURE_COMPRESSED = 0x86A1, + GL_SAMPLER_2D_MULTISAMPLE = 0x9108, + GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A, + GL_VERTEX_ATTRIB_BINDING = 0x82D4, + GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5, + GL_VERTEX_BINDING_DIVISOR = 0x82D6, + GL_VERTEX_BINDING_OFFSET = 0x82D7, + GL_VERTEX_BINDING_STRIDE = 0x82D8, + GL_VERTEX_BINDING_BUFFER = 0x8F4F, + GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9, + GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA, + GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5, +} diff --git a/source/derelict/gles/ext2.d b/source/derelict/gles/ext2.d index fc797c0..413d370 100644 --- a/source/derelict/gles/ext2.d +++ b/source/derelict/gles/ext2.d @@ -36,7 +36,6 @@ private { private __gshared bool _GL_KHR_blend_equation_advanced; bool GL_KHR_blend_equation_advanced() @property { return _GL_KHR_blend_equation_advanced; } enum : uint { - GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285, GL_MULTIPLY_KHR = 0x9294, GL_SCREEN_KHR = 0x9295, GL_OVERLAY_KHR = 0x9296, @@ -69,6 +68,19 @@ private void load_GL_KHR_blend_equation_advanced() { } } +private __gshared bool _GL_KHR_blend_equation_advanced_coherent; +bool GL_KHR_blend_equation_advanced_coherent() @property { return _GL_KHR_blend_equation_advanced_coherent; } +enum : uint { + GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285, +} + +private __gshared bool _GL_KHR_context_flush_control; +bool GL_KHR_context_flush_control() @property { return _GL_KHR_context_flush_control; } +enum : uint { + GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB, + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC, +} + private __gshared bool _GL_KHR_debug; bool GL_KHR_debug() @property { return _GL_KHR_debug; } alias GLDEBUGPROCKHR = void function( GLenum, GLenum, GLuint, GLenum, GLsizei, const( GLchar )*, const( void )* ); @@ -160,6 +172,49 @@ private void load_GL_KHR_debug() { } } +private __gshared bool _GL_KHR_robust_buffer_access_behavior; +bool GL_KHR_robust_buffer_access_behavior() @property { return _GL_KHR_robust_buffer_access_behavior; } + +private __gshared bool _GL_KHR_robustness; +bool GL_KHR_robustness() @property { return _GL_KHR_robustness; } +enum : uint { + GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3, + GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252, + GL_GUILTY_CONTEXT_RESET_KHR = 0x8253, + GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256, + GL_NO_RESET_NOTIFICATION_KHR = 0x8261, + GL_CONTEXT_LOST_KHR = 0x0507, +} +extern( System ) nothrow { + alias da_glGetGraphicsResetStatusKHR = GLenum function( ); + alias da_glReadnPixelsKHR = void function( GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void* ); + alias da_glGetnUniformfvKHR = void function( GLuint, GLint, GLsizei, GLfloat* ); + alias da_glGetnUniformivKHR = void function( GLuint, GLint, GLsizei, GLint* ); + alias da_glGetnUniformuivKHR = void function( GLuint, GLint, GLsizei, GLuint* ); +} +__gshared { + da_glGetGraphicsResetStatusKHR glGetGraphicsResetStatusKHR; + da_glReadnPixelsKHR glReadnPixelsKHR; + da_glGetnUniformfvKHR glGetnUniformfvKHR; + da_glGetnUniformivKHR glGetnUniformivKHR; + da_glGetnUniformuivKHR glGetnUniformuivKHR; +} +private void load_GL_KHR_robustness() { + try { + bindGLFunc( cast( void** )&glGetGraphicsResetStatusKHR, "glGetGraphicsResetStatusKHR" ); + bindGLFunc( cast( void** )&glReadnPixelsKHR, "glReadnPixelsKHR" ); + bindGLFunc( cast( void** )&glGetnUniformfvKHR, "glGetnUniformfvKHR" ); + bindGLFunc( cast( void** )&glGetnUniformivKHR, "glGetnUniformivKHR" ); + bindGLFunc( cast( void** )&glGetnUniformuivKHR, "glGetnUniformuivKHR" ); + + _GL_KHR_robustness = true; + } catch( Exception e ) { + _GL_KHR_robustness = false; + } +} + private __gshared bool _GL_KHR_texture_compression_astc_hdr; bool GL_KHR_texture_compression_astc_hdr() @property { return _GL_KHR_texture_compression_astc_hdr; } enum : uint { @@ -227,6 +282,9 @@ enum : uint { GL_SAMPLER_EXTERNAL_OES = 0x8D66, } +private __gshared bool _GL_OES_compressed_ETC1_RGB8_sub_texture; +bool GL_OES_compressed_ETC1_RGB8_sub_texture() @property { return _GL_OES_compressed_ETC1_RGB8_sub_texture; } + private __gshared bool _GL_OES_compressed_ETC1_RGB8_texture; bool GL_OES_compressed_ETC1_RGB8_texture() @property { return _GL_OES_compressed_ETC1_RGB8_texture; } enum : uint { @@ -650,6 +708,9 @@ enum : uint { GL_Z400_BINARY_AMD = 0x8740, } +private __gshared bool _GL_ANDROID_extension_pack_es31a; +bool GL_ANDROID_extension_pack_es31a() @property { return _GL_ANDROID_extension_pack_es31a; } + private __gshared bool _GL_ANGLE_depth_texture; bool GL_ANGLE_depth_texture() @property { return _GL_ANGLE_depth_texture; } @@ -662,7 +723,7 @@ enum : uint { GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA, } extern( System ) nothrow { - alias da_glBlitFramebufferANGLE = void function( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield, GLenum ); + alias da_glBlitFramebufferANGLE = void function( GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum ); } __gshared { da_glBlitFramebufferANGLE glBlitFramebufferANGLE; @@ -779,6 +840,23 @@ private void load_GL_ANGLE_translated_shader_source() { } } +private __gshared bool _GL_APPLE_clip_distance; +bool GL_APPLE_clip_distance() @property { return _GL_APPLE_clip_distance; } +enum : uint { + GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32, + GL_CLIP_DISTANCE0_APPLE = 0x3000, + GL_CLIP_DISTANCE1_APPLE = 0x3001, + GL_CLIP_DISTANCE2_APPLE = 0x3002, + GL_CLIP_DISTANCE3_APPLE = 0x3003, + GL_CLIP_DISTANCE4_APPLE = 0x3004, + GL_CLIP_DISTANCE5_APPLE = 0x3005, + GL_CLIP_DISTANCE6_APPLE = 0x3006, + GL_CLIP_DISTANCE7_APPLE = 0x3007, +} + +private __gshared bool _GL_APPLE_color_buffer_packed_float; +bool GL_APPLE_color_buffer_packed_float() @property { return _GL_APPLE_color_buffer_packed_float; } + private __gshared bool _GL_APPLE_copy_texture_levels; bool GL_APPLE_copy_texture_levels() @property { return _GL_APPLE_copy_texture_levels; } extern( System ) nothrow { @@ -903,6 +981,15 @@ enum : uint { GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D, } +private __gshared bool _GL_APPLE_texture_packed_float; +bool GL_APPLE_texture_packed_float() @property { return _GL_APPLE_texture_packed_float; } +enum : uint { + GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B, + GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E, + GL_R11F_G11F_B10F_APPLE = 0x8C3A, + GL_RGB9_E5_APPLE = 0x8C3D, +} + private __gshared bool _GL_ARM_mali_program_binary; bool GL_ARM_mali_program_binary() @property { return _GL_ARM_mali_program_binary; } enum : uint { @@ -928,6 +1015,14 @@ enum : uint { private __gshared bool _GL_ARM_shader_framebuffer_fetch_depth_stencil; bool GL_ARM_shader_framebuffer_fetch_depth_stencil() @property { return _GL_ARM_shader_framebuffer_fetch_depth_stencil; } +private __gshared bool _GL_DMP_program_binary; +bool GL_DMP_program_binary() @property { return _GL_DMP_program_binary; } +enum : uint { + GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251, + GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252, + GL_DMP_PROGRAM_BINARY_DMP = 0x9253, +} + private __gshared bool _GL_DMP_shader_binary; bool GL_DMP_shader_binary() @property { return _GL_DMP_shader_binary; } enum : uint { @@ -952,6 +1047,24 @@ enum : uint { GL_UNSIGNED_NORMALIZED_EXT = 0x8C17, } +private __gshared bool _GL_EXT_copy_image; +bool GL_EXT_copy_image() @property { return _GL_EXT_copy_image; } +extern( System ) nothrow { + alias da_glCopyImageSubDataEXT = void function( GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei ); +} +__gshared { + da_glCopyImageSubDataEXT glCopyImageSubDataEXT; +} +private void load_GL_EXT_copy_image() { + try { + bindGLFunc( cast( void** )&glCopyImageSubDataEXT, "glCopyImageSubDataEXT" ); + + _GL_EXT_copy_image = true; + } catch( Exception e ) { + _GL_EXT_copy_image = false; + } +} + private __gshared bool _GL_EXT_debug_label; bool GL_EXT_debug_label() @property { return _GL_EXT_debug_label; } enum : uint { @@ -1140,6 +1253,49 @@ private void load_GL_EXT_draw_buffers() { } } +private __gshared bool _GL_EXT_draw_buffers_indexed; +bool GL_EXT_draw_buffers_indexed() @property { return _GL_EXT_draw_buffers_indexed; } +enum : uint { + GL_MIN = 0x8007, + GL_MAX = 0x8008, +} +extern( System ) nothrow { + alias da_glEnableiEXT = void function( GLenum, GLuint ); + alias da_glDisableiEXT = void function( GLenum, GLuint ); + alias da_glBlendEquationiEXT = void function( GLuint, GLenum ); + alias da_glBlendEquationSeparateiEXT = void function( GLuint, GLenum, GLenum ); + alias da_glBlendFunciEXT = void function( GLuint, GLenum, GLenum ); + alias da_glBlendFuncSeparateiEXT = void function( GLuint, GLenum, GLenum, GLenum, GLenum ); + alias da_glColorMaskiEXT = void function( GLuint, GLboolean, GLboolean, GLboolean, GLboolean ); + alias da_glIsEnablediEXT = GLboolean function( GLenum, GLuint ); +} +__gshared { + da_glEnableiEXT glEnableiEXT; + da_glDisableiEXT glDisableiEXT; + da_glBlendEquationiEXT glBlendEquationiEXT; + da_glBlendEquationSeparateiEXT glBlendEquationSeparateiEXT; + da_glBlendFunciEXT glBlendFunciEXT; + da_glBlendFuncSeparateiEXT glBlendFuncSeparateiEXT; + da_glColorMaskiEXT glColorMaskiEXT; + da_glIsEnablediEXT glIsEnablediEXT; +} +private void load_GL_EXT_draw_buffers_indexed() { + try { + bindGLFunc( cast( void** )&glEnableiEXT, "glEnableiEXT" ); + bindGLFunc( cast( void** )&glDisableiEXT, "glDisableiEXT" ); + bindGLFunc( cast( void** )&glBlendEquationiEXT, "glBlendEquationiEXT" ); + bindGLFunc( cast( void** )&glBlendEquationSeparateiEXT, "glBlendEquationSeparateiEXT" ); + bindGLFunc( cast( void** )&glBlendFunciEXT, "glBlendFunciEXT" ); + bindGLFunc( cast( void** )&glBlendFuncSeparateiEXT, "glBlendFuncSeparateiEXT" ); + bindGLFunc( cast( void** )&glColorMaskiEXT, "glColorMaskiEXT" ); + bindGLFunc( cast( void** )&glIsEnablediEXT, "glIsEnablediEXT" ); + + _GL_EXT_draw_buffers_indexed = true; + } catch( Exception e ) { + _GL_EXT_draw_buffers_indexed = false; + } +} + private __gshared bool _GL_EXT_draw_instanced; bool GL_EXT_draw_instanced() @property { return _GL_EXT_draw_instanced; } extern( System ) nothrow { @@ -1161,6 +1317,65 @@ private void load_GL_EXT_draw_instanced() { } } +private __gshared bool _GL_EXT_geometry_point_size; +bool GL_EXT_geometry_point_size() @property { return _GL_EXT_geometry_point_size; } + +private __gshared bool _GL_EXT_geometry_shader; +bool GL_EXT_geometry_shader() @property { return _GL_EXT_geometry_shader; } +enum : uint { + GL_GEOMETRY_SHADER_EXT = 0x8DD9, + GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004, + GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916, + GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917, + GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918, + GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F, + GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E, + GL_LINES_ADJACENCY_EXT = 0x000A, + GL_LINE_STRIP_ADJACENCY_EXT = 0x000B, + GL_TRIANGLES_ADJACENCY_EXT = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32, + GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29, + GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF, + GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5, + GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD, + GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7, + GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D, + GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E, + GL_UNDEFINED_VERTEX_EXT = 0x8260, + GL_PRIMITIVES_GENERATED_EXT = 0x8C87, + GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312, + GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7, + GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309, +} +extern( System ) nothrow { + alias da_glFramebufferTextureEXT = void function( GLenum, GLenum, GLuint, GLint ); +} +__gshared { + da_glFramebufferTextureEXT glFramebufferTextureEXT; +} +private void load_GL_EXT_geometry_shader() { + try { + bindGLFunc( cast( void** )&glFramebufferTextureEXT, "glFramebufferTextureEXT" ); + + _GL_EXT_geometry_shader = true; + } catch( Exception e ) { + _GL_EXT_geometry_shader = false; + } +} + +private __gshared bool _GL_EXT_gpu_shader5; +bool GL_EXT_gpu_shader5() @property { return _GL_EXT_gpu_shader5; } + private __gshared bool _GL_EXT_instanced_arrays; bool GL_EXT_instanced_arrays() @property { return _GL_EXT_instanced_arrays; } enum : uint { @@ -1297,6 +1512,27 @@ enum : uint { GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A, } +private __gshared bool _GL_EXT_primitive_bounding_box; +bool GL_EXT_primitive_bounding_box() @property { return _GL_EXT_primitive_bounding_box; } +enum : uint { + GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE, +} +extern( System ) nothrow { + alias da_glPrimitiveBoundingBoxEXT = void function( GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat ); +} +__gshared { + da_glPrimitiveBoundingBoxEXT glPrimitiveBoundingBoxEXT; +} +private void load_GL_EXT_primitive_bounding_box() { + try { + bindGLFunc( cast( void** )&glPrimitiveBoundingBoxEXT, "glPrimitiveBoundingBoxEXT" ); + + _GL_EXT_primitive_bounding_box = true; + } catch( Exception e ) { + _GL_EXT_primitive_bounding_box = false; + } +} + private __gshared bool _GL_EXT_pvrtc_sRGB; bool GL_EXT_pvrtc_sRGB() @property { return _GL_EXT_pvrtc_sRGB; } enum : uint { @@ -1304,6 +1540,8 @@ enum : uint { GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55, GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56, GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1, } private __gshared bool _GL_EXT_read_format_bgra; @@ -1525,9 +1763,15 @@ enum : uint { GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52, } +private __gshared bool _GL_EXT_shader_implicit_conversions; +bool GL_EXT_shader_implicit_conversions() @property { return _GL_EXT_shader_implicit_conversions; } + private __gshared bool _GL_EXT_shader_integer_mix; bool GL_EXT_shader_integer_mix() @property { return _GL_EXT_shader_integer_mix; } +private __gshared bool _GL_EXT_shader_io_blocks; +bool GL_EXT_shader_io_blocks() @property { return _GL_EXT_shader_io_blocks; } + private __gshared bool _GL_EXT_shader_pixel_local_storage; bool GL_EXT_shader_pixel_local_storage() @property { return _GL_EXT_shader_pixel_local_storage; } enum : uint { @@ -1548,6 +1792,152 @@ enum : uint { GL_SAMPLER_2D_SHADOW_EXT = 0x8B62, } +private __gshared bool _GL_EXT_tessellation_point_size; +bool GL_EXT_tessellation_point_size() @property { return _GL_EXT_tessellation_point_size; } + +private __gshared bool _GL_EXT_tessellation_shader; +bool GL_EXT_tessellation_shader() @property { return _GL_EXT_tessellation_shader; } +enum : uint { + GL_PATCHES_EXT = 0x000E, + GL_PATCH_VERTICES_EXT = 0x8E72, + GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75, + GL_TESS_GEN_MODE_EXT = 0x8E76, + GL_TESS_GEN_SPACING_EXT = 0x8E77, + GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78, + GL_TESS_GEN_POINT_MODE_EXT = 0x8E79, + GL_ISOLINES_EXT = 0x8E7A, + GL_QUADS_EXT = 0x0007, + GL_FRACTIONAL_ODD_EXT = 0x8E7B, + GL_FRACTIONAL_EVEN_EXT = 0x8E7C, + GL_MAX_PATCH_VERTICES_EXT = 0x8E7D, + GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E, + GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F, + GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80, + GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81, + GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82, + GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83, + GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84, + GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85, + GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86, + GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89, + GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A, + GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C, + GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D, + GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E, + GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4, + GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB, + GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC, + GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8, + GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9, + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221, + GL_IS_PER_PATCH_EXT = 0x92E7, + GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307, + GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308, + GL_TESS_CONTROL_SHADER_EXT = 0x8E88, + GL_TESS_EVALUATION_SHADER_EXT = 0x8E87, + GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008, + GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010, +} +extern( System ) nothrow { + alias da_glPatchParameteriEXT = void function( GLenum, GLint ); +} +__gshared { + da_glPatchParameteriEXT glPatchParameteriEXT; +} +private void load_GL_EXT_tessellation_shader() { + try { + bindGLFunc( cast( void** )&glPatchParameteriEXT, "glPatchParameteriEXT" ); + + _GL_EXT_tessellation_shader = true; + } catch( Exception e ) { + _GL_EXT_tessellation_shader = false; + } +} + +private __gshared bool _GL_EXT_texture_border_clamp; +bool GL_EXT_texture_border_clamp() @property { return _GL_EXT_texture_border_clamp; } +enum : uint { + GL_TEXTURE_BORDER_COLOR_EXT = 0x1004, + GL_CLAMP_TO_BORDER_EXT = 0x812D, +} +extern( System ) nothrow { + alias da_glTexParameterIivEXT = void function( GLenum, GLenum, const( GLint )* ); + alias da_glTexParameterIuivEXT = void function( GLenum, GLenum, const( GLuint )* ); + alias da_glGetTexParameterIivEXT = void function( GLenum, GLenum, GLint* ); + alias da_glGetTexParameterIuivEXT = void function( GLenum, GLenum, GLuint* ); + alias da_glSamplerParameterIivEXT = void function( GLuint, GLenum, const( GLint )* ); + alias da_glSamplerParameterIuivEXT = void function( GLuint, GLenum, const( GLuint )* ); + alias da_glGetSamplerParameterIivEXT = void function( GLuint, GLenum, GLint* ); + alias da_glGetSamplerParameterIuivEXT = void function( GLuint, GLenum, GLuint* ); +} +__gshared { + da_glTexParameterIivEXT glTexParameterIivEXT; + da_glTexParameterIuivEXT glTexParameterIuivEXT; + da_glGetTexParameterIivEXT glGetTexParameterIivEXT; + da_glGetTexParameterIuivEXT glGetTexParameterIuivEXT; + da_glSamplerParameterIivEXT glSamplerParameterIivEXT; + da_glSamplerParameterIuivEXT glSamplerParameterIuivEXT; + da_glGetSamplerParameterIivEXT glGetSamplerParameterIivEXT; + da_glGetSamplerParameterIuivEXT glGetSamplerParameterIuivEXT; +} +private void load_GL_EXT_texture_border_clamp() { + try { + bindGLFunc( cast( void** )&glTexParameterIivEXT, "glTexParameterIivEXT" ); + bindGLFunc( cast( void** )&glTexParameterIuivEXT, "glTexParameterIuivEXT" ); + bindGLFunc( cast( void** )&glGetTexParameterIivEXT, "glGetTexParameterIivEXT" ); + bindGLFunc( cast( void** )&glGetTexParameterIuivEXT, "glGetTexParameterIuivEXT" ); + bindGLFunc( cast( void** )&glSamplerParameterIivEXT, "glSamplerParameterIivEXT" ); + bindGLFunc( cast( void** )&glSamplerParameterIuivEXT, "glSamplerParameterIuivEXT" ); + bindGLFunc( cast( void** )&glGetSamplerParameterIivEXT, "glGetSamplerParameterIivEXT" ); + bindGLFunc( cast( void** )&glGetSamplerParameterIuivEXT, "glGetSamplerParameterIuivEXT" ); + + _GL_EXT_texture_border_clamp = true; + } catch( Exception e ) { + _GL_EXT_texture_border_clamp = false; + } +} + +private __gshared bool _GL_EXT_texture_buffer; +bool GL_EXT_texture_buffer() @property { return _GL_EXT_texture_buffer; } +enum : uint { + GL_TEXTURE_BUFFER_EXT = 0x8C2A, + GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, + GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F, + GL_SAMPLER_BUFFER_EXT = 0x8DC2, + GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, + GL_IMAGE_BUFFER_EXT = 0x9051, + GL_INT_IMAGE_BUFFER_EXT = 0x905C, + GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067, + GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D, + GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E, +} +extern( System ) nothrow { + alias da_glTexBufferEXT = void function( GLenum, GLenum, GLuint ); + alias da_glTexBufferRangeEXT = void function( GLenum, GLenum, GLuint, GLintptr, GLsizeiptr ); +} +__gshared { + da_glTexBufferEXT glTexBufferEXT; + da_glTexBufferRangeEXT glTexBufferRangeEXT; +} +private void load_GL_EXT_texture_buffer() { + try { + bindGLFunc( cast( void** )&glTexBufferEXT, "glTexBufferEXT" ); + bindGLFunc( cast( void** )&glTexBufferRangeEXT, "glTexBufferRangeEXT" ); + + _GL_EXT_texture_buffer = true; + } catch( Exception e ) { + _GL_EXT_texture_buffer = false; + } +} + private __gshared bool _GL_EXT_texture_compression_dxt1; bool GL_EXT_texture_compression_dxt1() @property { return _GL_EXT_texture_compression_dxt1; } enum : uint { @@ -1562,6 +1952,20 @@ enum : uint { GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, } +private __gshared bool _GL_EXT_texture_cube_map_array; +bool GL_EXT_texture_cube_map_array() @property { return _GL_EXT_texture_cube_map_array; } +enum : uint { + GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A, + GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F, + GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054, + GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A, +} + private __gshared bool _GL_EXT_texture_filter_anisotropic; bool GL_EXT_texture_filter_anisotropic() @property { return _GL_EXT_texture_filter_anisotropic; } enum : uint { @@ -1644,6 +2048,31 @@ enum : uint { GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368, } +private __gshared bool _GL_EXT_texture_view; +bool GL_EXT_texture_view() @property { return _GL_EXT_texture_view; } +enum : uint { + GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB, + GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC, + GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD, + GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE, + GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF, +} +extern( System ) nothrow { + alias da_glTextureViewEXT = void function( GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint ); +} +__gshared { + da_glTextureViewEXT glTextureViewEXT; +} +private void load_GL_EXT_texture_view() { + try { + bindGLFunc( cast( void** )&glTextureViewEXT, "glTextureViewEXT" ); + + _GL_EXT_texture_view = true; + } catch( Exception e ) { + _GL_EXT_texture_view = false; + } +} + private __gshared bool _GL_EXT_unpack_subimage; bool GL_EXT_unpack_subimage() @property { return _GL_EXT_unpack_subimage; } enum : uint { @@ -2120,6 +2549,33 @@ private void load_GL_NV_instanced_arrays() { } } + +private __gshared bool _GL_NV_internalformat_sample_query; +bool GL_NV_internalformat_sample_query() @property { return _GL_NV_internalformat_sample_query; } +enum : uint { + GL_TEXTURE_2D_MULTISAMPLE = 0x9100, + GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102, + GL_MULTISAMPLES_NV = 0x9371, + GL_SUPERSAMPLE_SCALE_X_NV = 0x9372, + GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373, + GL_CONFORMANT_NV = 0x9374, +} +extern( System ) nothrow { + alias da_glGetInternalformatSampleivNV = void function( GLenum, GLenum, GLsizei, GLenum, GLsizei, GLint* ); +} +__gshared { + da_glGetInternalformatSampleivNV glGetInternalformatSampleivNV; +} +private void load_GL_NV_internalformat_sample_query() { + try { + bindGLFunc( cast( void** )&glGetInternalformatSampleivNV, "glGetInternalformatSampleivNV" ); + + _GL_NV_internalformat_sample_query = true; + } catch( Exception e ) { + _GL_NV_internalformat_sample_query = false; + } +} + private __gshared bool _GL_NV_non_square_matrices; bool GL_NV_non_square_matrices() @property { return _GL_NV_non_square_matrices; } enum : uint { @@ -2433,16 +2889,22 @@ enum : uint { GL_SHADER_BINARY_VIV = 0x8FC4, } -package void loadEXT( ) { +package void loadEXT2( ) { _GL_KHR_blend_equation_advanced = isExtSupported( "GL_KHR_blend_equation_advanced" ); + _GL_KHR_blend_equation_advanced_coherent = isExtSupported( "GL_KHR_blend_equation_advanced_coherent" ); + _GL_KHR_context_flush_control = isExtSupported( "GL_KHR_context_flush_control" ); if( _GL_KHR_blend_equation_advanced ) load_GL_KHR_blend_equation_advanced(); _GL_KHR_debug = isExtSupported( "GL_KHR_debug" ); if( _GL_KHR_debug ) load_GL_KHR_debug(); + _GL_KHR_robust_buffer_access_behavior = isExtSupported( "GL_KHR_robust_buffer_access_behavior" ); + _GL_KHR_robustness = isExtSupported( "GL_KHR_robustness" ); + if( _GL_KHR_robustness ) load_GL_KHR_robustness(); _GL_KHR_texture_compression_astc_hdr = isExtSupported( "GL_KHR_texture_compression_astc_hdr" ); _GL_KHR_texture_compression_astc_ldr = isExtSupported( "GL_KHR_texture_compression_astc_ldr" ); _GL_OES_EGL_image = isExtSupported( "GL_OES_EGL_image" ); if( _GL_OES_EGL_image ) load_GL_OES_EGL_image(); _GL_OES_EGL_image_external = isExtSupported( "GL_OES_EGL_image_external" ); + _GL_OES_compressed_ETC1_RGB8_sub_texture = isExtSupported( "GL_OES_compressed_ETC1_RGB8_sub_texture" ); _GL_OES_compressed_ETC1_RGB8_texture = isExtSupported( "GL_OES_compressed_ETC1_RGB8_texture" ); _GL_OES_compressed_paletted_texture = isExtSupported( "GL_OES_compressed_paletted_texture" ); _GL_OES_depth24 = isExtSupported( "GL_OES_depth24" ); @@ -2487,6 +2949,7 @@ package void loadEXT( ) { _GL_AMD_performance_monitor = isExtSupported( "GL_AMD_performance_monitor" ); if( _GL_AMD_performance_monitor ) load_GL_AMD_performance_monitor(); _GL_AMD_program_binary_Z400 = isExtSupported( "GL_AMD_program_binary_Z400" ); + _GL_ANDROID_extension_pack_es31a = isExtSupported( "GL_ANDROID_extension_pack_es31a" ); _GL_ANGLE_depth_texture = isExtSupported( "GL_ANGLE_depth_texture" ); _GL_ANGLE_framebuffer_blit = isExtSupported( "GL_ANGLE_framebuffer_blit" ); if( _GL_ANGLE_framebuffer_blit ) load_GL_ANGLE_framebuffer_blit(); @@ -2501,6 +2964,8 @@ package void loadEXT( ) { _GL_ANGLE_texture_usage = isExtSupported( "GL_ANGLE_texture_usage" ); _GL_ANGLE_translated_shader_source = isExtSupported( "GL_ANGLE_translated_shader_source" ); if( _GL_ANGLE_translated_shader_source ) load_GL_ANGLE_translated_shader_source(); + _GL_APPLE_clip_distance = isExtSupported( "GL_APPLE_clip_distance" ); + _GL_APPLE_color_buffer_packed_float = isExtSupported( "GL_APPLE_color_buffer_packed_float" ); _GL_APPLE_copy_texture_levels = isExtSupported( "GL_APPLE_copy_texture_levels" ); if( _GL_APPLE_copy_texture_levels ) load_GL_APPLE_copy_texture_levels(); _GL_APPLE_framebuffer_multisample = isExtSupported( "GL_APPLE_framebuffer_multisample" ); @@ -2510,14 +2975,18 @@ package void loadEXT( ) { if( _GL_APPLE_sync ) load_GL_APPLE_sync(); _GL_APPLE_texture_format_BGRA8888 = isExtSupported( "GL_APPLE_texture_format_BGRA8888" ); _GL_APPLE_texture_max_level = isExtSupported( "GL_APPLE_texture_max_level" ); + _GL_APPLE_texture_packed_float = isExtSupported( "GL_APPLE_texture_packed_float" ); _GL_ARM_mali_program_binary = isExtSupported( "GL_ARM_mali_program_binary" ); _GL_ARM_mali_shader_binary = isExtSupported( "GL_ARM_mali_shader_binary" ); _GL_ARM_rgba8 = isExtSupported( "GL_ARM_rgba8" ); _GL_ARM_shader_framebuffer_fetch = isExtSupported( "GL_ARM_shader_framebuffer_fetch" ); _GL_ARM_shader_framebuffer_fetch_depth_stencil = isExtSupported( "GL_ARM_shader_framebuffer_fetch_depth_stencil" ); + _GL_DMP_program_binary = isExtSupported( "GL_DMP_program_binary" ); _GL_DMP_shader_binary = isExtSupported( "GL_DMP_shader_binary" ); _GL_EXT_blend_minmax = isExtSupported( "GL_EXT_blend_minmax" ); _GL_EXT_color_buffer_half_float = isExtSupported( "GL_EXT_color_buffer_half_float" ); + _GL_EXT_copy_image = isExtSupported( "GL_EXT_copy_image" ); + if( _GL_EXT_copy_image ) load_GL_EXT_copy_image(); _GL_EXT_debug_label = isExtSupported( "GL_EXT_debug_label" ); if( _GL_EXT_debug_label ) load_GL_EXT_debug_label(); _GL_EXT_debug_marker = isExtSupported( "GL_EXT_debug_marker" ); @@ -2528,8 +2997,14 @@ package void loadEXT( ) { if( _GL_EXT_disjoint_timer_query ) load_GL_EXT_disjoint_timer_query(); _GL_EXT_draw_buffers = isExtSupported( "GL_EXT_draw_buffers" ); if( _GL_EXT_draw_buffers ) load_GL_EXT_draw_buffers(); + _GL_EXT_draw_buffers_indexed = isExtSupported( "GL_EXT_draw_buffers_indexed" ); + if( _GL_EXT_draw_buffers_indexed ) load_GL_EXT_draw_buffers_indexed(); _GL_EXT_draw_instanced = isExtSupported( "GL_EXT_draw_instanced" ); if( _GL_EXT_draw_instanced ) load_GL_EXT_draw_instanced(); + _GL_EXT_geometry_point_size = isExtSupported( "GL_EXT_geometry_point_size" ); + _GL_EXT_geometry_shader = isExtSupported( "GL_EXT_geometry_shader" ); + if( _GL_EXT_geometry_shader ) load_GL_EXT_geometry_shader(); + _GL_EXT_gpu_shader5 = isExtSupported( "GL_EXT_gpu_shader5" ); _GL_EXT_instanced_arrays = isExtSupported( "GL_EXT_instanced_arrays" ); if( _GL_EXT_instanced_arrays ) load_GL_EXT_instanced_arrays(); _GL_EXT_map_buffer_range = isExtSupported( "GL_EXT_map_buffer_range" ); @@ -2541,6 +3016,8 @@ package void loadEXT( ) { _GL_EXT_multiview_draw_buffers = isExtSupported( "GL_EXT_multiview_draw_buffers" ); if( _GL_EXT_multiview_draw_buffers ) load_GL_EXT_multiview_draw_buffers(); _GL_EXT_occlusion_query_boolean = isExtSupported( "GL_EXT_occlusion_query_boolean" ); + _GL_EXT_primitive_bounding_box = isExtSupported( "GL_EXT_primitive_bounding_box" ); + if( _GL_EXT_primitive_bounding_box ) load_GL_EXT_primitive_bounding_box(); _GL_EXT_pvrtc_sRGB = isExtSupported( "GL_EXT_pvrtc_sRGB" ); _GL_EXT_read_format_bgra = isExtSupported( "GL_EXT_read_format_bgra" ); _GL_EXT_robustness = isExtSupported( "GL_EXT_robustness" ); @@ -2550,12 +3027,22 @@ package void loadEXT( ) { _GL_EXT_separate_shader_objects = isExtSupported( "GL_EXT_separate_shader_objects" ); if( _GL_EXT_separate_shader_objects ) load_GL_EXT_separate_shader_objects(); _GL_EXT_shader_framebuffer_fetch = isExtSupported( "GL_EXT_shader_framebuffer_fetch" ); + _GL_EXT_shader_implicit_conversions = isExtSupported( "GL_EXT_shader_implicit_conversions" ); _GL_EXT_shader_integer_mix = isExtSupported( "GL_EXT_shader_integer_mix" ); + _GL_EXT_shader_io_blocks = isExtSupported( "GL_EXT_shader_io_blocks" ); _GL_EXT_shader_pixel_local_storage = isExtSupported( "GL_EXT_shader_pixel_local_storage" ); _GL_EXT_shader_texture_lod = isExtSupported( "GL_EXT_shader_texture_lod" ); _GL_EXT_shadow_samplers = isExtSupported( "GL_EXT_shadow_samplers" ); + _GL_EXT_tessellation_point_size = isExtSupported( "GL_EXT_tessellation_point_size" ); + _GL_EXT_tessellation_shader = isExtSupported( "GL_EXT_tessellation_shader" ); + if( _GL_EXT_tessellation_shader ) load_GL_EXT_tessellation_shader(); + _GL_EXT_texture_border_clamp = isExtSupported( "GL_EXT_texture_border_clamp" ); + if( _GL_EXT_texture_border_clamp ) load_GL_EXT_texture_border_clamp(); + _GL_EXT_texture_buffer = isExtSupported( "GL_EXT_texture_buffer" ); + if( _GL_EXT_texture_buffer ) load_GL_EXT_texture_buffer(); _GL_EXT_texture_compression_dxt1 = isExtSupported( "GL_EXT_texture_compression_dxt1" ); _GL_EXT_texture_compression_s3tc = isExtSupported( "GL_EXT_texture_compression_s3tc" ); + _GL_EXT_texture_cube_map_array = isExtSupported( "GL_EXT_texture_cube_map_array" ); _GL_EXT_texture_filter_anisotropic = isExtSupported( "GL_EXT_texture_filter_anisotropic" ); _GL_EXT_texture_format_BGRA8888 = isExtSupported( "GL_EXT_texture_format_BGRA8888" ); _GL_EXT_texture_rg = isExtSupported( "GL_EXT_texture_rg" ); @@ -2563,6 +3050,8 @@ package void loadEXT( ) { _GL_EXT_texture_storage = isExtSupported( "GL_EXT_texture_storage" ); if( _GL_EXT_texture_storage ) load_GL_EXT_texture_storage(); _GL_EXT_texture_type_2_10_10_10_REV = isExtSupported( "GL_EXT_texture_type_2_10_10_10_REV" ); + _GL_EXT_texture_view = isExtSupported( "GL_EXT_texture_view" ); + if( _GL_EXT_texture_view ) load_GL_EXT_texture_view(); _GL_EXT_unpack_subimage = isExtSupported( "GL_EXT_unpack_subimage" ); _GL_FJ_shader_binary_GCCSO = isExtSupported( "GL_FJ_shader_binary_GCCSO" ); _GL_IMG_multisampled_render_to_texture = isExtSupported( "GL_IMG_multisampled_render_to_texture" ); @@ -2597,6 +3086,8 @@ package void loadEXT( ) { _GL_NV_generate_mipmap_sRGB = isExtSupported( "GL_NV_generate_mipmap_sRGB" ); _GL_NV_instanced_arrays = isExtSupported( "GL_NV_instanced_arrays" ); if( _GL_NV_instanced_arrays ) load_GL_NV_instanced_arrays(); + _GL_NV_internalformat_sample_query = isExtSupported( "GL_NV_internalformat_sample_query" ); + if( _GL_NV_internalformat_sample_query ) load_GL_NV_internalformat_sample_query(); _GL_NV_non_square_matrices = isExtSupported( "GL_NV_non_square_matrices" ); if( _GL_NV_non_square_matrices ) load_GL_NV_non_square_matrices(); _GL_NV_read_buffer = isExtSupported( "GL_NV_read_buffer" ); diff --git a/source/derelict/gles/ext3.d b/source/derelict/gles/ext3.d new file mode 100644 index 0000000..65e8c5c --- /dev/null +++ b/source/derelict/gles/ext3.d @@ -0,0 +1,31 @@ +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.gles.ext3; + +package void loadEXT3( ) { +} diff --git a/source/derelict/gles/functions3.d b/source/derelict/gles/functions3.d new file mode 100644 index 0000000..ea434b1 --- /dev/null +++ b/source/derelict/gles/functions3.d @@ -0,0 +1,388 @@ +/* + +Boost Software License - Version 1.0 - August, 2003 + +Permission is hereby, free of, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license ( the "Software" ) to,,,, +execute, and transmit the, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do, all subject to the following: + +The copyright notices in the Software and this entire, including +the above license, this restriction and the following, +must be included in all copies of the, in whole or in, and +all derivative works of the, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF, +FITNESS FOR A PARTICULAR, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER, WHETHER IN, TORT OR, +ARISING, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.gles.functions3; + +private { + import derelict.gles.types3; +} + +public import derelict.gles.functions2; + +extern( System ) nothrow { + alias da_glReadBuffer = void function( GLenum ); + alias da_glDrawRangeElements = void function( GLenum, GLuint, GLuint, GLsizei, GLenum, const( void )* ); + alias da_glTexImage3D = void function( GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const( void )* ); + alias da_glTexSubImage3D = void function( GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const( void )* ); + alias da_glCopyTexSubImage3D = void function( GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei ); + alias da_glCompressedTexImage3D = void function( GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const( void )* ); + alias da_glCompressedTexSubImage3D = void function( GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const( void )* ); + alias da_glGenQueries = void function( GLsizei, GLuint* ); + alias da_glDeleteQueries = void function( GLsizei, const( GLuint )* ); + alias da_glIsQuery = GLboolean function( GLuint ); + alias da_glBeginQuery = void function( GLenum, GLuint ); + alias da_glEndQuery = void function( GLenum ); + alias da_glGetQueryiv = void function( GLenum, GLenum, GLint* ); + alias da_glGetQueryObjectuiv = void function( GLuint, GLenum, GLuint* ); + alias da_glUnmapBuffer = GLboolean function( GLenum ); + alias da_glGetBufferPointerv = void function( GLenum, GLenum, void** ); + alias da_glDrawBuffers = void function( GLsizei, const( GLenum )* ); + alias da_glUniformMatrix2x3fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glUniformMatrix3x2fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glUniformMatrix2x4fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glUniformMatrix4x2fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glUniformMatrix3x4fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glUniformMatrix4x3fv = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glBlitFramebuffer = void function( GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum ); + alias da_glRenderbufferStorageMultisample = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); + alias da_glFramebufferTextureLayer = void function( GLenum, GLenum, GLuint, GLint, GLint ); + alias da_glMapBufferRange = void*function( GLenum, GLintptr, GLsizeiptr, GLbitfield ); + alias da_glFlushMappedBufferRange = void function( GLenum, GLintptr, GLsizeiptr ); + alias da_glBindVertexArray = void function( GLuint ); + alias da_glDeleteVertexArrays = void function( GLsizei, const( GLuint )* ); + alias da_glGenVertexArrays = void function( GLsizei, GLuint* ); + alias da_glIsVertexArray = GLboolean function( GLuint ); + alias da_glGetIntegeri_v = void function( GLenum, GLuint, GLint* ); + alias da_glBeginTransformFeedback = void function( GLenum ); + alias da_glEndTransformFeedback = void function( ); + alias da_glBindBufferRange = void function( GLenum, GLuint, GLuint, GLintptr, GLsizeiptr ); + alias da_glBindBufferBase = void function( GLenum, GLuint, GLuint ); + alias da_glTransformFeedbackVaryings = void function( GLuint, GLsizei, const( const( GLchar )* )*, GLenum ); + alias da_glGetTransformFeedbackVarying = void function( GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar* ); + alias da_glVertexAttribIPointer = void function( GLuint, GLint, GLenum, GLsizei, const( void )* ); + alias da_glGetVertexAttribIiv = void function( GLuint, GLenum, GLint* ); + alias da_glGetVertexAttribIuiv = void function( GLuint, GLenum, GLuint* ); + alias da_glVertexAttribI4i = void function( GLuint, GLint, GLint, GLint, GLint ); + alias da_glVertexAttribI4ui = void function( GLuint, GLuint, GLuint, GLuint, GLuint ); + alias da_glVertexAttribI4iv = void function( GLuint, const( GLint )* ); + alias da_glVertexAttribI4uiv = void function( GLuint, const( GLuint )* ); + alias da_glGetUniformuiv = void function( GLuint, GLint, GLuint* ); + alias da_glGetFragDataLocation = GLint function( GLuint, const( GLchar )* ); + alias da_glUniform1ui = void function( GLint, GLuint ); + alias da_glUniform2ui = void function( GLint, GLuint, GLuint ); + alias da_glUniform3ui = void function( GLint, GLuint, GLuint, GLuint ); + alias da_glUniform4ui = void function( GLint, GLuint, GLuint, GLuint, GLuint ); + alias da_glUniform1uiv = void function( GLint, GLsizei, const( GLuint )* ); + alias da_glUniform2uiv = void function( GLint, GLsizei, const( GLuint )* ); + alias da_glUniform3uiv = void function( GLint, GLsizei, const( GLuint )* ); + alias da_glUniform4uiv = void function( GLint, GLsizei, const( GLuint )* ); + alias da_glClearBufferiv = void function( GLenum, GLint, const( GLint )* ); + alias da_glClearBufferuiv = void function( GLenum, GLint, const( GLuint )* ); + alias da_glClearBufferfv = void function( GLenum, GLint, const( GLfloat )* ); + alias da_glClearBufferfi = void function( GLenum, GLint, GLfloat, GLint ); + alias da_glGetStringi = const( GLubyte )*function( GLenum, GLuint ); + alias da_glCopyBufferSubData = void function( GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr ); + alias da_glGetUniformIndices = void function( GLuint, GLsizei, const( const( GLchar )* )*, GLuint* ); + alias da_glGetActiveUniformsiv = void function( GLuint, GLsizei, const( GLuint )*, GLenum, GLint* ); + alias da_glGetUniformBlockIndex = GLuint function( GLuint, const( GLchar )* ); + alias da_glGetActiveUniformBlockiv = void function( GLuint, GLuint, GLenum, GLint* ); + alias da_glGetActiveUniformBlockName = void function( GLuint, GLuint, GLsizei, GLsizei*, GLchar* ); + alias da_glUniformBlockBinding = void function( GLuint, GLuint, GLuint ); + alias da_glDrawArraysInstanced = void function( GLenum, GLint, GLsizei, GLsizei ); + alias da_glDrawElementsInstanced = void function( GLenum, GLsizei, GLenum, const( void )*, GLsizei ); + alias da_glFenceSync = GLsync function( GLenum, GLbitfield ); + alias da_glIsSync = GLboolean function( GLsync ); + alias da_glDeleteSync = void function( GLsync ); + alias da_glClientWaitSync = GLenum function( GLsync, GLbitfield, GLuint64 ); + alias da_glWaitSync = void function( GLsync, GLbitfield, GLuint64 ); + alias da_glGetInteger64v = void function( GLenum, GLint64* ); + alias da_glGetSynciv = void function( GLsync, GLenum, GLsizei, GLsizei*, GLint* ); + alias da_glGetInteger64i_v = void function( GLenum, GLuint, GLint64* ); + alias da_glGetBufferParameteri64v = void function( GLenum, GLenum, GLint64* ); + alias da_glGenSamplers = void function( GLsizei, GLuint* ); + alias da_glDeleteSamplers = void function( GLsizei, const( GLuint )* ); + alias da_glIsSampler = GLboolean function( GLuint ); + alias da_glBindSampler = void function( GLuint, GLuint ); + alias da_glSamplerParameteri = void function( GLuint, GLenum, GLint ); + alias da_glSamplerParameteriv = void function( GLuint, GLenum, const( GLint )* ); + alias da_glSamplerParameterf = void function( GLuint, GLenum, GLfloat ); + alias da_glSamplerParameterfv = void function( GLuint, GLenum, const( GLfloat )* ); + alias da_glGetSamplerParameteriv = void function( GLuint, GLenum, GLint* ); + alias da_glGetSamplerParameterfv = void function( GLuint, GLenum, GLfloat* ); + alias da_glVertexAttribDivisor = void function( GLuint, GLuint ); + alias da_glBindTransformFeedback = void function( GLenum, GLuint ); + alias da_glDeleteTransformFeedbacks = void function( GLsizei, const( GLuint )* ); + alias da_glGenTransformFeedbacks = void function( GLsizei, GLuint* ); + alias da_glIsTransformFeedback = GLboolean function( GLuint ); + alias da_glPauseTransformFeedback = void function( ); + alias da_glResumeTransformFeedback = void function( ); + alias da_glGetProgramBinary = void function( GLuint, GLsizei, GLsizei*, GLenum*, void* ); + alias da_glProgramBinary = void function( GLuint, GLenum, const( void )*, GLsizei ); + alias da_glProgramParameteri = void function( GLuint, GLenum, GLint ); + alias da_glInvalidateFramebuffer = void function( GLenum, GLsizei, const( GLenum )* ); + alias da_glInvalidateSubFramebuffer = void function( GLenum, GLsizei, const( GLenum )*, GLint, GLint, GLsizei, GLsizei ); + alias da_glTexStorage2D = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); + alias da_glTexStorage3D = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei ); + alias da_glGetInternalformativ = void function( GLenum, GLenum, GLenum, GLsizei, GLint* ); + + // 3.1 + alias da_glDispatchCompute = void function( GLuint, GLuint, GLuint ); + alias da_glDispatchComputeIndirect = void function( GLintptr ); + alias da_glDrawArraysIndirect = void function( GLenum, const( void )* ); + alias da_glDrawElementsIndirect = void function( GLenum, GLenum, const( void )* ); + alias da_glFramebufferParameteri = void function( GLenum, GLenum, GLint ); + alias da_glGetFramebufferParameteriv = void function( GLenum, GLenum, GLint* ); + alias da_glGetProgramInterfaceiv = void function( GLuint, GLenum, GLenum, GLint* ); + alias da_glGetProgramResourceIndex = GLuint function( GLuint, GLenum, const( GLchar )* ); + alias da_glGetProgramResourceName = void function( GLuint, GLenum, GLuint, GLsizei, GLsizei*, GLchar* ); + alias da_glGetProgramResourceiv = void function( GLuint, GLenum, GLuint, GLsizei, const( GLenum )*, GLsizei, GLsizei*, GLint* ); + alias da_glGetProgramResourceLocation = GLint function( GLuint, GLenum, const( GLchar )* ); + alias da_glUseProgramStages = void function( GLuint, GLbitfield, GLuint ); + alias da_glActiveShaderProgram = void function( GLuint, GLuint ); + alias da_glCreateShaderProgramv = GLuint function( GLenum, GLsizei, const( const( GLchar )* )* ); + alias da_glBindProgramPipeline = void function( GLuint ); + alias da_glDeleteProgramPipelines = void function( GLsizei, const( GLuint )* ); + alias da_glGenProgramPipelines = void function( GLsizei, GLuint* ); + alias da_glIsProgramPipeline = GLboolean function( GLuint ); + alias da_glGetProgramPipelineiv = void function( GLuint, GLenum, GLint* ); + alias da_glProgramUniform1i = void function( GLuint, GLint, GLint ); + alias da_glProgramUniform2i = void function( GLuint, GLint, GLint, GLint ); + alias da_glProgramUniform3i = void function( GLuint, GLint, GLint, GLint, GLint ); + alias da_glProgramUniform4i = void function( GLuint, GLint, GLint, GLint, GLint, GLint ); + alias da_glProgramUniform1ui = void function( GLuint, GLint, GLuint ); + alias da_glProgramUniform2ui = void function( GLuint, GLint, GLuint, GLuint ); + alias da_glProgramUniform3ui = void function( GLuint, GLint, GLuint, GLuint, GLuint ); + alias da_glProgramUniform4ui = void function( GLuint, GLint, GLuint, GLuint, GLuint, GLuint ); + alias da_glProgramUniform1f = void function( GLuint, GLint, GLfloat ); + alias da_glProgramUniform2f = void function( GLuint, GLint, GLfloat, GLfloat ); + alias da_glProgramUniform3f = void function( GLuint, GLint, GLfloat, GLfloat, GLfloat ); + alias da_glProgramUniform4f = void function( GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat ); + alias da_glProgramUniform1iv = void function( GLuint, GLint, GLsizei, const( GLint )* ); + alias da_glProgramUniform2iv = void function( GLuint, GLint, GLsizei, const( GLint )* ); + alias da_glProgramUniform3iv = void function( GLuint, GLint, GLsizei, const( GLint )* ); + alias da_glProgramUniform4iv = void function( GLuint, GLint, GLsizei, const( GLint )* ); + alias da_glProgramUniform1uiv = void function( GLuint, GLint, GLsizei, const( GLuint )* ); + alias da_glProgramUniform2uiv = void function( GLuint, GLint, GLsizei, const( GLuint )* ); + alias da_glProgramUniform3uiv = void function( GLuint, GLint, GLsizei, const( GLuint )* ); + alias da_glProgramUniform4uiv = void function( GLuint, GLint, GLsizei, const( GLuint )* ); + alias da_glProgramUniform1fv = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); + alias da_glProgramUniform2fv = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); + alias da_glProgramUniform3fv = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); + alias da_glProgramUniform4fv = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); + alias da_glProgramUniformMatrix2fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix3fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix4fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix2x3fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix3x2fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix2x4fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix4x2fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix3x4fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glProgramUniformMatrix4x3fv = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); + alias da_glValidateProgramPipeline = void function( GLuint ); + alias da_glGetProgramPipelineInfoLog = void function( GLuint, GLsizei, GLsizei, GLchar* ); + alias da_glBindImageTexture = void function( GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum ); + alias da_glGetBooleani_v = void function( GLenum, GLuint, GLboolean* ); + alias da_glMemoryBarrier = void function( GLbitfield ); + alias da_glMemoryBarrierByRegion = void function( GLbitfield ); + alias da_glTexStorage2DMultisample = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean ); + alias da_glGetMultisamplefv = void function( GLenum, GLuint, GLfloat* ); + alias da_glSampleMaski = void function( GLuint, GLbitfield ); + alias da_glGetTexLevelParameteriv = void function( GLenum, GLint, GLenum, GLint* ); + alias da_glGetTexLevelParameterfv = void function( GLenum, GLint, GLenum, GLfloat* ); + alias da_glBindVertexBuffer = void function( GLuint, GLuint, GLintptr, GLsizei ); + alias da_glVertexAttribFormat = void function( GLuint, GLint, GLenum, GLboolean, GLuint ); + alias da_glVertexAttribIFormat = void function( GLuint, GLint, GLenum, GLuint ); + alias da_glVertexAttribBinding = void function( GLuint, GLuint ); + alias da_glVertexBindingDivisor = void function( GLuint, GLuint ); +} + +__gshared { + da_glReadBuffer glReadBuffer; + da_glDrawRangeElements glDrawRangeElements; + da_glTexImage3D glTexImage3D; + da_glTexSubImage3D glTexSubImage3D; + da_glCopyTexSubImage3D glCopyTexSubImage3D; + da_glCompressedTexImage3D glCompressedTexImage3D; + da_glCompressedTexSubImage3D glCompressedTexSubImage3D; + da_glGenQueries glGenQueries; + da_glDeleteQueries glDeleteQueries; + da_glIsQuery glIsQuery; + da_glBeginQuery glBeginQuery; + da_glEndQuery glEndQuery; + da_glGetQueryiv glGetQueryiv; + da_glGetQueryObjectuiv glGetQueryObjectuiv; + da_glUnmapBuffer glUnmapBuffer; + da_glGetBufferPointerv glGetBufferPointerv; + da_glDrawBuffers glDrawBuffers; + da_glUniformMatrix2x3fv glUniformMatrix2x3fv; + da_glUniformMatrix3x2fv glUniformMatrix3x2fv; + da_glUniformMatrix2x4fv glUniformMatrix2x4fv; + da_glUniformMatrix4x2fv glUniformMatrix4x2fv; + da_glUniformMatrix3x4fv glUniformMatrix3x4fv; + da_glUniformMatrix4x3fv glUniformMatrix4x3fv; + da_glBlitFramebuffer glBlitFramebuffer; + da_glRenderbufferStorageMultisample glRenderbufferStorageMultisample; + da_glFramebufferTextureLayer glFramebufferTextureLayer; + da_glMapBufferRange glMapBufferRange; + da_glFlushMappedBufferRange glFlushMappedBufferRange; + da_glBindVertexArray glBindVertexArray; + da_glDeleteVertexArrays glDeleteVertexArrays; + da_glGenVertexArrays glGenVertexArrays; + da_glIsVertexArray glIsVertexArray; + da_glGetIntegeri_v glGetIntegeri_v; + da_glBeginTransformFeedback glBeginTransformFeedback; + da_glEndTransformFeedback glEndTransformFeedback; + da_glBindBufferRange glBindBufferRange; + da_glBindBufferBase glBindBufferBase; + da_glTransformFeedbackVaryings glTransformFeedbackVaryings; + da_glGetTransformFeedbackVarying glGetTransformFeedbackVarying; + da_glVertexAttribIPointer glVertexAttribIPointer; + da_glGetVertexAttribIiv glGetVertexAttribIiv; + da_glGetVertexAttribIuiv glGetVertexAttribIuiv; + da_glVertexAttribI4i glVertexAttribI4i; + da_glVertexAttribI4ui glVertexAttribI4ui; + da_glVertexAttribI4iv glVertexAttribI4iv; + da_glVertexAttribI4uiv glVertexAttribI4uiv; + da_glGetUniformuiv glGetUniformuiv; + da_glGetFragDataLocation glGetFragDataLocation; + da_glUniform1ui glUniform1ui; + da_glUniform2ui glUniform2ui; + da_glUniform3ui glUniform3ui; + da_glUniform4ui glUniform4ui; + da_glUniform1uiv glUniform1uiv; + da_glUniform2uiv glUniform2uiv; + da_glUniform3uiv glUniform3uiv; + da_glUniform4uiv glUniform4uiv; + da_glClearBufferiv glClearBufferiv; + da_glClearBufferuiv glClearBufferuiv; + da_glClearBufferfv glClearBufferfv; + da_glClearBufferfi glClearBufferfi; + da_glGetStringi glGetStringi; + da_glCopyBufferSubData glCopyBufferSubData; + da_glGetUniformIndices glGetUniformIndices; + da_glGetActiveUniformsiv glGetActiveUniformsiv; + da_glGetUniformBlockIndex glGetUniformBlockIndex; + da_glGetActiveUniformBlockiv glGetActiveUniformBlockiv; + da_glGetActiveUniformBlockName glGetActiveUniformBlockName; + da_glUniformBlockBinding glUniformBlockBinding; + da_glDrawArraysInstanced glDrawArraysInstanced; + da_glDrawElementsInstanced glDrawElementsInstanced; + da_glFenceSync glFenceSync; + da_glIsSync glIsSync; + da_glDeleteSync glDeleteSync; + da_glClientWaitSync glClientWaitSync; + da_glWaitSync glWaitSync; + da_glGetInteger64v glGetInteger64v; + da_glGetSynciv glGetSynciv; + da_glGetInteger64i_v glGetInteger64i_v; + da_glGetBufferParameteri64v glGetBufferParameteri64v; + da_glGenSamplers glGenSamplers; + da_glDeleteSamplers glDeleteSamplers; + da_glIsSampler glIsSampler; + da_glBindSampler glBindSampler; + da_glSamplerParameteri glSamplerParameteri; + da_glSamplerParameteriv glSamplerParameteriv; + da_glSamplerParameterf glSamplerParameterf; + da_glSamplerParameterfv glSamplerParameterfv; + da_glGetSamplerParameteriv glGetSamplerParameteriv; + da_glGetSamplerParameterfv glGetSamplerParameterfv; + da_glVertexAttribDivisor glVertexAttribDivisor; + da_glBindTransformFeedback glBindTransformFeedback; + da_glDeleteTransformFeedbacks glDeleteTransformFeedbacks; + da_glGenTransformFeedbacks glGenTransformFeedbacks; + da_glIsTransformFeedback glIsTransformFeedback; + da_glPauseTransformFeedback glPauseTransformFeedback; + da_glResumeTransformFeedback glResumeTransformFeedback; + da_glGetProgramBinary glGetProgramBinary; + da_glProgramBinary glProgramBinary; + da_glProgramParameteri glProgramParameteri; + da_glInvalidateFramebuffer glInvalidateFramebuffer; + da_glInvalidateSubFramebuffer glInvalidateSubFramebuffer; + da_glTexStorage2D glTexStorage2D; + da_glTexStorage3D glTexStorage3D; + da_glGetInternalformativ glGetInternalformativ; + + // 3.1 + da_glDispatchCompute glDispatchCompute; + da_glDispatchComputeIndirect glDispatchComputeIndirect; + da_glDrawArraysIndirect glDrawArraysIndirect; + da_glDrawElementsIndirect glDrawElementsIndirect; + da_glFramebufferParameteri glFramebufferParameteri; + da_glGetFramebufferParameteriv glGetFramebufferParameteriv; + da_glGetProgramInterfaceiv glGetProgramInterfaceiv; + da_glGetProgramResourceIndex glGetProgramResourceIndex; + da_glGetProgramResourceName glGetProgramResourceName; + da_glGetProgramResourceiv glGetProgramResourceiv; + da_glGetProgramResourceLocation glGetProgramResourceLocation; + da_glUseProgramStages glUseProgramStages; + da_glActiveShaderProgram glActiveShaderProgram; + da_glCreateShaderProgramv glCreateShaderProgramv; + da_glBindProgramPipeline glBindProgramPipeline; + da_glDeleteProgramPipelines glDeleteProgramPipelines; + da_glGenProgramPipelines glGenProgramPipelines; + da_glIsProgramPipeline glIsProgramPipeline; + da_glGetProgramPipelineiv glGetProgramPipelineiv; + da_glProgramUniform1i glProgramUniform1i; + da_glProgramUniform2i glProgramUniform2i; + da_glProgramUniform3i glProgramUniform3i; + da_glProgramUniform4i glProgramUniform4i; + da_glProgramUniform1ui glProgramUniform1ui; + da_glProgramUniform2ui glProgramUniform2ui; + da_glProgramUniform3ui glProgramUniform3ui; + da_glProgramUniform4ui glProgramUniform4ui; + da_glProgramUniform1f glProgramUniform1f; + da_glProgramUniform2f glProgramUniform2f; + da_glProgramUniform3f glProgramUniform3f; + da_glProgramUniform4f glProgramUniform4f; + da_glProgramUniform1iv glProgramUniform1iv; + da_glProgramUniform2iv glProgramUniform2iv; + da_glProgramUniform3iv glProgramUniform3iv; + da_glProgramUniform4iv glProgramUniform4iv; + da_glProgramUniform1uiv glProgramUniform1uiv; + da_glProgramUniform2uiv glProgramUniform2uiv; + da_glProgramUniform3uiv glProgramUniform3uiv; + da_glProgramUniform4uiv glProgramUniform4uiv; + da_glProgramUniform1fv glProgramUniform1fv; + da_glProgramUniform2fv glProgramUniform2fv; + da_glProgramUniform3fv glProgramUniform3fv; + da_glProgramUniform4fv glProgramUniform4fv; + da_glProgramUniformMatrix2fv glProgramUniformMatrix2fv; + da_glProgramUniformMatrix3fv glProgramUniformMatrix3fv; + da_glProgramUniformMatrix4fv glProgramUniformMatrix4fv; + da_glProgramUniformMatrix2x3fv glProgramUniformMatrix2x3fv; + da_glProgramUniformMatrix3x2fv glProgramUniformMatrix3x2fv; + da_glProgramUniformMatrix2x4fv glProgramUniformMatrix2x4fv; + da_glProgramUniformMatrix4x2fv glProgramUniformMatrix4x2fv; + da_glProgramUniformMatrix3x4fv glProgramUniformMatrix3x4fv; + da_glProgramUniformMatrix4x3fv glProgramUniformMatrix4x3fv; + da_glValidateProgramPipeline glValidateProgramPipeline; + da_glGetProgramPipelineInfoLog glGetProgramPipelineInfoLog; + da_glBindImageTexture glBindImageTexture; + da_glGetBooleani_v glGetBooleani_v; + da_glMemoryBarrier glMemoryBarrier; + da_glMemoryBarrierByRegion glMemoryBarrierByRegion; + da_glTexStorage2DMultisample glTexStorage2DMultisample; + da_glGetMultisamplefv glGetMultisamplefv; + da_glSampleMaski glSampleMaski; + da_glGetTexLevelParameteriv glGetTexLevelParameteriv; + da_glGetTexLevelParameterfv glGetTexLevelParameterfv; + da_glBindVertexBuffer glBindVertexBuffer; + da_glVertexAttribFormat glVertexAttribFormat; + da_glVertexAttribIFormat glVertexAttribIFormat; + da_glVertexAttribBinding glVertexAttribBinding; + da_glVertexBindingDivisor glVertexBindingDivisor; +} diff --git a/source/derelict/gles/gles2.d b/source/derelict/gles/gles2.d index c91d677..3a264ac 100644 --- a/source/derelict/gles/gles2.d +++ b/source/derelict/gles/gles2.d @@ -47,7 +47,10 @@ private { class DerelictGLES2Loader : SharedLibLoader { - private GLESVersion _loadedVersion; + protected GLESVersion _loadedVersion; + protected this( string libNames ) { + super( libNames ); + } public { @@ -60,7 +63,7 @@ class DerelictGLES2Loader : SharedLibLoader } GLESVersion reload() { - loadEXT( ); + loadEXT2( ); return _loadedVersion; } diff --git a/source/derelict/gles/gles3.d b/source/derelict/gles/gles3.d new file mode 100644 index 0000000..b567106 --- /dev/null +++ b/source/derelict/gles/gles3.d @@ -0,0 +1,333 @@ +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.gles.gles3; + +public { + import derelict.gles.types3; + import derelict.gles.constants3; + import derelict.gles.ext3; + import derelict.gles.functions3; +} + +private { + import derelict.gles.egl; + import derelict.gles.gles2; + import derelict.util.loader; + import derelict.util.exception; + import derelict.util.system; + import std.conv; + + static if( Derelict_OS_Posix ) { + // Same as GLESv2 on Linux. + enum libNames = "libGLESv2.so.2,libGLESv2.so"; + } else + static assert( 0, "Need to implement OpenGLESv3 libNames for this operating system." ); +} + +class DerelictGLES3Loader : DerelictGLES2Loader +{ + private GLESVersion _loadedVersion; + + public + { + this() { + super( libNames ); + } + + override GLESVersion reload() { + loadEXT3( ); + + return _loadedVersion; + } + + protected override void loadSymbols() { + super.loadSymbols( ); + + // Now the fun begins. We need to query for the version of GLES, + // but we need to do so using a valid context. So first we do the + // EGL dance, make a minimal context, query, make a copy, tear + // things down, then we can finally know what to load. + + // First, before we start anything, we need EGL 1.3 to even say we + // want a 3.x context, so let's start here. + if( DerelictEGL.loadedVersion( ) <= EGLVersion.EGL12 ) { + throw new DerelictException( "EGL is too old to check for GLES3 support." ); + } + + // Initialize EGL. + EGLDisplay disp = eglGetDisplay( EGL_DEFAULT_DISPLAY ); + if( disp == EGL_NO_DISPLAY ) { + throw new DerelictException( "Unable to get a display for EGL" ); + } + if( eglInitialize( disp, null, null ) == EGL_FALSE ) { + throw new DerelictException( "Failed to initialize the EGL display: " ~ to!string( eglGetError( ) ) ); + } + + // Find a minimal configuration. + EGLConfig config; + EGLint nConfig; + EGLBoolean gotConfig = eglChooseConfig( disp, null, &config, 1, &nConfig); + if( !gotConfig ) { + eglTerminate( disp ); + throw new DerelictException( "Failed to find a suitable configuration: " ~ to!string( eglGetError( ) ) ); + } + if( !nConfig ) { + eglTerminate( disp ); + throw new DerelictException( "Failed to find any configurations: " ~ to!string( eglGetError( ) ) ); + } + + // Create a barebones surface. + EGLSurface surf = eglCreatePbufferSurface( disp, config, null ); + if( surf == EGL_NO_SURFACE ) { + eglTerminate( disp ); + throw new DerelictException( "Failed to create a surface: " ~ to!string( eglGetError( ) ) ); + } + + // Create the context. + const EGLint[] ctxAttribs = [ + EGL_CONTEXT_CLIENT_VERSION, 3, // Request a 3.x context. + EGL_NONE + ]; + EGLContext ctx = eglCreateContext( disp, config, EGL_NO_CONTEXT, ctxAttribs.ptr ); + if( ctx == EGL_NO_CONTEXT ) { + eglDestroySurface( disp, surf ); + eglTerminate( disp ); + throw new DerelictException( "Failed to create a GLESv3 context: " ~ to!string( eglGetError( ) ) ); + } + + // Make the context current. + EGLBoolean isCurrent = eglMakeCurrent( disp, surf, surf, ctx ); + if( !isCurrent ) { + eglDestroyContext( disp, ctx ); + eglDestroySurface( disp, surf ); + eglTerminate( disp ); + + throw new DerelictException( "Failed to make the context current: " ~ to!string( eglGetError( ) ) ); + } + + // Finally get the version string. + const( ubyte )* verstr = glGetString( GL_VERSION ); + // The format for the version string is: + // OpenGL ES x.y + char major = *( verstr + 10 ); + char minor = *( verstr + 12 ); + + // Tear it all down. + eglDestroyContext( disp, ctx ); + eglDestroySurface( disp, surf ); + eglTerminate( disp ); + + // OpenGLES 3.0 + bindFunc( cast( void** )&glReadBuffer, "glReadBuffer" ); + bindFunc( cast( void** )&glDrawRangeElements, "glDrawRangeElements" ); + bindFunc( cast( void** )&glTexImage3D, "glTexImage3D" ); + bindFunc( cast( void** )&glTexSubImage3D, "glTexSubImage3D" ); + bindFunc( cast( void** )&glCopyTexSubImage3D, "glCopyTexSubImage3D" ); + bindFunc( cast( void** )&glCompressedTexImage3D, "glCompressedTexImage3D" ); + bindFunc( cast( void** )&glCompressedTexSubImage3D, "glCompressedTexSubImage3D" ); + bindFunc( cast( void** )&glGenQueries, "glGenQueries" ); + bindFunc( cast( void** )&glDeleteQueries, "glDeleteQueries" ); + bindFunc( cast( void** )&glIsQuery, "glIsQuery" ); + bindFunc( cast( void** )&glBeginQuery, "glBeginQuery" ); + bindFunc( cast( void** )&glEndQuery, "glEndQuery" ); + bindFunc( cast( void** )&glGetQueryiv, "glGetQueryiv" ); + bindFunc( cast( void** )&glGetQueryObjectuiv, "glGetQueryObjectuiv" ); + bindFunc( cast( void** )&glUnmapBuffer, "glUnmapBuffer" ); + bindFunc( cast( void** )&glGetBufferPointerv, "glGetBufferPointerv" ); + bindFunc( cast( void** )&glDrawBuffers, "glDrawBuffers" ); + bindFunc( cast( void** )&glUniformMatrix2x3fv, "glUniformMatrix2x3fv" ); + bindFunc( cast( void** )&glUniformMatrix3x2fv, "glUniformMatrix3x2fv" ); + bindFunc( cast( void** )&glUniformMatrix2x4fv, "glUniformMatrix2x4fv" ); + bindFunc( cast( void** )&glUniformMatrix4x2fv, "glUniformMatrix4x2fv" ); + bindFunc( cast( void** )&glUniformMatrix3x4fv, "glUniformMatrix3x4fv" ); + bindFunc( cast( void** )&glUniformMatrix4x3fv, "glUniformMatrix4x3fv" ); + bindFunc( cast( void** )&glBlitFramebuffer, "glBlitFramebuffer" ); + bindFunc( cast( void** )&glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample" ); + bindFunc( cast( void** )&glFramebufferTextureLayer, "glFramebufferTextureLayer" ); + bindFunc( cast( void** )&glMapBufferRange, "glMapBufferRange" ); + bindFunc( cast( void** )&glFlushMappedBufferRange, "glFlushMappedBufferRange" ); + bindFunc( cast( void** )&glBindVertexArray, "glBindVertexArray" ); + bindFunc( cast( void** )&glDeleteVertexArrays, "glDeleteVertexArrays" ); + bindFunc( cast( void** )&glGenVertexArrays, "glGenVertexArrays" ); + bindFunc( cast( void** )&glIsVertexArray, "glIsVertexArray" ); + bindFunc( cast( void** )&glGetIntegeri_v, "glGetIntegeri_v" ); + bindFunc( cast( void** )&glBeginTransformFeedback, "glBeginTransformFeedback" ); + bindFunc( cast( void** )&glEndTransformFeedback, "glEndTransformFeedback" ); + bindFunc( cast( void** )&glBindBufferRange, "glBindBufferRange" ); + bindFunc( cast( void** )&glBindBufferBase, "glBindBufferBase" ); + bindFunc( cast( void** )&glTransformFeedbackVaryings, "glTransformFeedbackVaryings" ); + bindFunc( cast( void** )&glGetTransformFeedbackVarying, "glGetTransformFeedbackVarying" ); + bindFunc( cast( void** )&glVertexAttribIPointer, "glVertexAttribIPointer" ); + bindFunc( cast( void** )&glGetVertexAttribIiv, "glGetVertexAttribIiv" ); + bindFunc( cast( void** )&glGetVertexAttribIuiv, "glGetVertexAttribIuiv" ); + bindFunc( cast( void** )&glVertexAttribI4i, "glVertexAttribI4i" ); + bindFunc( cast( void** )&glVertexAttribI4ui, "glVertexAttribI4ui" ); + bindFunc( cast( void** )&glVertexAttribI4iv, "glVertexAttribI4iv" ); + bindFunc( cast( void** )&glVertexAttribI4uiv, "glVertexAttribI4uiv" ); + bindFunc( cast( void** )&glGetUniformuiv, "glGetUniformuiv" ); + bindFunc( cast( void** )&glGetFragDataLocation, "glGetFragDataLocation" ); + bindFunc( cast( void** )&glUniform1ui, "glUniform1ui" ); + bindFunc( cast( void** )&glUniform2ui, "glUniform2ui" ); + bindFunc( cast( void** )&glUniform3ui, "glUniform3ui" ); + bindFunc( cast( void** )&glUniform4ui, "glUniform4ui" ); + bindFunc( cast( void** )&glUniform1uiv, "glUniform1uiv" ); + bindFunc( cast( void** )&glUniform2uiv, "glUniform2uiv" ); + bindFunc( cast( void** )&glUniform3uiv, "glUniform3uiv" ); + bindFunc( cast( void** )&glUniform4uiv, "glUniform4uiv" ); + bindFunc( cast( void** )&glClearBufferiv, "glClearBufferiv" ); + bindFunc( cast( void** )&glClearBufferuiv, "glClearBufferuiv" ); + bindFunc( cast( void** )&glClearBufferfv, "glClearBufferfv" ); + bindFunc( cast( void** )&glClearBufferfi, "glClearBufferfi" ); + bindFunc( cast( void** )&glGetStringi, "glGetStringi" ); + bindFunc( cast( void** )&glCopyBufferSubData, "glCopyBufferSubData" ); + bindFunc( cast( void** )&glGetUniformIndices, "glGetUniformIndices" ); + bindFunc( cast( void** )&glGetActiveUniformsiv, "glGetActiveUniformsiv" ); + bindFunc( cast( void** )&glGetUniformBlockIndex, "glGetUniformBlockIndex" ); + bindFunc( cast( void** )&glGetActiveUniformBlockiv, "glGetActiveUniformBlockiv" ); + bindFunc( cast( void** )&glGetActiveUniformBlockName, "glGetActiveUniformBlockName" ); + bindFunc( cast( void** )&glUniformBlockBinding, "glUniformBlockBinding" ); + bindFunc( cast( void** )&glDrawArraysInstanced, "glDrawArraysInstanced" ); + bindFunc( cast( void** )&glDrawElementsInstanced, "glDrawElementsInstanced" ); + bindFunc( cast( void** )&glFenceSync, "glFenceSync" ); + bindFunc( cast( void** )&glIsSync, "glIsSync" ); + bindFunc( cast( void** )&glDeleteSync, "glDeleteSync" ); + bindFunc( cast( void** )&glClientWaitSync, "glClientWaitSync" ); + bindFunc( cast( void** )&glWaitSync, "glWaitSync" ); + bindFunc( cast( void** )&glGetInteger64v, "glGetInteger64v" ); + bindFunc( cast( void** )&glGetSynciv, "glGetSynciv" ); + bindFunc( cast( void** )&glGetInteger64i_v, "glGetInteger64i_v" ); + bindFunc( cast( void** )&glGetBufferParameteri64v, "glGetBufferParameteri64v" ); + bindFunc( cast( void** )&glGenSamplers, "glGenSamplers" ); + bindFunc( cast( void** )&glDeleteSamplers, "glDeleteSamplers" ); + bindFunc( cast( void** )&glIsSampler, "glIsSampler" ); + bindFunc( cast( void** )&glBindSampler, "glBindSampler" ); + bindFunc( cast( void** )&glSamplerParameteri, "glSamplerParameteri" ); + bindFunc( cast( void** )&glSamplerParameteriv, "glSamplerParameteriv" ); + bindFunc( cast( void** )&glSamplerParameterf, "glSamplerParameterf" ); + bindFunc( cast( void** )&glSamplerParameterfv, "glSamplerParameterfv" ); + bindFunc( cast( void** )&glGetSamplerParameteriv, "glGetSamplerParameteriv" ); + bindFunc( cast( void** )&glGetSamplerParameterfv, "glGetSamplerParameterfv" ); + bindFunc( cast( void** )&glVertexAttribDivisor, "glVertexAttribDivisor" ); + bindFunc( cast( void** )&glBindTransformFeedback, "glBindTransformFeedback" ); + bindFunc( cast( void** )&glDeleteTransformFeedbacks, "glDeleteTransformFeedbacks" ); + bindFunc( cast( void** )&glGenTransformFeedbacks, "glGenTransformFeedbacks" ); + bindFunc( cast( void** )&glIsTransformFeedback, "glIsTransformFeedback" ); + bindFunc( cast( void** )&glPauseTransformFeedback, "glPauseTransformFeedback" ); + bindFunc( cast( void** )&glResumeTransformFeedback, "glResumeTransformFeedback" ); + bindFunc( cast( void** )&glGetProgramBinary, "glGetProgramBinary" ); + bindFunc( cast( void** )&glProgramBinary, "glProgramBinary" ); + bindFunc( cast( void** )&glProgramParameteri, "glProgramParameteri" ); + bindFunc( cast( void** )&glInvalidateFramebuffer, "glInvalidateFramebuffer" ); + bindFunc( cast( void** )&glInvalidateSubFramebuffer, "glInvalidateSubFramebuffer" ); + bindFunc( cast( void** )&glTexStorage2D, "glTexStorage2D" ); + bindFunc( cast( void** )&glTexStorage3D, "glTexStorage3D" ); + bindFunc( cast( void** )&glGetInternalformativ, "glGetInternalformativ" ); + + _loadedVersion = GLESVersion.GLES30; + + if( minor == '1' ) { + bindFunc( cast( void** )&glDispatchCompute, "glDispatchCompute" ); + bindFunc( cast( void** )&glDispatchComputeIndirect, "glDispatchComputeIndirect" ); + bindFunc( cast( void** )&glDrawArraysIndirect, "glDrawArraysIndirect" ); + bindFunc( cast( void** )&glDrawElementsIndirect, "glDrawElementsIndirect" ); + bindFunc( cast( void** )&glFramebufferParameteri, "glFramebufferParameteri" ); + bindFunc( cast( void** )&glGetFramebufferParameteriv, "glGetFramebufferParameteriv" ); + bindFunc( cast( void** )&glGetProgramInterfaceiv, "glGetProgramInterfaceiv" ); + bindFunc( cast( void** )&glGetProgramResourceIndex, "glGetProgramResourceIndex" ); + bindFunc( cast( void** )&glGetProgramResourceName, "glGetProgramResourceName" ); + bindFunc( cast( void** )&glGetProgramResourceiv, "glGetProgramResourceiv" ); + bindFunc( cast( void** )&glGetProgramResourceLocation, "glGetProgramResourceLocation" ); + bindFunc( cast( void** )&glUseProgramStages, "glUseProgramStages" ); + bindFunc( cast( void** )&glActiveShaderProgram, "glActiveShaderProgram" ); + bindFunc( cast( void** )&glCreateShaderProgramv, "glCreateShaderProgramv" ); + bindFunc( cast( void** )&glBindProgramPipeline, "glBindProgramPipeline" ); + bindFunc( cast( void** )&glDeleteProgramPipelines, "glDeleteProgramPipelines" ); + bindFunc( cast( void** )&glGenProgramPipelines, "glGenProgramPipelines" ); + bindFunc( cast( void** )&glIsProgramPipeline, "glIsProgramPipeline" ); + bindFunc( cast( void** )&glGetProgramPipelineiv, "glGetProgramPipelineiv" ); + bindFunc( cast( void** )&glProgramUniform1i, "glProgramUniform1i" ); + bindFunc( cast( void** )&glProgramUniform2i, "glProgramUniform2i" ); + bindFunc( cast( void** )&glProgramUniform3i, "glProgramUniform3i" ); + bindFunc( cast( void** )&glProgramUniform4i, "glProgramUniform4i" ); + bindFunc( cast( void** )&glProgramUniform1ui, "glProgramUniform1ui" ); + bindFunc( cast( void** )&glProgramUniform2ui, "glProgramUniform2ui" ); + bindFunc( cast( void** )&glProgramUniform3ui, "glProgramUniform3ui" ); + bindFunc( cast( void** )&glProgramUniform4ui, "glProgramUniform4ui" ); + bindFunc( cast( void** )&glProgramUniform1f, "glProgramUniform1f" ); + bindFunc( cast( void** )&glProgramUniform2f, "glProgramUniform2f" ); + bindFunc( cast( void** )&glProgramUniform3f, "glProgramUniform3f" ); + bindFunc( cast( void** )&glProgramUniform4f, "glProgramUniform4f" ); + bindFunc( cast( void** )&glProgramUniform1iv, "glProgramUniform1iv" ); + bindFunc( cast( void** )&glProgramUniform2iv, "glProgramUniform2iv" ); + bindFunc( cast( void** )&glProgramUniform3iv, "glProgramUniform3iv" ); + bindFunc( cast( void** )&glProgramUniform4iv, "glProgramUniform4iv" ); + bindFunc( cast( void** )&glProgramUniform1uiv, "glProgramUniform1uiv" ); + bindFunc( cast( void** )&glProgramUniform2uiv, "glProgramUniform2uiv" ); + bindFunc( cast( void** )&glProgramUniform3uiv, "glProgramUniform3uiv" ); + bindFunc( cast( void** )&glProgramUniform4uiv, "glProgramUniform4uiv" ); + bindFunc( cast( void** )&glProgramUniform1fv, "glProgramUniform1fv" ); + bindFunc( cast( void** )&glProgramUniform2fv, "glProgramUniform2fv" ); + bindFunc( cast( void** )&glProgramUniform3fv, "glProgramUniform3fv" ); + bindFunc( cast( void** )&glProgramUniform4fv, "glProgramUniform4fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix2fv, "glProgramUniformMatrix2fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix3fv, "glProgramUniformMatrix3fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix4fv, "glProgramUniformMatrix4fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix2x3fv, "glProgramUniformMatrix2x3fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix3x2fv, "glProgramUniformMatrix3x2fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix2x4fv, "glProgramUniformMatrix2x4fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix4x2fv, "glProgramUniformMatrix4x2fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix3x4fv, "glProgramUniformMatrix3x4fv" ); + bindFunc( cast( void** )&glProgramUniformMatrix4x3fv, "glProgramUniformMatrix4x3fv" ); + bindFunc( cast( void** )&glValidateProgramPipeline, "glValidateProgramPipeline" ); + bindFunc( cast( void** )&glGetProgramPipelineInfoLog, "glGetProgramPipelineInfoLog" ); + bindFunc( cast( void** )&glBindImageTexture, "glBindImageTexture" ); + bindFunc( cast( void** )&glGetBooleani_v, "glGetBooleani_v" ); + bindFunc( cast( void** )&glMemoryBarrier, "glMemoryBarrier" ); + bindFunc( cast( void** )&glMemoryBarrierByRegion, "glMemoryBarrierByRegion" ); + bindFunc( cast( void** )&glTexStorage2DMultisample, "glTexStorage2DMultisample" ); + bindFunc( cast( void** )&glGetMultisamplefv, "glGetMultisamplefv" ); + bindFunc( cast( void** )&glSampleMaski, "glSampleMaski" ); + bindFunc( cast( void** )&glGetTexLevelParameteriv, "glGetTexLevelParameteriv" ); + bindFunc( cast( void** )&glGetTexLevelParameterfv, "glGetTexLevelParameterfv" ); + bindFunc( cast( void** )&glBindVertexBuffer, "glBindVertexBuffer" ); + bindFunc( cast( void** )&glVertexAttribFormat, "glVertexAttribFormat" ); + bindFunc( cast( void** )&glVertexAttribIFormat, "glVertexAttribIFormat" ); + bindFunc( cast( void** )&glVertexAttribBinding, "glVertexAttribBinding" ); + bindFunc( cast( void** )&glVertexBindingDivisor, "glVertexBindingDivisor" ); + + _loadedVersion = GLESVersion.GLES31; + } + } + } +} + +__gshared DerelictGLES3Loader DerelictGLES3; + +shared static this() { + DerelictGLES3 = new DerelictGLES3Loader; +} diff --git a/source/derelict/gles/types2.d b/source/derelict/gles/types2.d index 0da90e5..9ab6f44 100644 --- a/source/derelict/gles/types2.d +++ b/source/derelict/gles/types2.d @@ -54,5 +54,7 @@ alias GLubyte = ubyte; enum GLESVersion { None, GLES20, - HighestSupported = GLES20, + GLES30, + GLES31, + HighestSupported = GLES31, } diff --git a/source/derelict/gles/types3.d b/source/derelict/gles/types3.d new file mode 100644 index 0000000..357ffa2 --- /dev/null +++ b/source/derelict/gles/types3.d @@ -0,0 +1,32 @@ +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.gles.types3; + +public import derelict.gles.types2; + +alias GLhalf = ushort;