opengl3 0.0.1.pre1 → 0.0.1.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/.yardopts +6 -0
  2. data/Gemfile +4 -0
  3. data/README.md +1 -1
  4. data/Rakefile +5 -0
  5. data/examples/ogl-2_1-basic.rb +15 -7
  6. data/examples/ogl-3_2-attribute_less.rb +119 -0
  7. data/examples/ogl-3_2-basic.rb +17 -9
  8. data/examples/ogl-3_2-cube.rb +1 -0
  9. data/examples/ogl-3_2-texture.rb +163 -0
  10. data/examples/ogl-4_0-quad_tessellation.rb +1 -0
  11. data/examples/ogl-4_0-triangle_tessellation.rb +1 -0
  12. data/lib/glut.rb +13 -11
  13. data/lib/opengl/constants.rb +4 -1
  14. data/lib/opengl/gl.rb +6 -0
  15. data/lib/opengl/platform/base.rb +8 -6
  16. data/lib/opengl/platform/darwin.rb +1 -0
  17. data/lib/opengl/platform/linux.rb +1 -0
  18. data/lib/opengl/platform.rb +3 -0
  19. data/lib/opengl/raw.rb +7 -0
  20. data/lib/opengl/type.rb +22 -5
  21. data/lib/opengl/version.rb +1 -1
  22. data/lib/opengl/wrapper/base.rb +69 -0
  23. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_0.rb +22 -119
  24. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_1.rb +4 -17
  25. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_2.rb +1 -8
  26. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_3.rb +1 -11
  27. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_4.rb +6 -7
  28. data/lib/opengl/wrapper/core/2_x/GL_VERSION_1_5.rb +35 -22
  29. data/lib/opengl/wrapper/core/2_x/GL_VERSION_2_0.rb +41 -120
  30. data/lib/opengl/wrapper/core/2_x/GL_VERSION_2_1.rb +1 -8
  31. data/lib/opengl/wrapper/core/3_0/GL_ARB_framebuffer_object.rb +7 -25
  32. data/lib/opengl/wrapper/core/3_0/GL_ARB_map_buffer_range.rb +15 -3
  33. data/lib/opengl/wrapper/core/3_0/GL_ARB_vertex_array_object.rb +3 -6
  34. data/lib/opengl/wrapper/core/3_0/GL_VERSION_3_0.rb +45 -59
  35. data/lib/opengl/wrapper/core/3_1/GL_ARB_copy_buffer.rb +6 -0
  36. data/lib/opengl/wrapper/core/3_1/GL_ARB_uniform_buffer_object.rb +13 -0
  37. data/lib/opengl/wrapper/core/3_1/GL_VERSION_3_1.rb +14 -0
  38. data/lib/opengl/wrapper/core/3_2/GL_ARB_draw_elements_base_vertex.rb +9 -0
  39. data/lib/opengl/wrapper/core/3_2/GL_ARB_provoking_vertex.rb +6 -0
  40. data/lib/opengl/wrapper/core/3_2/GL_ARB_sync.rb +12 -0
  41. data/lib/opengl/wrapper/core/3_2/GL_ARB_texture_multisample.rb +10 -0
  42. data/lib/opengl/wrapper/core/3_2/GL_VERSION_3_2.rb +19 -0
  43. data/lib/opengl/wrapper/core/3_3/GL_ARB_blend_func_extended.rb +6 -0
  44. data/lib/opengl/wrapper/core/3_3/GL_ARB_sampler_objects.rb +37 -0
  45. data/lib/opengl/wrapper/core/3_3/GL_ARB_timer_query.rb +13 -0
  46. data/lib/opengl/wrapper/core/3_3/GL_ARB_vertex_type_2_10_10_10_rev.rb +6 -0
  47. data/lib/opengl/wrapper/core/3_3/GL_VERSION_3_3.rb +12 -0
  48. data/lib/opengl/wrapper/core/4_0/GL_ARB_draw_indirect.rb +10 -0
  49. data/lib/opengl/wrapper/core/4_0/GL_ARB_gpu_shader_fp64.rb +10 -0
  50. data/lib/opengl/wrapper/core/4_0/GL_ARB_shader_subroutine.rb +14 -0
  51. data/lib/opengl/wrapper/core/4_0/GL_ARB_tessellation_shader.rb +10 -0
  52. data/lib/opengl/wrapper/core/4_0/GL_ARB_transform_feedback2.rb +13 -0
  53. data/lib/opengl/wrapper/core/4_0/GL_ARB_transform_feedback3.rb +25 -0
  54. data/lib/opengl/wrapper/core/4_0/GL_VERSION_4_0.rb +14 -0
  55. data/lib/opengl/wrapper/core/4_1/GL_ARB_ES2_compatibility.rb +10 -0
  56. data/lib/opengl/wrapper/core/4_1/GL_ARB_get_program_binary.rb +10 -0
  57. data/lib/opengl/wrapper/core/4_1/GL_ARB_separate_shader_objects.rb +24 -0
  58. data/lib/opengl/wrapper/core/4_1/GL_ARB_vertex_attrib_64bit.rb +10 -0
  59. data/lib/opengl/wrapper/core/4_1/GL_ARB_viewport_array.rb +18 -0
  60. data/lib/opengl/wrapper/core/4_1/GL_VERSION_4_1.rb +13 -0
  61. data/lib/opengl/wrapper/core/4_2/GL_ARB_base_instance.rb +6 -0
  62. data/lib/opengl/wrapper/core/4_2/GL_ARB_internalformat_query.rb +10 -0
  63. data/lib/opengl/wrapper/core/4_2/GL_ARB_shader_atomic_counters.rb +10 -0
  64. data/lib/opengl/wrapper/core/4_2/GL_ARB_shader_image_load_store.rb +6 -0
  65. data/lib/opengl/wrapper/core/4_2/GL_ARB_texture_storage.rb +6 -0
  66. data/lib/opengl/wrapper/core/4_2/GL_ARB_transform_feedback_instanced.rb +6 -0
  67. data/lib/opengl/wrapper/core/4_2/GL_VERSION_4_2.rb +14 -0
  68. data/lib/opengl/wrapper.rb +3 -3
  69. data/lib/opengl.rb +1 -0
  70. data/opengl.gemspec +1 -2
  71. data/yard/database.rb +51 -0
  72. data/yard/dsl_handler.rb +76 -0
  73. data/yard/wrapper_handler.rb +24 -0
  74. metadata +44 -21
  75. data/lib/opengl/wrapper/macros/base.rb +0 -80
