From b49db7be89c6358e60420e361120b9ceba904826 Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sat, 28 Mar 2009 11:04:18 +0000 Subject: [PATCH] Initial OpenGL 3.1 support. --- Source/Bind/Specifications/GL2/enum.spec | 60 +- Source/Bind/Specifications/GL2/enumext.spec | 61 +- Source/Bind/Specifications/GL2/gl.spec | 167 +++++- Source/OpenTK/Graphics/GL/GL.cs | 632 ++++++++++++++++++++ Source/OpenTK/Graphics/GL/GLCore.cs | 24 + Source/OpenTK/Graphics/GL/GLDelegates.cs | 24 + Source/OpenTK/Graphics/GL/GLEnums.cs | 84 +++ 7 files changed, 1039 insertions(+), 13 deletions(-) diff --git a/Source/Bind/Specifications/GL2/enum.spec b/Source/Bind/Specifications/GL2/enum.spec index 760c38ac..d69f28c2 100644 --- a/Source/Bind/Specifications/GL2/enum.spec +++ b/Source/Bind/Specifications/GL2/enum.spec @@ -192,7 +192,6 @@ DrawElementsType enum: use DataType UNSIGNED_INT ############################################################################### - AttribMask enum: CURRENT_BIT = 0x00000001 POINT_BIT = 0x00000002 @@ -544,7 +543,7 @@ EnableCap enum: use EXT_rescale_normal RESCALE_NORMAL_EXT use EXT_shared_texture_palette SHARED_TEXTURE_PALETTE_EXT use EXT_texture3D TEXTURE_3D_EXT - use VERSION_1_3 MULTISAMPLE + use ARB_multisample MULTISAMPLE use SGIS_multisample SAMPLE_ALPHA_TO_MASK_SGIS use SGIS_multisample SAMPLE_ALPHA_TO_ONE_SGIS use SGIS_multisample SAMPLE_MASK_SGIS @@ -3664,7 +3663,6 @@ SGIX_icc_texture enum: LUMINANCE16_ICC_SGIX = 0x8469 INTENSITY16_ICC_SGIX = 0x846A LUMINANCE16_ALPHA8_ICC_SGIX = 0x846B - ############################################################################### # SGI_future_use: 0x846C @@ -5665,11 +5663,53 @@ SGIX_subsample enum: # MIN_PBUFFER_VIEWPORT_DIMS_APPLE = 0x8A10 # ELEMENT_BUFFER_BINDING_APPLE = 0x8A11 +# There's a potential collision with ELEMENT_BUFFER_BINDING_APPLE. +# Unclear whether the enums above ever actually shipped from Apple, +# checking... +# ARB_uniform_buffer_object enum: (additional; see above) +# UNIFORM_BUFFER = 0x8A11 + # APPLE_flush_buffer_range enum: # BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 # BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 -# APPLE_future_use: 0x8A14-0x8A7F +# APPLE_future_use: 0x8A14-0x8A27 + +# ARB_uniform_buffer_object enum: +# UNIFORM_BUFFER_BINDING = 0x8A28 +# UNIFORM_BUFFER_START = 0x8A29 +# UNIFORM_BUFFER_SIZE = 0x8A2A +# MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B +# MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C +# MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D +# MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E +# MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F +# MAX_UNIFORM_BLOCK_SIZE = 0x8A30 +# MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 +# MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 +# MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 +# UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 +# ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 +# ACTIVE_UNIFORM_BLOCKS = 0x8A36 +# UNIFORM_TYPE = 0x8A37 +# UNIFORM_SIZE = 0x8A38 +# UNIFORM_NAME_LENGTH = 0x8A39 +# UNIFORM_BLOCK_INDEX = 0x8A3A +# UNIFORM_OFFSET = 0x8A3B +# UNIFORM_ARRAY_STRIDE = 0x8A3C +# UNIFORM_MATRIX_STRIDE = 0x8A3D +# UNIFORM_IS_ROW_MAJOR = 0x8A3E +# UNIFORM_BLOCK_BINDING = 0x8A3F +# UNIFORM_BLOCK_DATA_SIZE = 0x8A40 +# UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 +# UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 +# UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 +# UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 +# UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 +# UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 +# INVALID_INDEX = 0xFFFFFFFFu + +# APPLE_future_use: 0x8A47-0x8A7F ############################################################################### @@ -6626,8 +6666,8 @@ SGIX_subsample enum: ############################################################################### # QNX: 0x8E90-0x8E9F -# https://cvs.khronos.org/bugzilla/show_bug.cgi?id=696 # For GL_QNX_texture_tiling, GL_QNX_complex_polygon, GL_QNX_stippled_lines +# (Khronos bug 696) # QNX_future_use: 0x8E90-0x8E9F @@ -6649,6 +6689,14 @@ SGIX_subsample enum: # NVIDIA: 0x8ED0-0x8F4F # Assigned for Pat Brown (Khronos bug 3191) +# NV_future_use: 0x8ED0-0x8F35 + +# ARB_copy_buffer enum: +# COPY_READ_BUFFER = 0x8F36 +# COPY_WRITE_BUFFER = 0x8F37 + +# NVIDIA_future_use: 0x8F38-0x8F4F + ############################################################################### # 3Dlabs: 0x8F50-0x8F5F @@ -6767,4 +6815,4 @@ SGIX_subsample enum: # PGI: 107000-107999 (Portable was acquired by Template Graphics) # E&S: 108000-108999 -############################################################################### \ No newline at end of file +############################################################################### diff --git a/Source/Bind/Specifications/GL2/enumext.spec b/Source/Bind/Specifications/GL2/enumext.spec index 1e189f7c..c4501b08 100644 --- a/Source/Bind/Specifications/GL2/enumext.spec +++ b/Source/Bind/Specifications/GL2/enumext.spec @@ -1698,8 +1698,7 @@ ARB_half_float_vertex enum: # ARB Extension #49 ARB_instanced_arrays enum: -# ARB_instanced_arrays enum: -# VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE + VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE ############################################################################### @@ -1764,6 +1763,64 @@ ARB_texture_rg enum: ARB_vertex_array_object enum: VERTEX_ARRAY_BINDING = 0x85B5 +############################################################################### + +# No new tokens +# ARB Extension #55 - WGL_ARB_create_context +# ARB Extension #56 - GLX_ARB_create_context + +############################################################################### + +# ARB Extension #57 +ARB_uniform_buffer_object enum: + UNIFORM_BUFFER = 0x8A11 + UNIFORM_BUFFER_BINDING = 0x8A28 + UNIFORM_BUFFER_START = 0x8A29 + UNIFORM_BUFFER_SIZE = 0x8A2A + MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B + MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C + MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D + MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E + MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F + MAX_UNIFORM_BLOCK_SIZE = 0x8A30 + MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 + MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 + MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 + UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 + ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 + ACTIVE_UNIFORM_BLOCKS = 0x8A36 + UNIFORM_TYPE = 0x8A37 + UNIFORM_SIZE = 0x8A38 + UNIFORM_NAME_LENGTH = 0x8A39 + UNIFORM_BLOCK_INDEX = 0x8A3A + UNIFORM_OFFSET = 0x8A3B + UNIFORM_ARRAY_STRIDE = 0x8A3C + UNIFORM_MATRIX_STRIDE = 0x8A3D + UNIFORM_IS_ROW_MAJOR = 0x8A3E + UNIFORM_BLOCK_BINDING = 0x8A3F + UNIFORM_BLOCK_DATA_SIZE = 0x8A40 + UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 + UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 + UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 + UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 + UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 + UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 + INVALID_INDEX_ARB = 0xFFFFFFFF + +############################################################################### + +# ARB Extension #58 +# No new tokens +ARB_compatibility enum: +passthru: /* ARB_compatibility just defines tokens from core 3.0 */ + +############################################################################### + +# ARB Extension #59 +ARB_copy_buffer enum: + COPY_READ_BUFFER = 0x8F36 + COPY_WRITE_BUFFER = 0x8F37 + ############################################################################### # diff --git a/Source/Bind/Specifications/GL2/gl.spec b/Source/Bind/Specifications/GL2/gl.spec index 31227ceb..d159c24c 100644 --- a/Source/Bind/Specifications/GL2/gl.spec +++ b/Source/Bind/Specifications/GL2/gl.spec @@ -1,7 +1,8 @@ # gl.spec file # DON'T REMOVE PREVIOUS LINE!!! libspec depends on it! # -# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# Copyright (c) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# Copyright (c) 2006-2009 The Khronos Group Inc. # # This document is licensed under the SGI Free Software B License Version # 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . @@ -17,8 +18,7 @@ param: retval retained dlflags: notlistable handcode glxflags: client-intercept client-handcode server-handcode EXT SGI ignore ARB vectorequiv: * -category: display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform 1_1 VERSION_1_2 VERSION_1_3 VERSION_1_4 VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 ATI_element_array ATI_envmap_bumpmap ATI_fragment_shader ATI_pn_triangles ATI_vertex_array_object ATI_vertex_streams EXT_blend_color EXT_blend_minmax EXT_convolution EXT_copy_texture EXT_histogram EXT_polygon_offset EXT_subtexture EXT_texture3D EXT_texture_object EXT_vertex_array EXT_vertex_shader SGIS_detail_texture SGIS_multisample SGIS_pixel_texture ARB_point_parameters EXT_point_parameters SGIS_point_parameters SGIS_sharpen_texture SGIS_texture4D SGIS_texture_filter4 SGIX_async SGIX_flush_raster SGIX_fragment_lighting SGIX_framezoom SGIX_igloo_interface SGIX_instruments SGIX_list_priority SGIX_pixel_texture SGIX_polynomial_ffd SGIX_reference_plane SGIX_sprite SGIX_tag_sample_buffer SGI_color_table ARB_multitexture ARB_multisample ARB_texture_compression ARB_transpose_matrix ARB_vertex_blend ARB_matrix_palette EXT_compiled_vertex_array EXT_cull_vertex EXT_index_func EXT_index_material EXT_draw_range_elements EXT_vertex_weighting INGR_blend_func_separate NV_evaluators NV_fence NV_occlusion_query NV_point_sprite NV_register_combiners NV_register_combiners2 NV_vertex_array_range NV_vertex_program NV_vertex_program1_1_dcc MESA_resize_buffers MESA_window_pos PGI_misc_hints EXT_fog_coord EXT_blend_func_separate EXT_color_subtable EXT_coordinate_frame EXT_light_texture EXT_multi_draw_arrays EXT_paletted_texture EXT_pixel_transform EXT_secondary_color EXT_texture_perturb_normal HP_image_transform IBM_multimode_draw_arrays IBM_vertex_array_lists INTEL_parallel_arrays SUNX_constant_data SUN_global_alpha SUN_mesh_array SUN_triangle_list SUN_vertex 3DFX_tbuffer EXT_multisample SGIS_fog_function SGIS_texture_color_mask ARB_window_pos EXT_stencil_two_side EXT_depth_bounds_test EXT_blend_equation_separate ARB_vertex_program ARB_fragment_program ARB_vertex_buffer_object ARB_occlusion_query ARB_shader_objects ARB_vertex_shader ARB_fragment_shader S3_s3tc ATI_draw_buffers ATI_texture_env_combine3 ATI_texture_float NV_float_buffer NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart NV_texture_expand_normal NV_texture_expand_normal NV_vertex_program2 APPLE_element_array APPLE_fence APPLE_vertex_array_object APPLE_vertex_array_range ATI_draw_buffers NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart ATI_map_object_buffer ATI_separate_stencil ATI_vertex_attrib_array_object ARB_draw_buffers ARB_texture_rectangle ARB_color_buffer_float EXT_framebuffer_object GREMEDY_string_marker EXT_stencil_clear_tag EXT_framebuffer_blit EXT_framebuffer_multisample MESAX_texture_stack EXT_timer_query EXT_gpu_program_parameters APPLE_flush_buffer_range NV_gpu_program4 NV_geometry_program4 EXT_geometry_shader4 NV_vertex_program4 EXT_gpu_shader4 EXT_draw_instanced EXT_texture_buffer_object NV_depth_buffer_float NV_framebuffer_multisample_coverage NV_parameter_buffer_object EXT_draw_buffers2 NV_transform_feedback EXT_bindable_uniform EXT_texture_integer GREMEDY_frame_terminator NV_conditional_render NV_present_video EXT_transform_feedback ARB_depth_buffer_float ARB_draw_instanced ARB_framebuffer_object ARB_framebuffer_sRGB ARB_geometry_shader4 ARB_half_float_vertex ARB_instanced_arrays ARB_map_buffer_range ARB_texture_buffer_object ARB_texture_compression_rgtc ARB_texture_rg ARB_vertex_array_object EXT_direct_state_access EXT_vertex_array_bgra EXT_texture_swizzle NV_explicit_multisample NV_transform_feedback2 ATI_meminfo AMD_performance_monitor AMD_vertex_shader_tesselator EXT_provoking_vertex - +category: display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform 1_1 VERSION_1_2 VERSION_1_3 VERSION_1_4 VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 ATI_element_array ATI_envmap_bumpmap ATI_fragment_shader ATI_pn_triangles ATI_vertex_array_object ATI_vertex_streams EXT_blend_color EXT_blend_minmax EXT_convolution EXT_copy_texture EXT_histogram EXT_polygon_offset EXT_subtexture EXT_texture3D EXT_texture_object EXT_vertex_array EXT_vertex_shader SGIS_detail_texture SGIS_multisample SGIS_pixel_texture ARB_point_parameters EXT_point_parameters SGIS_point_parameters SGIS_sharpen_texture SGIS_texture4D SGIS_texture_filter4 SGIX_async SGIX_flush_raster SGIX_fragment_lighting SGIX_framezoom SGIX_igloo_interface SGIX_instruments SGIX_list_priority SGIX_pixel_texture SGIX_polynomial_ffd SGIX_reference_plane SGIX_sprite SGIX_tag_sample_buffer SGI_color_table ARB_multitexture ARB_multisample ARB_texture_compression ARB_transpose_matrix ARB_vertex_blend ARB_matrix_palette EXT_compiled_vertex_array EXT_cull_vertex EXT_index_func EXT_index_material EXT_draw_range_elements EXT_vertex_weighting INGR_blend_func_separate NV_evaluators NV_fence NV_occlusion_query NV_point_sprite NV_register_combiners NV_register_combiners2 NV_vertex_array_range NV_vertex_program NV_vertex_program1_1_dcc MESA_resize_buffers MESA_window_pos PGI_misc_hints EXT_fog_coord EXT_blend_func_separate EXT_color_subtable EXT_coordinate_frame EXT_light_texture EXT_multi_draw_arrays EXT_paletted_texture EXT_pixel_transform EXT_secondary_color EXT_texture_perturb_normal HP_image_transform IBM_multimode_draw_arrays IBM_vertex_array_lists INTEL_parallel_arrays SUNX_constant_data SUN_global_alpha SUN_mesh_array SUN_triangle_list SUN_vertex 3DFX_tbuffer EXT_multisample SGIS_fog_function SGIS_texture_color_mask ARB_window_pos EXT_stencil_two_side EXT_depth_bounds_test EXT_blend_equation_separate ARB_vertex_program ARB_fragment_program ARB_vertex_buffer_object ARB_occlusion_query ARB_shader_objects ARB_vertex_shader ARB_fragment_shader S3_s3tc ATI_draw_buffers ATI_texture_env_combine3 ATI_texture_float NV_float_buffer NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart NV_texture_expand_normal NV_texture_expand_normal NV_vertex_program2 APPLE_element_array APPLE_fence APPLE_vertex_array_object APPLE_vertex_array_range ATI_draw_buffers NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart ATI_map_object_buffer ATI_separate_stencil ATI_vertex_attrib_array_object ARB_draw_buffers ARB_texture_rectangle ARB_color_buffer_float EXT_framebuffer_object GREMEDY_string_marker EXT_stencil_clear_tag EXT_framebuffer_blit EXT_framebuffer_multisample MESAX_texture_stack EXT_timer_query EXT_gpu_program_parameters APPLE_flush_buffer_range NV_gpu_program4 NV_geometry_program4 EXT_geometry_shader4 NV_vertex_program4 EXT_gpu_shader4 EXT_draw_instanced EXT_texture_buffer_object NV_depth_buffer_float NV_framebuffer_multisample_coverage NV_parameter_buffer_object EXT_draw_buffers2 NV_transform_feedback EXT_bindable_uniform EXT_texture_integer GREMEDY_frame_terminator NV_conditional_render NV_present_video EXT_transform_feedback ARB_depth_buffer_float ARB_draw_instanced ARB_framebuffer_object ARB_framebuffer_sRGB ARB_geometry_shader4 ARB_half_float_vertex ARB_instanced_arrays ARB_map_buffer_range ARB_texture_buffer_object ARB_texture_compression_rgtc ARB_texture_rg ARB_vertex_array_object EXT_direct_state_access EXT_vertex_array_bgra EXT_texture_swizzle NV_explicit_multisample NV_transform_feedback2 ATI_meminfo AMD_performance_monitor AMD_vertex_shader_tesselator EXT_provoking_vertex ARB_uniform_buffer_object ARB_copy_buffer # categories for extensions with no functions - need not be included now # ARB_texture_env_add ARB_texture_cube_map ARB_texture_border_clamp ARB_shading_language_100 ARB_texture_non_power_of_two ARB_point_sprite ARB_half_float_pixel ARB_texture_float ARB_pixel_buffer_object EXT_abgr EXT_texture SGI_color_matrix SGI_texture_color_table EXT_cmyka EXT_packed_pixels SGIS_texture_lod EXT_rescale_normal EXT_misc_attribute SGIS_generate_mipmap SGIX_clipmap SGIX_shadow SGIS_texture_edge_clamp SGIS_texture_border_clamp EXT_blend_subtract EXT_blend_logic_op SGIX_async_histogram SGIX_async_pixel SGIX_interlace SGIX_pixel_tiles SGIX_texture_select SGIX_texture_multi_buffer SGIX_texture_scale_bias SGIX_depth_texture SGIX_fog_offset HP_convolution_border_modes SGIX_texture_add_env PGI_vertex_hints EXT_clip_volume_hint SGIX_ir_instrument1 SGIX_calligraphic_fragment SGIX_texture_lod_bias SGIX_shadow_ambient EXT_index_texture EXT_index_array_formats SGIX_ycrcb IBM_rasterpos_clip HP_texture_lighting WIN_phong_shading WIN_specular_fog SGIX_blend_alpha_minmax EXT_bgra HP_occlusion_test EXT_pixel_transform_color_table EXT_shared_texture_palette EXT_separate_specular_color EXT_texture_env REND_screen_coordinates EXT_texture_env_combine APPLE_specular_vector APPLE_transform_hint SGIX_fog_scale INGR_color_clamp INGR_interlace_read EXT_stencil_wrap EXT_422_pixels NV_texgen_reflection SUN_convolution_border_modes SUN_slice_accum EXT_texture_env_add EXT_texture_lod_bias EXT_texture_filter_anisotropic NV_light_max_exponent NV_fog_distance NV_texgen_emboss NV_blend_square NV_texture_env_combine4 NV_packed_depth_stencil NV_texture_compression_vtc NV_texture_rectangle NV_texture_shader NV_texture_shader2 NV_vertex_array_range2 IBM_cull_vertex SGIX_subsample SGIX_ycrcba SGIX_ycrcb_subsample SGIX_depth_pass_instrument 3DFX_texture_compression_FXT1 3DFX_multisample SGIX_vertex_preclip SGIX_convolution_accuracy SGIX_resample SGIX_scalebias_hint SGIX_texture_coordinate_clamp EXT_shadow_funcs MESA_pack_invert MESA_ycbcr_texture EXT_packed_float EXT_texture_array EXT_texture_compression_latc EXT_texture_compression_rgtc EXT_texture_shared_exponent NV_fragment_program4 EXT_framebuffer_sRGB NV_geometry_shader4 EXT_vertex_array_bgra @@ -8980,7 +8980,6 @@ WindowPos3svARB(v) # # ARB Extension #26 # ARB_vertex_program commands -# Edited for OpenTK # ############################################################################### @@ -11237,6 +11236,164 @@ IsVertexArray(array) glsopcode ? offset ? +############################################################################### +# +# ARB Extension #55 - WGL_ARB_create_context +# ARB Extension #56 - GLX_ARB_create_context +# +############################################################################### + +############################################################################### +# +# ARB Extension #57 +# ARB_uniform_buffer_object commands +# +############################################################################### + +GetUniformIndices(program, uniformCount, uniformNames, uniformIndices) + return void + param program UInt32 in value + param uniformCount SizeI in value + param uniformNames CharPointer in array [COMPSIZE(uniformCount)] + param uniformIndices UInt32 out array [COMPSIZE(uniformCount)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +GetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params) + return void + param program UInt32 in value + param uniformCount SizeI in value + param uniformIndices UInt32 in array [COMPSIZE(uniformCount)] + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +GetActiveUniformName(program, uniformIndex, bufSize, length, uniformName) + return void + param program UInt32 in value + param uniformIndex UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param uniformName Char out array [bufSize] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +GetUniformBlockIndex(program, uniformBlockName) + return UInt32 + param program UInt32 in value + param uniformBlockName Char in array [COMPSIZE()] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +GetActiveUniformBlockiv(program, uniformBlockIndex, pname, params) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +GetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param uniformBlockName Char out array [bufSize] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + glsflags get + glsopcode ? + offset ? + +UniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param uniformBlockBinding UInt32 in value + category ARB_uniform_buffer_object + version 2.0 + extension + glxropcode ? + glxflags ignore + glsopcode ? + offset ? + + +############################################################################### +# +# ARB Extension #58 +# ARB_compatibility commands +# +############################################################################### + +# (none) +newcategory: ARB_compatibility + +############################################################################### +# +# ARB Extension #59 +# ARB_copy_buffer commands +# +############################################################################### + +CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size) + return void + param readTarget GLenum in value + param writeTarget GLenum in value + param readOffset BufferOffset in value + param writeOffset BufferOffset in value + param size BufferSize in value + category ARB_copy_buffer + version 3.0 + extension + glxropcode ? + glxflags ignore + glsopcode ? + offset ? + + ############################################################################### ############################################################################### @@ -26748,4 +26905,4 @@ ProvokingVertexEXT(mode) glxflags ignore glsflags get glsopcode ? - offset ? \ No newline at end of file + offset ? diff --git a/Source/OpenTK/Graphics/GL/GL.cs b/Source/OpenTK/Graphics/GL/GL.cs index 5f0cfe6a..4248f19e 100644 --- a/Source/OpenTK/Graphics/GL/GL.cs +++ b/Source/OpenTK/Graphics/GL/GL.cs @@ -54115,6 +54115,638 @@ namespace OpenTK.Graphics return Delegates.glIsVertexArray((UInt32)array); } + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + void GetUniformIndices(UInt32 program, Int32 uniformCount, String uniformNames, [Out] UInt32[] uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (UInt32* uniformIndices_ptr = uniformIndices) + { + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices_ptr); + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + void GetUniformIndices(Int32 program, Int32 uniformCount, String uniformNames, [Out] Int32[] uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* uniformIndices_ptr = uniformIndices) + { + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices_ptr); + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + void GetUniformIndices(UInt32 program, Int32 uniformCount, String uniformNames, [Out] out UInt32 uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (UInt32* uniformIndices_ptr = &uniformIndices) + { + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices_ptr); + uniformIndices = *uniformIndices_ptr; + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + void GetUniformIndices(Int32 program, Int32 uniformCount, String uniformNames, [Out] out Int32 uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* uniformIndices_ptr = &uniformIndices) + { + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices_ptr); + uniformIndices = *uniformIndices_ptr; + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String uniformNames, [Out] UInt32* uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")] + public static + unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String uniformNames, [Out] Int32* uniformIndices) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String)uniformNames, (UInt32*)uniformIndices); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32[] @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (UInt32* uniformIndices_ptr = uniformIndices) + fixed (Int32* @params_ptr = @params) + { + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32[] @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* uniformIndices_ptr = uniformIndices) + fixed (Int32* @params_ptr = @params) + { + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] out Int32 @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (UInt32* uniformIndices_ptr = &uniformIndices) + fixed (Int32* @params_ptr = &@params) + { + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + @params = *@params_ptr; + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] out Int32 @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* uniformIndices_ptr = &uniformIndices) + fixed (Int32* @params_ptr = &@params) + { + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + @params = *@params_ptr; + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")] + public static + unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] Int32[] length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = length) + { + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName); + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [Out] Int32[] length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = length) + { + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName); + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = &length) + { + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName); + length = *length_ptr; + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = &length) + { + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName); + length = *length_ptr; + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformName); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")] + public static + unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformName); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformBlockIndex")] + public static + Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + return Delegates.glGetUniformBlockIndex((UInt32)program, (String)uniformBlockName); + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformBlockIndex")] + public static + Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName) + { + return Delegates.glGetUniformBlockIndex((UInt32)program, (String)uniformBlockName); + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32[] @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* @params_ptr = @params) + { + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32[] @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* @params_ptr = @params) + { + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] out Int32 @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* @params_ptr = &@params) + { + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + @params = *@params_ptr; + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] out Int32 @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* @params_ptr = &@params) + { + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params_ptr); + @params = *@params_ptr; + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")] + public static + unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.ArbUniformBufferObject)pname, (Int32*)@params); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] Int32[] length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = length) + { + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName); + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [Out] Int32[] length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = length) + { + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName); + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = &length) + { + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName); + length = *length_ptr; + } + } + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + unsafe + { + fixed (Int32* length_ptr = &length) + { + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName); + length = *length_ptr; + } + } + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformBlockName); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")] + public static + unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformBlockName); + #if DEBUG + } + #endif + } + + [System.CLSCompliant(false)] + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glUniformBlockBinding")] + public static + void UniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glUniformBlockBinding((UInt32)program, (UInt32)uniformBlockIndex, (UInt32)uniformBlockBinding); + #if DEBUG + } + #endif + } + + [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glUniformBlockBinding")] + public static + void UniformBlockBinding(Int32 program, Int32 uniformBlockIndex, Int32 uniformBlockBinding) + { + Delegates.glUniformBlockBinding((UInt32)program, (UInt32)uniformBlockIndex, (UInt32)uniformBlockBinding); + } + + [AutoGenerated(Category = "ArbCopyBuffer", Version = "3.0", EntryPoint = "glCopyBufferSubData")] + public static + void CopyBufferSubData(OpenTK.Graphics.ArbCopyBuffer readTarget, OpenTK.Graphics.ArbCopyBuffer writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size) + { + #if DEBUG + using (new ErrorHelper(GraphicsContext.CurrentContext)) + { + #endif + Delegates.glCopyBufferSubData((OpenTK.Graphics.ArbCopyBuffer)readTarget, (OpenTK.Graphics.ArbCopyBuffer)writeTarget, (IntPtr)readOffset, (IntPtr)writeOffset, (IntPtr)size); + #if DEBUG + } + #endif + } + [System.CLSCompliant(false)] [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")] public static diff --git a/Source/OpenTK/Graphics/GL/GLCore.cs b/Source/OpenTK/Graphics/GL/GLCore.cs index 45f8ebdc..b50a7563 100644 --- a/Source/OpenTK/Graphics/GL/GLCore.cs +++ b/Source/OpenTK/Graphics/GL/GLCore.cs @@ -2040,6 +2040,30 @@ namespace OpenTK.Graphics [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glIsVertexArray", ExactSpelling = true)] internal extern static bool IsVertexArray(UInt32 array); [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetUniformIndices", ExactSpelling = true)] + internal extern static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String uniformNames, [Out] UInt32* uniformIndices); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetActiveUniformsiv", ExactSpelling = true)] + internal extern static unsafe void GetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetActiveUniformName", ExactSpelling = true)] + internal extern static unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetUniformBlockIndex", ExactSpelling = true)] + internal extern static Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetActiveUniformBlockiv", ExactSpelling = true)] + internal extern static unsafe void GetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetActiveUniformBlockName", ExactSpelling = true)] + internal extern static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glUniformBlockBinding", ExactSpelling = true)] + internal extern static void UniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding); + [System.Security.SuppressUnmanagedCodeSecurity()] + [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glCopyBufferSubData", ExactSpelling = true)] + internal extern static void CopyBufferSubData(OpenTK.Graphics.ArbCopyBuffer readTarget, OpenTK.Graphics.ArbCopyBuffer writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size); + [System.Security.SuppressUnmanagedCodeSecurity()] [System.Runtime.InteropServices.DllImport(GL.Library, EntryPoint = "glGetPerfMonitorGroupsAMD", ExactSpelling = true)] internal extern static unsafe void GetPerfMonitorGroupsAMD([Out] Int32* numGroups, Int32 groupsSize, [Out] UInt32* groups); [System.Security.SuppressUnmanagedCodeSecurity()] diff --git a/Source/OpenTK/Graphics/GL/GLDelegates.cs b/Source/OpenTK/Graphics/GL/GLDelegates.cs index 93866150..2c8a827f 100644 --- a/Source/OpenTK/Graphics/GL/GLDelegates.cs +++ b/Source/OpenTK/Graphics/GL/GLDelegates.cs @@ -2675,6 +2675,30 @@ namespace OpenTK.Graphics internal delegate bool IsVertexArray(UInt32 array); internal static IsVertexArray glIsVertexArray; [System.Security.SuppressUnmanagedCodeSecurity()] + internal unsafe delegate void GetUniformIndices(UInt32 program, Int32 uniformCount, String uniformNames, [Out] UInt32* uniformIndices); + internal unsafe static GetUniformIndices glGetUniformIndices; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal unsafe delegate void GetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params); + internal unsafe static GetActiveUniformsiv glGetActiveUniformsiv; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal unsafe delegate void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName); + internal unsafe static GetActiveUniformName glGetActiveUniformName; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal delegate Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName); + internal static GetUniformBlockIndex glGetUniformBlockIndex; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal unsafe delegate void GetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ArbUniformBufferObject pname, [Out] Int32* @params); + internal unsafe static GetActiveUniformBlockiv glGetActiveUniformBlockiv; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal unsafe delegate void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName); + internal unsafe static GetActiveUniformBlockName glGetActiveUniformBlockName; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal delegate void UniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding); + internal static UniformBlockBinding glUniformBlockBinding; + [System.Security.SuppressUnmanagedCodeSecurity()] + internal delegate void CopyBufferSubData(OpenTK.Graphics.ArbCopyBuffer readTarget, OpenTK.Graphics.ArbCopyBuffer writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size); + internal static CopyBufferSubData glCopyBufferSubData; + [System.Security.SuppressUnmanagedCodeSecurity()] internal delegate void BlendColorEXT(Single red, Single green, Single blue, Single alpha); internal static BlendColorEXT glBlendColorEXT; [System.Security.SuppressUnmanagedCodeSecurity()] diff --git a/Source/OpenTK/Graphics/GL/GLEnums.cs b/Source/OpenTK/Graphics/GL/GLEnums.cs index fe20023e..39d07020 100644 --- a/Source/OpenTK/Graphics/GL/GLEnums.cs +++ b/Source/OpenTK/Graphics/GL/GLEnums.cs @@ -5492,6 +5492,7 @@ namespace OpenTK.Graphics MaxProgramLoopCountNv = ((int)0X88f8), VertexAttribArrayInteger = ((int)0X88fd), VertexAttribArrayIntegerNv = ((int)0X88fd), + VertexAttribArrayDivisorArb = ((int)0X88fe), MaxArrayTextureLayers = ((int)0X88ff), MaxArrayTextureLayersExt = ((int)0X88ff), MinProgramTexelOffset = ((int)0X8904), @@ -5618,8 +5619,40 @@ namespace OpenTK.Graphics ResampleDecimateOml = ((int)0X8989), DrawPixelsApple = ((int)0X8a0a), FenceApple = ((int)0X8a0b), + UniformBuffer = ((int)0X8a11), BufferSerializedModifyApple = ((int)0X8a12), BufferFlushingUnmapApple = ((int)0X8a13), + UniformBufferBinding = ((int)0X8a28), + UniformBufferStart = ((int)0X8a29), + UniformBufferSize = ((int)0X8a2a), + MaxVertexUniformBlocks = ((int)0X8a2b), + MaxGeometryUniformBlocks = ((int)0X8a2c), + MaxFragmentUniformBlocks = ((int)0X8a2d), + MaxCombinedUniformBlocks = ((int)0X8a2e), + MaxUniformBufferBindings = ((int)0X8a2f), + MaxUniformBlockSize = ((int)0X8a30), + MaxCombinedVertexUniformComponents = ((int)0X8a31), + MaxCombinedGeometryUniformComponents = ((int)0X8a32), + MaxCombinedFragmentUniformComponents = ((int)0X8a33), + UniformBufferOffsetAlignment = ((int)0X8a34), + ActiveUniformBlockMaxNameLength = ((int)0X8a35), + ActiveUniformBlocks = ((int)0X8a36), + UniformType = ((int)0X8a37), + UniformSize = ((int)0X8a38), + UniformNameLength = ((int)0X8a39), + UniformBlockIndex = ((int)0X8a3a), + UniformOffset = ((int)0X8a3b), + UniformArrayStride = ((int)0X8a3c), + UniformMatrixStride = ((int)0X8a3d), + UniformIsRowMajor = ((int)0X8a3e), + UniformBlockBinding = ((int)0X8a3f), + UniformBlockDataSize = ((int)0X8a40), + UniformBlockNameLength = ((int)0X8a41), + UniformBlockActiveUniforms = ((int)0X8a42), + UniformBlockActiveUniformIndices = ((int)0X8a43), + UniformBlockReferencedByVertexShader = ((int)0X8a44), + UniformBlockReferencedByGeometryShader = ((int)0X8a45), + UniformBlockReferencedByFragmentShader = ((int)0X8a46), FragmentShader = ((int)0X8b30), FragmentShaderArb = ((int)0X8b30), VertexShader = ((int)0X8b31), @@ -6192,6 +6225,8 @@ namespace OpenTK.Graphics IntSamplerRenderbufferNv = ((int)0X8e57), UnsignedIntSamplerRenderbufferNv = ((int)0X8e58), MaxSampleMaskWordsNv = ((int)0X8e59), + CopyReadBuffer = ((int)0X8f36), + CopyWriteBuffer = ((int)0X8f37), SamplerBufferAmd = ((int)0X9001), IntSamplerBufferAmd = ((int)0X9002), UnsignedIntSamplerBufferAmd = ((int)0X9003), @@ -6201,6 +6236,7 @@ namespace OpenTK.Graphics ContinuousAmd = ((int)0X9007), AllAttribBits = unchecked((int)0Xffffffff), ClientAllAttribBits = unchecked((int)0Xffffffff), + InvalidIndexArb = unchecked((int)0Xffffffff), One = ((int)1), True = ((int)1), CullVertexIbm = ((int)103050), @@ -7106,6 +7142,7 @@ namespace OpenTK.Graphics public enum ArbInstancedArrays { + VertexAttribArrayDivisorArb = ((int)0X88fe), } public enum ArbMapBufferRange @@ -7166,6 +7203,53 @@ namespace OpenTK.Graphics VertexArrayBinding = ((int)0X85b5), } + public enum ArbUniformBufferObject + { + UniformBuffer = ((int)0X8a11), + UniformBufferBinding = ((int)0X8a28), + UniformBufferStart = ((int)0X8a29), + UniformBufferSize = ((int)0X8a2a), + MaxVertexUniformBlocks = ((int)0X8a2b), + MaxGeometryUniformBlocks = ((int)0X8a2c), + MaxFragmentUniformBlocks = ((int)0X8a2d), + MaxCombinedUniformBlocks = ((int)0X8a2e), + MaxUniformBufferBindings = ((int)0X8a2f), + MaxUniformBlockSize = ((int)0X8a30), + MaxCombinedVertexUniformComponents = ((int)0X8a31), + MaxCombinedGeometryUniformComponents = ((int)0X8a32), + MaxCombinedFragmentUniformComponents = ((int)0X8a33), + UniformBufferOffsetAlignment = ((int)0X8a34), + ActiveUniformBlockMaxNameLength = ((int)0X8a35), + ActiveUniformBlocks = ((int)0X8a36), + UniformType = ((int)0X8a37), + UniformSize = ((int)0X8a38), + UniformNameLength = ((int)0X8a39), + UniformBlockIndex = ((int)0X8a3a), + UniformOffset = ((int)0X8a3b), + UniformArrayStride = ((int)0X8a3c), + UniformMatrixStride = ((int)0X8a3d), + UniformIsRowMajor = ((int)0X8a3e), + UniformBlockBinding = ((int)0X8a3f), + UniformBlockDataSize = ((int)0X8a40), + UniformBlockNameLength = ((int)0X8a41), + UniformBlockActiveUniforms = ((int)0X8a42), + UniformBlockActiveUniformIndices = ((int)0X8a43), + UniformBlockReferencedByVertexShader = ((int)0X8a44), + UniformBlockReferencedByGeometryShader = ((int)0X8a45), + UniformBlockReferencedByFragmentShader = ((int)0X8a46), + InvalidIndexArb = unchecked((int)0Xffffffff), + } + + public enum ArbCompatibility + { + } + + public enum ArbCopyBuffer + { + CopyReadBuffer = ((int)0X8f36), + CopyWriteBuffer = ((int)0X8f37), + } + public enum ExtSubtexture { }