[ES] Implemented bindings for ES 3.1 (2/2)
authorthefiddler <stapostol@gmail.com>
Wed, 13 Aug 2014 22:22:07 +0000 (00:22 +0200)
committerthefiddler <stapostol@gmail.com>
Tue, 2 Sep 2014 11:04:13 +0000 (13:04 +0200)
Implemented core functionality:
- KHR_shader_atomic_counters
- KHR_shader_image_load_store
- KHR_shader_storage_buffer_object
- KHR_stencil_texturing
- KHR_texture_gather
- KHR_texture_storage_multisample
- KHR_vertex_attrib_binding

Source/Bind/Generator.Bind.csproj
Source/Bind/Specifications/GL2/ES/3.1/KHR_compute_shader.xml
Source/Bind/Specifications/GL2/ES/3.1/KHR_separate_shader_objects.xml
Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_atomic_counters.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_image_load_store.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_storage_buffer_object.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_stencil_texturing.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_gather.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_storage_multisample.xml [new file with mode: 0644]
Source/Bind/Specifications/GL2/ES/3.1/KHR_vertex_attrib_binding.xml [new file with mode: 0644]

index be2ca59..aea7fdf 100644 (file)
     <None Include="Specifications\GL2\ES\3.1\KHR_explicit_uniform_location.xml" />
     <None Include="Specifications\GL2\ES\3.1\KHR_framebuffer_no_attachments.xml" />
     <None Include="Specifications\GL2\ES\3.1\KHR_program_interface_queries.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_shader_atomic_counters.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_shader_image_load_store.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_shader_storage_buffer_object.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_stencil_texturing.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_texture_gather.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_texture_storage_multisample.xml" />
+    <None Include="Specifications\GL2\ES\3.1\KHR_vertex_attrib_binding.xml" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Specifications\GL2\signatures.xml">
index 09dfac4..ea76cb2 100644 (file)
@@ -5,8 +5,10 @@
     <enum name="BufferTarget">
       <use token="GL_DISPATCH_INDIRECT_BUFFER"/>
     </enum>
-    <enum name="GetPName">
+    <enum name="GetProgramParameterName">
       <use token="GL_COMPUTE_WORK_GROUP_SIZE" />
+    </enum>
+    <enum name="GetPName">
       <uso token="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
       <use token="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
       <use token="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
index 8be35a5..d0e4627 100644 (file)
@@ -2,9 +2,41 @@
 <signatures version="2">
 
   <replace name="gles2" version="3.1">
-    <function name="UseProgramStages" extension="Core">
+    <function name="CreateShaderProgramv">
+      <param name="type"><type>ShaderType</type></param>
+    </function>
+    <function name="GetProgramPipelineiv">
+      <param name="pname"><type>ProgramPipelineParameter</type></param>
+    </function>
+    <function name="UseProgramStages">
       <param name="stages"><type>ProgramStageMask</type></param>
     </function>
   </replace>
 
+  <add name="gles2" version="3.1">
+    <enum name="GetPName">
+      <use token="PROGRAM_PIPELINE_BINDING" />
+    </enum>
+    <enum name="GetProgramParameterName">
+      <use token="PROGRAM_SEPARABLE" />
+    </enum>
+    <enum name="ProgramParameterName">
+      <use token="PROGRAM_SEPARABLE" />
+    </enum>
+    <enum name="ProgramPipelineParameter">
+      <use token="ACTIVE_PROGRAM" />
+      <use token="VERTEX_SHADER" />
+      <use token="FRAGMENT_SHADER" />
+      <use token="COMPUTE_SHADER" />
+      <use token="VALIDATE_STATUS" />
+      <use token="INFO_LOG_LENGTH" />
+    </enum>
+    <enum name="ProgramStageMask">
+      <use token="VERTEX_SHADER_BIT" />
+      <use token="FRAGMENT_SHADER_BIT" />
+      <use token="COMPUTE_SHADER_BIT" />
+      <use token="ALL_SHADER_BITS" />
+    </enum>
+  </add>
+
   </signatures>