@@ -1,43 +1,25 @@
1
1
  module OpenGL
2
+ # Wrapper for GL_ARB_framebuffer_object extension
2
3
  module Wrapper::GL_ARB_framebuffer_object
3
4
  extend Wrapper::Base
4
5
 
5
- # glIsRenderbuffer
6
- # glBindRenderbuffer
7
-
8
6
  # glDeleteRenderbuffers
9
- def_glDeleteObjects 'Renderbuffers'
7
+ def_glDelete 'Renderbuffers'
10
8
 
11
9
  # glGenRenderbuffers
12
- def_glGenObjects 'Renderbuffers'
13
-
14
- # glRenderbufferStorage
10
+ def_glGen 'Renderbuffers'
15
11
 
16
12
  # glGetRenderbufferParameteriv
17
- def_glGetValues 'RenderbufferParameteri', :GLint, %w(target pname)
18
-
19
- # glIsFramebuffer
20
- # glBindFramebuffer
13
+ def_glGet 'RenderbufferParameteri', :GLint
21
14
 
22
15
  # glDeleteFramebuffers
23
- def_glDeleteObjects 'Framebuffers'
16
+ def_glDelete 'Framebuffers'
24
17
 
25
18
  # glGenFramebuffers
26
- def_glGenObjects 'Framebuffers'
27
-
28
- # glCheckFramebufferStatus
29
- # glFramebufferTexture1D
30
- # glFramebufferTexture2D
31
- # glFramebufferTexture3D
32
- # glFramebufferRenderbuffer
19
+ def_glGen 'Framebuffers'
33
20
 
34
21
  # glGetFramebufferAttachmentParameteriv
35
- def_glGetValues 'FramebufferAttachmentParameteri', :GLint, %w(target pname)
36
-
37
- # glGenerateMipmap
38
- # glBlitFramebuffer
39
- # glRenderbufferStorageMultisample
40
- # glFramebufferTextureLayer
22
+ def_glGet 'FramebufferAttachmentParameteri', :GLint
41
23
 
42
24
  end
43
25
  end
@@ -1,11 +1,23 @@
1
1
  module OpenGL
2
+ # Wrapper for GL_ARB_map_buffer_range extension
2
3
  module Wrapper::GL_ARB_map_buffer_range
3
4
  extend Wrapper::Base
4
5
 
5
6
  # glMapBufferRange
6
- def_glMapBuffer('Range')
7
-
8
- # glFlushMappedBufferRange
7
+ #
8
+ # @param [GLenum] target
9
+ # @param [GLintptr] offset
10
+ # @param [GLsizeiptr] length
11
+ # @param [GLbitfield] access
12
+ #
13
+ # @overload glMapBufferRange(target, offset, length, access)
14
+ # @return [FFI::Pointer]
15
+ # @overload glMapBufferRange(target, offset, length, access)
16
+ # @yield [ptr]
17
+ # @yieldparam [FFI::Pointer] ptr
18
+ # @return [GLboolean]
19
+ #
20
+ def_glMapBuffer 'Range'
9
21
 
10
22
  end
11
23
  end
@@ -1,16 +1,13 @@
1
1
  module OpenGL
2
+ # Wrapper for GL_ARB_vertex_array_object extension
2
3
  module Wrapper::GL_ARB_vertex_array_object
3
4
  extend Wrapper::Base
4
5
 
5
- # glBindVertexArray
6
-
7
6
  # glDeleteVertexArrays
8
- def_glDeleteObjects 'VertexArrays'
7
+ def_glDelete 'VertexArrays'
9
8
 
10
9
  # glGenVertexArrays
11
- def_glGenObjects 'VertexArrays'
12
-
13
- # glIsVertexArray
10
+ def_glGen 'VertexArrays'
14
11
 
15
12
  end
16
13
  end
@@ -1,87 +1,73 @@
1
1
  module OpenGL
2
+ # Wrapper for OpenGL 3.0
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_framebuffer_object
5
+ # @see OpenGL::Wrapper::GL_ARB_map_buffer_range
6
+ # @see OpenGL::Wrapper::GL_ARB_vertex_array_object
7
+ #
2
8
  module Wrapper::GL_VERSION_3_0
3
9
  extend Wrapper::Base
4
10
 
5
- # glColorMaski
6
-
7
11
  # glGetBooleani_v
8
- def_glGetValues('Booleani_', :GLboolean, %w(target index))
12
+ def_glGet 'Booleani_', :GLboolean
9
13
 
10
14
  # glGetIntegeri_v
11
- def_glGetValues('Integeri_', :GLint, %w(target index))
15
+ def_glGet 'Integeri_', :GLint
12
16
 
13
- # glEnablei
14
- # glDisablei
15
- # glIsEnabledi
16
17
  # glBeginTransformFeedback
17
- # glEndTransformFeedback
18
- # glBindBufferRange
19
- # glBindBufferBase
20
- # glTransformFeedbackVaryings
21
- # glGetTransformFeedbackVarying
22
- # glClampColor
18
+ #
19
+ # @param [GLenum] primitiveMode
20
+ # @yield optional []
21
+ #
22
+ def glBeginTransformFeedback(primitiveMode)
23
+ super
24
+ if block_given?
25
+ yield
26
+ glEndTransformFeedback()
27
+ end
28
+ end
29
+
23
30
  # glBeginConditionalRender
24
- # glEndConditionalRender
25
- # glVertexAttribIPointer
31
+ #
32
+ # @param [GLuint] id
33
+ # @param [GLenum] mode
34
+ # @yield optional []
35
+ #
36
+ def glBeginConditionalRender(id, mode)
37
+ super
38
+ if block_given?
39
+ yield
40
+ glEndConditionalRender()
41
+ end
42
+ end
43
+
44
+ # TODO: glTransformFeedbackVaryings
45
+ # TODO: glGetTransformFeedbackVarying
26
46
 
27
47
  # glGetVertexAttribIiv
28
- def_glGetValues('VertexAttribIi', :GLint, %w(index pname))
48
+ def_glGet 'VertexAttribIi', :GLint
29
49
 
30
50
  # glGetVertexAttribIuiv
31
- def_glGetValues('VertexAttribIui', :GLuint, %w(index pname))
32
-
33
- # glVertexAttribI1i
34
- # glVertexAttribI2i
35
- # glVertexAttribI3i
36
- # glVertexAttribI4i
37
- # glVertexAttribI1ui
38
- # glVertexAttribI2ui
39
- # glVertexAttribI3ui
40
- # glVertexAttribI4ui
41
- # glVertexAttribI1iv
42
- # glVertexAttribI2iv
43
- # glVertexAttribI3iv
44
- # glVertexAttribI4iv
45
- # glVertexAttribI1uiv
46
- # glVertexAttribI2uiv
47
- # glVertexAttribI3uiv
48
- # glVertexAttribI4uiv
49
- # glVertexAttribI4bv
50
- # glVertexAttribI4sv
51
- # glVertexAttribI4ubv
52
- # glVertexAttribI4usv
51
+ def_glGet 'VertexAttribIui', :GLuint
53
52
 