\ No newline at end of file
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_atomic_counters.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_atomic_counters.xml
new file mode 100644 (file)
index 0000000..656cd54
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <add name="gles2" version="3.1">
+    <enum name="ActiveUniformType">
+      <use token="UNSIGNED_INT_ATOMIC_COUNTER" />
+    </enum>
+    <enum name="BufferTarget">
+      <use token="GL_ATOMIC_COUNTER_BUFFER"/>
+    </enum>
+    <enum name="GetIndexedPName">
+      <use token="GL_ATOMIC_COUNTER_BUFFER_START"/>
+      <use token="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+    </enum>
+    <enum name="GetPName">
+      <use token="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+      <use token="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+      <use token="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+      <use token="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+      <use token="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+      <use token="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+      <use token="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+      <use token="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+      <use token="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+      <use token="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+      <use token="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+    </enum>
+    <enum name="GetProgramParameterName">
+      <use token="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+    </enum>
+    <enum name="ActiveVariableType">
+      <use token="UNSIGNED_INT_ATOMIC_COUNTER" />
+    </enum>
+  </add>
+
+</signatures>
\ No newline at end of file
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_image_load_store.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_image_load_store.xml
new file mode 100644 (file)
index 0000000..475ec74
--- /dev/null
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <replace name="gles2" version="3.1">
+    <function name="BindImageTexture">
+      <param name="access"><type>TextureAccess</type></param>
+      <param name="format"><type>SizedInternalFormat</type></param>
+    </function>
+    <function name="GetBooleani_v">
+      <param name="target"><type>GetIndexedPName</type></param>
+    </function>
+    <function name="MemoryBarrier">
+      <param name="barriers"><type>MemoryBarrierMask</type></param>
+    </function>
+    <function name="MemoryBarrierByRegion">
+      <param name="barriers"><type>MemoryBarrierRegionMask</type></param>
+    </function>
+  </replace>
+
+  <add name="gles2" version="3.1">
+    <enum name="ActiveUniformType">
+      <use token="GL_IMAGE_2D"/>
+      <use token="GL_IMAGE_3D"/>
+      <use token="GL_IMAGE_CUBE"/>
+      <use token="GL_IMAGE_2D_ARRAY"/>
+      <use token="GL_INT_IMAGE_2D"/>
+      <use token="GL_INT_IMAGE_3D"/>
+      <use token="GL_INT_IMAGE_CUBE"/>
+      <use token="GL_INT_IMAGE_2D_ARRAY"/>
+      <use token="GL_UNSIGNED_INT_IMAGE_2D"/>
+      <use token="GL_UNSIGNED_INT_IMAGE_3D"/>
+      <use token="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+      <use token="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+    </enum>
+    <enum name="GetPName">
+      <use token="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+      <use token="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+      <use token="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+      <use token="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+      <use token="GL_IMAGE_BINDING_NAME"/>
+      <use token="GL_IMAGE_BINDING_LEVEL"/>
+      <use token="GL_IMAGE_BINDING_LAYERED"/>
+      <use token="GL_IMAGE_BINDING_LAYER"/>
+      <use token="GL_IMAGE_BINDING_ACCESS"/>
+      <use token="GL_IMAGE_BINDING_FORMAT"/>
+    </enum>
+    <enum name="GetTextureParameterName">
+      <use token="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+    </enum>
+    <enum name="MemoryBarrierMask">
+      <use token="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+      <use token="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+      <use token="GL_UNIFORM_BARRIER_BIT"/>
+      <use token="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+      <use token="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+      <use token="GL_COMMAND_BARRIER_BIT"/>
+      <use token="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+      <use token="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+      <use token="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+      <use token="GL_FRAMEBUFFER_BARRIER_BIT"/>
+      <use token="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+      <use token="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+      <use token="GL_ALL_BARRIER_BITS"/>
+    </enum>
+    <enum name="MemoryBarrierRegionMask">
+      <use token="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+      <use token="GL_FRAMEBUFFER_BARRIER_BIT"/>
+      <use token="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+      <use token="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+      <use token="GL_UNIFORM_BARRIER_BIT"/>
+      <use token="GL_ALL_BARRIER_BITS"/>
+    </enum>
+    <enum name="TextureAccess">
+      <use token="READ_ONLY" />
+      <use token="WRITE_ONLY" />
+      <use token="READ_WRITE" />
+    </enum>
+  </add>
+
+</signatures>
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_storage_buffer_object.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_shader_storage_buffer_object.xml
new file mode 100644 (file)
index 0000000..6b3b178
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <add name="gles2" version="3.1">
+    <enum name="BufferTarget">
+      <use token="SHADER_STORAGE_BUFFER" />
+    </enum>
+    <enum name="GetPName">
+      <use token="SHADER_STORAGE_BUFFER_BINDING" />
+      <use token="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+      <use token="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+      <use token="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+      <use token="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+      <use token="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+      <use token="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+      <use token="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+      <use token="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+    </enum>
+    <enum name="GetIndexedPName">
+      <use token="SHADER_STORAGE_BUFFER_START" />
+      <use token="SHADER_STORAGE_BUFFER_SIZE" />
+    </enum>
+    <enum name="MemoryBarrierMask">
+      <use token="SHADER_STORAGE_BARRIER_BIT" />
+    </enum>
+    <enum name="MemoryBarrierRegionMask">
+      <use token="SHADER_STORAGE_BARRIER_BIT" />
+    </enum>
+  </add>
+
+</signatures>
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_stencil_texturing.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_stencil_texturing.xml
new file mode 100644 (file)
index 0000000..377f8f3
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <add name="gles2" version="3.1">
+    <enum name="PixelFormat">
+      <use token="STENCIL_INDEX" />
+    </enum>
+    <enum name="TextureParameterName">
+      <use token="DEPTH_STENCIL_TEXTURE_MODE" />
+    </enum>
+  </add>
+
+</signatures>
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_gather.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_gather.xml
new file mode 100644 (file)
index 0000000..7666685
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <add name="gles2" version="3.1">
+    <enum name="GetPName">
+      <use token="MAX_PROGRAM_TEXTURE_GATHER_OFFSET" />
+      <use token="MIN_PROGRAM_TEXTURE_GATHER_OFFSET" />
+    </enum>
+  </add>
+
+</signatures>
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_storage_multisample.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_texture_storage_multisample.xml
new file mode 100644 (file)
index 0000000..12c4e83
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <replace name="gles2" version="3.1">
+    <function name="TexStorage2DMultisample">
+      <param name="target"><type>TextureTargetMultisample2d</type></param>
+      <param name="internalformat"><type>SizedInternalFormat</type></param>
+    </function>
+    <function name="GetMultisample">
+      <param name="pname"><type>GetMultisamplePName</type></param>
+    </function>
+    <function name="GetTexLevelParameter">
+      <param name="target"><type>TextureTarget</type></param>
+      <param name="pname"><type>GetTextureParameterName</type></param>
+    </function>
+  </replace>
+
+  <add name="gles2" version="3.1">
+    <enum name="ActiveUniformType">
+      <use token="GL_SAMPLER_2D_MULTISAMPLE"/>
+      <use token="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+      <use token="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+    </enum>
+    <enum name="EnableCap">
+      <use token="GL_SAMPLE_MASK" />
+    </enum>
+    <enum name="GetIndexedPName">
+      <use token="GL_SAMPLE_MASK_VALUE" />
+    </enum>
+    <enum name="GetPName">
+      <use token="GL_MAX_SAMPLE_MASK_WORDS"/>
+      <use token="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+      <use token="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+      <use token="GL_MAX_INTEGER_SAMPLES"/>
+      <use token="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+    </enum>
+    <enum name="GetMultisamplePName">
+      <use token="GL_SAMPLE_POSITION" />
+    </enum>
+    <enum name="GetTextureParameterName">
+      <use token="GL_TEXTURE_SAMPLES" />
+      <use token="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+      <use token="GL_TEXTURE_WIDTH"/>
+      <use token="GL_TEXTURE_HEIGHT"/>
+      <use token="GL_TEXTURE_DEPTH"/>
+      <use token="GL_TEXTURE_INTERNAL_FORMAT"/>
+      <use token="GL_TEXTURE_RED_SIZE"/>
+      <use token="GL_TEXTURE_GREEN_SIZE"/>
+      <use token="GL_TEXTURE_BLUE_SIZE"/>
+      <use token="GL_TEXTURE_ALPHA_SIZE"/>
+      <use token="GL_TEXTURE_DEPTH_SIZE"/>
+      <use token="GL_TEXTURE_STENCIL_SIZE"/>
+      <use token="GL_TEXTURE_SHARED_SIZE"/>
+      <use token="GL_TEXTURE_RED_TYPE"/>
+      <use token="GL_TEXTURE_GREEN_TYPE"/>
+      <use token="GL_TEXTURE_BLUE_TYPE"/>
+      <use token="GL_TEXTURE_ALPHA_TYPE"/>
+      <use token="GL_TEXTURE_DEPTH_TYPE"/>
+      <use token="GL_TEXTURE_COMPRESSED"/>
+    </enum>
+    <enum name="TextureTargetMultisample2d">
+      <use token="GL_TEXTURE_2D_MULTISAMPLE" />
+    </enum>
+  </add>
+
+
+</signatures>
diff --git a/Source/Bind/Specifications/GL2/ES/3.1/KHR_vertex_attrib_binding.xml b/Source/Bind/Specifications/GL2/ES/3.1/KHR_vertex_attrib_binding.xml
new file mode 100644 (file)
index 0000000..ad5ecd7
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<signatures version="2">
+
+  <replace name="gles2" version="3.1">
+    <function name="VertexAttribFormat" extension="Core">
+      <param name="type"><type>VertexAttribType</type></param>
+    </function>
+    <function name="VertexAttribIFormat" extension="Core">
+      <param name="type"><type>VertexAttribIntegerType</type></param>
+    </function>
+  </replace>
+
+  <add name="gles2" version="3.1">
+    <enum name="VertexAttribType">
+      <use token="BYTE" />
+      <use token="UNSIGNED_BYTE" />
+      <use token="SHORT" />
+      <use token="UNSIGNED_SHORT" />
+      <use token="INT" />
+      <use token="UNSIGNED_INT" />
+      <use token="FIXED" />
+      <use token="FLOAT" />
+      <use token="HALF_FLOAT" />
+      <use token="UNSIGNED_INT_2_10_10_10_REV" />
+      <use token="INT_2_10_10_10_REV" />
+    </enum>
+    <enum name="VertexAttribIntegerType">
+      <use token="BYTE" />
+      <use token="UNSIGNED_BYTE" />
+      <use token="SHORT" />
+      <use token="UNSIGNED_SHORT" />
+      <use token="INT" />
+      <use token="UNSIGNED_INT" />
+    </enum>
+  </add>
+
+</signatures>