54
53
  # glGetUniformuiv
55
- def_glGetValues('Uniformui', :GLuint, %w(program location))
56
-
57
- # glBindFragDataLocation
58
- # glGetFragDataLocation
59
- # glUniform1ui
60
- # glUniform2ui
61
- # glUniform3ui
62
- # glUniform4ui
63
- # glUniform1uiv
64
- # glUniform2uiv
65
- # glUniform3uiv
66
- # glUniform4uiv
54
+ def_glGet 'Uniformui', :GLuint
67
55
 
68
56
  # glTexParameterIiv
69
- def_glSetValues('TexParameterIi', :GLint, %w(target pname))
57
+ def_glSet 'TexParameterIi', :GLint
70
58
 
71
59
  # glTexParameterIuiv
72
- def_glSetValues('TexParameterIui', :GLuint, %w(target pname))
60
+ def_glSet 'TexParameterIui', :GLuint
73
61
 
74
62
  # glGetTexParameterIiv
75
- def_glGetValues('TexParameterIi', :GLint, %w(target pname))
63
+ def_glGet 'TexParameterIi', :GLint
76
64
 
77
65
  # glGetTexParameterIuiv
78
- def_glGetValues('TexParameterIui', :GLuint, %w(target pname))
66
+ def_glGet 'TexParameterIui', :GLuint
79
67
 
80
- # glClearBufferiv
81
- # glClearBufferuiv
82
- # glClearBufferfv
83
- # glClearBufferfi
84
- # glGetStringi
68
+ # TODO: glClearBufferiv
69
+ # TODO: glClearBufferuiv
70
+ # TODO: glClearBufferfv
85
71
 
86
72
  end
87
73
  end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_copy_buffer extension
3
+ module Wrapper::GL_ARB_copy_buffer
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_uniform_buffer_object extension
3
+ module Wrapper::GL_ARB_uniform_buffer_object
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glGetUniformIndices
7
+ # TODO: glGetActiveUniformsiv
8
+ # TODO: glGetActiveUniformName
9
+ # TODO: glGetActiveUniformBlockiv
10
+ # TODO: glGetActiveUniformBlockName
11
+
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ module OpenGL
2
+ # Wrapper for OpenGL 3.1
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_copy_buffer
5
+ # @see OpenGL::Wrapper::GL_ARB_uniform_buffer_object
6
+ #
7
+ module Wrapper::GL_VERSION_3_1
8
+ extend Wrapper::Base
9
+
10
+ # TODO: glDrawArraysInstanced
11
+ # TODO: glDrawElementsInstanced
12
+
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_draw_elements_base_vertex extension
3
+ module Wrapper::GL_ARB_draw_elements_base_vertex
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glMultiDrawElementsBaseVertex
7
+
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_provoking_vertex extension
3
+ module Wrapper::GL_ARB_provoking_vertex
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_sync extension
3
+ module Wrapper::GL_ARB_sync
4
+ extend Wrapper::Base
5
+
6
+ # glGetInteger64v
7
+ def_glGet 'Integer64', :GLint64
8
+
9
+ # TODO: glGetSynciv
10
+
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_texture_multisample extension
3
+ module Wrapper::GL_ARB_texture_multisample
4
+ extend Wrapper::Base
5
+
6
+ # glGetMultisamplefv
7
+ def_glGet 'Multisamplef', :GLfloat
8
+
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module OpenGL
2
+ # Wrapper for OpenGL 3.2
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_draw_elements_base_vertex
5
+ # @see OpenGL::Wrapper::GL_ARB_provoking_vertex
6
+ # @see OpenGL::Wrapper::GL_ARB_sync
7
+ # @see OpenGL::Wrapper::GL_ARB_texture_multisample
8
+ #
9
+ module Wrapper::GL_VERSION_3_2
10
+ extend Wrapper::Base
11
+
12
+ # glGetInteger64i_v
13
+ def_glGet 'Integer64i_', :GLint64
14
+
15
+ # glGetBufferParameteri64v
16
+ def_glGet 'BufferParameteri64', :GLint64
17
+
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_blend_func_extended extension
3
+ module Wrapper::GL_ARB_blend_func_extended
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,37 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_sampler_objects extension
3
+ module Wrapper::GL_ARB_sampler_objects
4
+ extend Wrapper::Base
5
+
6
+ # glGenSamplers
7
+ def_glGen 'Samplers'
8
+
9
+ # glDeleteSamplers
10
+ def_glDelete 'Samplers'
11
+
12
+ # glSamplerParameteriv
13
+ def_glSet 'SamplerParameteri', :GLint
14
+
15
+ # glSamplerParameterfv
16
+ def_glSet 'SamplerParameterf', :GLfloat
17
+
18
+ # glSamplerParameterIiv
19
+ def_glSet 'SamplerParameterIi', :GLint
20
+
21
+ # glSamplerParameterIuiv
22
+ def_glSet 'SamplerParameterIui', :GLuint
23
+
24
+ # glGetSamplerParameteriv
25
+ def_glGet 'SamplerParameteri', :GLint
26
+
27
+ # glGetSamplerParameterIiv
28
+ def_glGet 'SamplerParameterIi', :GLint
29
+
30
+ # glGetSamplerParameterfv
31
+ def_glGet 'SamplerParameterf', :GLfloat
32
+
33
+ # glGetSamplerParameterIuiv
34
+ def_glGet 'SamplerParameterIui', :GLuint
35
+
36
+ end
37
+ end
@@ -0,0 +1,13 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_timer_query extension
3
+ module Wrapper::GL_ARB_timer_query
4
+ extend Wrapper::Base
5
+
6
+ # glGetQueryObjecti64v
7
+ def_glGet 'QueryObjecti64', :GLint64
8
+
9
+ # glGetQueryObjectui64v
10
+ def_glGet 'QueryObjectui64', :GLint64
11
+
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_vertex_type_2_10_10_10_rev extension
3
+ module Wrapper::GL_ARB_vertex_type_2_10_10_10_rev
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ module OpenGL
2
+ # Wrapper for OpenGL 3.3
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_blend_func_extended
5
+ # @see OpenGL::Wrapper::GL_ARB_sampler_objects
6
+ # @see OpenGL::Wrapper::GL_ARB_timer_query
7
+ # @see OpenGL::Wrapper::GL_ARB_vertex_type_2_10_10_10_rev
8
+ #
9
+ module Wrapper::GL_VERSION_3_3
10
+ extend Wrapper::Base
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_draw_indirect extension
3
+ module Wrapper::GL_ARB_draw_indirect
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glDrawArraysIndirect
7
+ # TODO: glDrawElementsIndirect
8
+
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_gpu_shader_fp64 extension
3
+ module Wrapper::GL_ARB_gpu_shader_fp64
4
+ extend Wrapper::Base
5
+
6
+ # glGetUniformdv
7
+ def_glGet 'Uniformd', :GLdouble
8
+
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_shader_subroutine extension
3
+ module Wrapper::GL_ARB_shader_subroutine
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glGetActiveSubroutineUniformiv
7
+ # TODO: glGetActiveSubroutineUniformName
8
+ # TODO: glGetActiveSubroutineName
9
+ # TODO: glUniformSubroutinesuiv
10
+ # TODO: glGetUniformSubroutineuiv
11
+ # TODO: glGetProgramStageiv
12
+
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_tessellation_shader extension
3
+ module Wrapper::GL_ARB_tessellation_shader
4
+ extend Wrapper::Base
5
+
6
+ # glPatchParameterfv
7
+ def_glSet 'PatchParameterf', :GLfloat
8
+
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_transform_feedback2
3
+ module Wrapper::GL_ARB_transform_feedback2
4
+ extend Wrapper::Base
5
+
6
+ # glDeleteTransformFeedbacks
7
+ def_glDelete 'TransformFeedbacks'
8
+
9
+ # glGenTransformFeedbacks
10
+ def_glGen 'TransformFeedbacks'
11
+
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_transform_feedback3 extension
3
+ module Wrapper::GL_ARB_transform_feedback3
4
+ extend Wrapper::Base
5
+
6
+ # glGetQueryIndexediv
7
+ def_glGet 'QueryIndexedi', :GLint
8
+
9
+ # glBeginQueryIndexed
10
+ #
11
+ # @param [GLenum] target
12
+ # @param [GLuint] index
13
+ # @param [GLuint] id
14
+ # @yield optional []
15
+ #
16
+ def glBeginQueryIndexed(target, index, id)
17
+ super
18
+ if block_given?
19
+ yield
20
+ glEndQueryIndexed(target index)
21
+ end
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ module OpenGL
2
+ # Wrapper for OpenGL 4.0
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_draw_indirect
5
+ # @see OpenGL::Wrapper::GL_ARB_gpu_shader_fp64
6
+ # @see OpenGL::Wrapper::GL_ARB_shader_subroutine
7
+ # @see OpenGL::Wrapper::GL_ARB_tessellation_shader
8
+ # @see OpenGL::Wrapper::GL_ARB_transform_feedback2
9
+ # @see OpenGL::Wrapper::GL_ARB_transform_feedback3
10
+ #
11
+ module Wrapper::GL_VERSION_4_0
12
+ extend Wrapper::Base
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_ES2_compatibility extension
3
+ module Wrapper::GL_ARB_ES2_compatibility
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glShaderBinary
7
+ # TODO: glGetShaderPrecisionFormat
8
+
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_get_program_binary extension
3
+ module Wrapper::GL_ARB_get_program_binary
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glGetProgramBinary
7
+ # TODO: glProgramBinary
8
+
9
+ end
10
+ end
@@ -0,0 +1,24 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_separate_shader_objects extension
3
+ module Wrapper::GL_ARB_separate_shader_objects
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glCreateShaderProgramv
7
+
8
+ # glDeleteProgramPipelines
9
+ def_glDelete 'ProgramPipelines'
10
+
11
+ # glGenProgramPipelines
12
+ def_glGen 'ProgramPipelines'
13
+
14
+ # glGetProgramPipelineiv
15
+ def_glGet 'ProgramPipelinei', :GLint
16
+
17
+ # @method glGetProgramPipelineInfoLog(id)
18
+ # @param [GLuint] id
19
+ # @return [String]
20
+ #
21
+ def_glGetInfoLog_of 'ProgramPipeline'
22
+
23
+ end
24
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_vertex_attrib_64bit extension
3
+ module Wrapper::GL_ARB_vertex_attrib_64bit
4
+ extend Wrapper::Base
5
+
6
+ # glGetVertexAttribLdv
7
+ def_glGet 'VertexAttribLd', :GLdouble
8
+
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_viewport_array extension
3
+ module Wrapper::GL_ARB_viewport_array
4
+ extend Wrapper::Base
5
+
6
+ # TODO: glViewportArrayv
7
+ # TODO: glViewportIndexedfv
8
+ # TODO: glScissorArrayv
9
+ # TODO: glScissorIndexedv
10
+
11
+ # glGetFloati_v
12
+ def_glGet 'Floati_', :GLfloat
13
+
14
+ # glGetDoublei_v
15
+ def_glGet 'Doublei_', :GLdouble
16
+
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ module OpenGL
2
+ # Wrapper for OpenGL 4.1
3
+ #
4
+ # @see OpenGL::Wrapper::GL_ARB_ES2_compatibility
5
+ # @see OpenGL::Wrapper::GL_ARB_get_program_binary
6
+ # @see OpenGL::Wrapper::GL_ARB_separate_shader_objects
7
+ # @see OpenGL::Wrapper::GL_ARB_vertex_attrib_64bit
8
+ # @see OpenGL::Wrapper::GL_ARB_viewport_array
9
+ #
10
+ module Wrapper::GL_VERSION_4_1
11
+ extend Wrapper::Base
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_base_instance extension
3
+ module Wrapper::GL_ARB_base_instance
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_internalformat_query extension
3
+ module Wrapper::GL_ARB_internalformat_query
4
+ extend Wrapper::Base
5
+
6
+ # glGetInternalformativ
7
+ def_glGet 'Internalformati', :GLint
8
+
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_shader_atomic_counters extension
3
+ module Wrapper::GL_ARB_shader_atomic_counters
4
+ extend Wrapper::Base
5
+
6
+ # glGetActiveAtomicCounterBufferiv
7
+ def_glGet 'ActiveAtomicCounterBufferi', :GLint
8
+
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_shader_image_load_store extension
3
+ module Wrapper::GL_ARB_shader_image_load_store
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_texture_storage extension
3
+ module Wrapper::GL_ARB_texture_storage
4
+ extend Wrapper::Base
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module OpenGL
2
+ # Wrapper for GL_ARB_transform_feedback_instanced extension
3
+ module Wrapper::GL_ARB_transform_feedback_instanced
4
+ extend Wrapper::Base
5
+ end
6
+ end