opengl-bindings 1.6.1 → 1.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +17 -0
- data/README.md +6 -4
- data/lib/glfw.rb +1 -1
- data/lib/glu.rb +24 -0
- data/lib/glut.rb +24 -0
- data/lib/opengl.rb +24 -0
- data/lib/opengl_es.rb +24 -0
- data/lib/opengl_es_ext.rb +24 -0
- data/lib/opengl_es_ext_command.rb +28 -0
- data/lib/opengl_es_ext_enum.rb +11 -0
- data/lib/opengl_ext.rb +24 -0
- data/lib/opengl_ext_command.rb +48 -0
- data/lib/opengl_ext_enum.rb +19 -0
- data/lib/opengl_linux.rb +63 -39
- data/lib/opengl_macosx.rb +68 -44
- data/lib/opengl_platform.rb +43 -19
- data/lib/opengl_windows.rb +71 -47
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c9c40d3b61e02e7d4e2a7dff5f18639a58a12bb
|
4
|
+
data.tar.gz: 5be4f0418bb141f9956020147989b999357de506
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce371a24e41311b3e1f356c61cea5eda162f1771a88f7193523122de55d8c6fdb3a1663cc7605e159f43de927c7dbc6fa2d40c4d188a020110f577b2c0f5dabf
|
7
|
+
data.tar.gz: dc7dadc272b9314d26a046c0b38f9d38d465334900224fb0883fb18b15665cd9a13d0b8b747feeaa5a28f0cb9670c8c2edfa00ef64f0530678f2d1dd6958bf21
|
data/ChangeLog
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
2017-01-28 vaiorabbit <http://twitter.com/vaiorabbit>
|
2
|
+
|
3
|
+
* Updated using latest gl.xml.
|
4
|
+
|
5
|
+
2016-12-25 vaiorabbit <http://twitter.com/vaiorabbit>
|
6
|
+
|
7
|
+
* Tested on ruby 2.4.0p0.
|
8
|
+
* sample/util/setup_dll.rb: Add path for Ubuntu Linux.
|
9
|
+
|
10
|
+
2016-10-29 vaiorabbit <http://twitter.com/vaiorabbit>
|
11
|
+
|
12
|
+
* Updated using latest gl.xml.
|
13
|
+
|
14
|
+
2016-10-15 vaiorabbit <http://twitter.com/vaiorabbit>
|
15
|
+
|
16
|
+
* Updated using latest gl.xml.
|
17
|
+
|
1
18
|
2016-09-20 vaiorabbit <http://twitter.com/vaiorabbit>
|
2
19
|
|
3
20
|
* Updated using latest gl.xml.
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
...and wrapper code generator.
|
6
6
|
|
7
7
|
* Created : 2013-08-28
|
8
|
-
* Last modified :
|
8
|
+
* Last modified : 2017-01-28
|
9
9
|
|
10
10
|
|
11
11
|
## Features ##
|
@@ -13,7 +13,7 @@
|
|
13
13
|
* Uses Fiddle (One of the Ruby standard libraries that wraps libffi)
|
14
14
|
* Unlike opengl ( https://rubygems.org/gems/opengl ), you don't need to build C extension library
|
15
15
|
|
16
|
-
* Uses Khronos XML API registry
|
16
|
+
* Uses Khronos XML API registry ( https://github.com/KhronosGroup/OpenGL-Registry )
|
17
17
|
* The command/enum wrapper codes are generated via 'gl.xml'
|
18
18
|
* Supports OpenGL - 4.5, OpenGL ES - 3.1 and all OpenGL extensions.
|
19
19
|
|
@@ -104,6 +104,7 @@ Use GLFW or GLUT for creating windows and OpenGL rendering contexts.
|
|
104
104
|
## Tested Environment ##
|
105
105
|
|
106
106
|
* Ruby
|
107
|
+
* ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
|
107
108
|
* ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
|
108
109
|
* ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]
|
109
110
|
* ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
|
@@ -217,7 +218,7 @@ Use GLFW or GLUT for creating windows and OpenGL rendering contexts.
|
|
217
218
|
|
218
219
|
The zlib/libpng License ( http://opensource.org/licenses/Zlib ).
|
219
220
|
|
220
|
-
Copyright (c) 2013-
|
221
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
221
222
|
|
222
223
|
This software is provided 'as-is', without any express or implied
|
223
224
|
warranty. In no event will the authors be held liable for any damages
|
@@ -250,7 +251,7 @@ See sample/OrangeBook/3Dlabs-License.txt .
|
|
250
251
|
## 特徴 ##
|
251
252
|
|
252
253
|
* 標準ライブラリ Fiddle を使っています ⇒ opengl ( https://rubygems.org/gems/opengl ) のように拡張ライブラリをビルドする必要がありません
|
253
|
-
* 関数とenumのラッパーコードは Khronos の XML API registry
|
254
|
+
* 関数とenumのラッパーコードは Khronos の XML API registry ( https://github.com/KhronosGroup/OpenGL-Registry ) の gl.xml から自動生成しています
|
254
255
|
|
255
256
|
|
256
257
|
## インストール ##
|
@@ -340,6 +341,7 @@ GLFW か GLUT を用意してください。ウィンドウやレンダリング
|
|
340
341
|
## テストした環境 ##
|
341
342
|
|
342
343
|
* Ruby
|
344
|
+
* ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
|
343
345
|
* ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
|
344
346
|
* ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]
|
345
347
|
* ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
|
data/lib/glfw.rb
CHANGED
@@ -570,7 +570,7 @@ end
|
|
570
570
|
|
571
571
|
=begin
|
572
572
|
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
573
|
-
Copyright (c) 2013-
|
573
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
574
574
|
|
575
575
|
This software is provided 'as-is', without any express or implied
|
576
576
|
warranty. In no event will the authors be held liable for any damages
|
data/lib/glu.rb
CHANGED
@@ -340,3 +340,27 @@ module GLU
|
|
340
340
|
end
|
341
341
|
|
342
342
|
end
|
343
|
+
|
344
|
+
=begin
|
345
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
346
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
347
|
+
|
348
|
+
This software is provided 'as-is', without any express or implied
|
349
|
+
warranty. In no event will the authors be held liable for any damages
|
350
|
+
arising from the use of this software.
|
351
|
+
|
352
|
+
Permission is granted to anyone to use this software for any purpose,
|
353
|
+
including commercial applications, and to alter it and redistribute it
|
354
|
+
freely, subject to the following restrictions:
|
355
|
+
|
356
|
+
1. The origin of this software must not be misrepresented; you must not
|
357
|
+
claim that you wrote the original software. If you use this software
|
358
|
+
in a product, an acknowledgment in the product documentation would be
|
359
|
+
appreciated but is not required.
|
360
|
+
|
361
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
362
|
+
misrepresented as being the original software.
|
363
|
+
|
364
|
+
3. This notice may not be removed or altered from any source
|
365
|
+
distribution.
|
366
|
+
=end
|
data/lib/glut.rb
CHANGED
@@ -550,3 +550,27 @@ module GLUT
|
|
550
550
|
end
|
551
551
|
|
552
552
|
end
|
553
|
+
|
554
|
+
=begin
|
555
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
556
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
557
|
+
|
558
|
+
This software is provided 'as-is', without any express or implied
|
559
|
+
warranty. In no event will the authors be held liable for any damages
|
560
|
+
arising from the use of this software.
|
561
|
+
|
562
|
+
Permission is granted to anyone to use this software for any purpose,
|
563
|
+
including commercial applications, and to alter it and redistribute it
|
564
|
+
freely, subject to the following restrictions:
|
565
|
+
|
566
|
+
1. The origin of this software must not be misrepresented; you must not
|
567
|
+
claim that you wrote the original software. If you use this software
|
568
|
+
in a product, an acknowledgment in the product documentation would be
|
569
|
+
appreciated but is not required.
|
570
|
+
|
571
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
572
|
+
misrepresented as being the original software.
|
573
|
+
|
574
|
+
3. This notice may not be removed or altered from any source
|
575
|
+
distribution.
|
576
|
+
=end
|
data/lib/opengl.rb
CHANGED
@@ -17,3 +17,27 @@ rescue LoadError
|
|
17
17
|
require_relative 'opengl_linux'
|
18
18
|
end
|
19
19
|
end
|
20
|
+
|
21
|
+
=begin
|
22
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
23
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
24
|
+
|
25
|
+
This software is provided 'as-is', without any express or implied
|
26
|
+
warranty. In no event will the authors be held liable for any damages
|
27
|
+
arising from the use of this software.
|
28
|
+
|
29
|
+
Permission is granted to anyone to use this software for any purpose,
|
30
|
+
including commercial applications, and to alter it and redistribute it
|
31
|
+
freely, subject to the following restrictions:
|
32
|
+
|
33
|
+
1. The origin of this software must not be misrepresented; you must not
|
34
|
+
claim that you wrote the original software. If you use this software
|
35
|
+
in a product, an acknowledgment in the product documentation would be
|
36
|
+
appreciated but is not required.
|
37
|
+
|
38
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
39
|
+
misrepresented as being the original software.
|
40
|
+
|
41
|
+
3. This notice may not be removed or altered from any source
|
42
|
+
distribution.
|
43
|
+
=end
|
data/lib/opengl_es.rb
CHANGED
@@ -5,3 +5,27 @@ require_relative 'opengl_es_command'
|
|
5
5
|
if OpenGL.get_platform == :OPENGL_PLATFORM_WINDOWS
|
6
6
|
require_relative 'opengl_windows'
|
7
7
|
end
|
8
|
+
|
9
|
+
=begin
|
10
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
11
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
12
|
+
|
13
|
+
This software is provided 'as-is', without any express or implied
|
14
|
+
warranty. In no event will the authors be held liable for any damages
|
15
|
+
arising from the use of this software.
|
16
|
+
|
17
|
+
Permission is granted to anyone to use this software for any purpose,
|
18
|
+
including commercial applications, and to alter it and redistribute it
|
19
|
+
freely, subject to the following restrictions:
|
20
|
+
|
21
|
+
1. The origin of this software must not be misrepresented; you must not
|
22
|
+
claim that you wrote the original software. If you use this software
|
23
|
+
in a product, an acknowledgment in the product documentation would be
|
24
|
+
appreciated but is not required.
|
25
|
+
|
26
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
27
|
+
misrepresented as being the original software.
|
28
|
+
|
29
|
+
3. This notice may not be removed or altered from any source
|
30
|
+
distribution.
|
31
|
+
=end
|
data/lib/opengl_es_ext.rb
CHANGED
@@ -2,3 +2,27 @@ require_relative 'opengl_common'
|
|
2
2
|
require_relative 'opengl_ext_common'
|
3
3
|
require_relative 'opengl_es_ext_enum'
|
4
4
|
require_relative 'opengl_es_ext_command'
|
5
|
+
|
6
|
+
=begin
|
7
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
8
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
9
|
+
|
10
|
+
This software is provided 'as-is', without any express or implied
|
11
|
+
warranty. In no event will the authors be held liable for any damages
|
12
|
+
arising from the use of this software.
|
13
|
+
|
14
|
+
Permission is granted to anyone to use this software for any purpose,
|
15
|
+
including commercial applications, and to alter it and redistribute it
|
16
|
+
freely, subject to the following restrictions:
|
17
|
+
|
18
|
+
1. The origin of this software must not be misrepresented; you must not
|
19
|
+
claim that you wrote the original software. If you use this software
|
20
|
+
in a product, an acknowledgment in the product documentation would be
|
21
|
+
appreciated but is not required.
|
22
|
+
|
23
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
24
|
+
misrepresented as being the original software.
|
25
|
+
|
26
|
+
3. This notice may not be removed or altered from any source
|
27
|
+
distribution.
|
28
|
+
=end
|
@@ -1155,6 +1155,34 @@ module OpenGLExt
|
|
1155
1155
|
end # self.get_ext_command_GL_EXT_draw_instanced
|
1156
1156
|
|
1157
1157
|
|
1158
|
+
def self.define_ext_command_GL_EXT_draw_transform_feedback
|
1159
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glDrawTransformFeedbackEXT] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT]
|
1160
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glDrawTransformFeedbackEXT] = Fiddle::TYPE_VOID
|
1161
|
+
OpenGL.module_eval(<<-SRC)
|
1162
|
+
def glDrawTransformFeedbackEXT(_mode_, _id_)
|
1163
|
+
f = OpenGL::get_command(:glDrawTransformFeedbackEXT)
|
1164
|
+
f.call(_mode_, _id_)
|
1165
|
+
end
|
1166
|
+
SRC
|
1167
|
+
|
1168
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glDrawTransformFeedbackInstancedEXT] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT, Fiddle::TYPE_INT]
|
1169
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glDrawTransformFeedbackInstancedEXT] = Fiddle::TYPE_VOID
|
1170
|
+
OpenGL.module_eval(<<-SRC)
|
1171
|
+
def glDrawTransformFeedbackInstancedEXT(_mode_, _id_, _instancecount_)
|
1172
|
+
f = OpenGL::get_command(:glDrawTransformFeedbackInstancedEXT)
|
1173
|
+
f.call(_mode_, _id_, _instancecount_)
|
1174
|
+
end
|
1175
|
+
SRC
|
1176
|
+
end # self.define_ext_command_GL_EXT_draw_transform_feedback
|
1177
|
+
|
1178
|
+
def self.get_ext_command_GL_EXT_draw_transform_feedback
|
1179
|
+
[
|
1180
|
+
'glDrawTransformFeedbackEXT',
|
1181
|
+
'glDrawTransformFeedbackInstancedEXT',
|
1182
|
+
]
|
1183
|
+
end # self.get_ext_command_GL_EXT_draw_transform_feedback
|
1184
|
+
|
1185
|
+
|
1158
1186
|
def self.define_ext_command_GL_EXT_float_blend
|
1159
1187
|
end # self.define_ext_command_GL_EXT_float_blend
|
1160
1188
|
|
data/lib/opengl_es_ext_enum.rb
CHANGED
@@ -881,6 +881,15 @@ module OpenGLExt
|
|
881
881
|
end # self.get_ext_enum_GL_EXT_draw_instanced
|
882
882
|
|
883
883
|
|
884
|
+
def self.define_ext_enum_GL_EXT_draw_transform_feedback
|
885
|
+
end # self.define_ext_enum_GL_EXT_draw_transform_feedback
|
886
|
+
|
887
|
+
def self.get_ext_enum_GL_EXT_draw_transform_feedback
|
888
|
+
[
|
889
|
+
]
|
890
|
+
end # self.get_ext_enum_GL_EXT_draw_transform_feedback
|
891
|
+
|
892
|
+
|
884
893
|
def self.define_ext_enum_GL_EXT_float_blend
|
885
894
|
end # self.define_ext_enum_GL_EXT_float_blend
|
886
895
|
|
@@ -4827,6 +4836,7 @@ module OpenGLExt
|
|
4827
4836
|
OpenGL.const_set('GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR', 0x9630) unless defined?(OpenGL::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR)
|
4828
4837
|
OpenGL.const_set('GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR', 0x9632) unless defined?(OpenGL::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR)
|
4829
4838
|
OpenGL.const_set('GL_MAX_VIEWS_OVR', 0x9631) unless defined?(OpenGL::GL_MAX_VIEWS_OVR)
|
4839
|
+
OpenGL.const_set('GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR', 0x9633) unless defined?(OpenGL::GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR)
|
4830
4840
|
end # self.define_ext_enum_GL_OVR_multiview
|
4831
4841
|
|
4832
4842
|
def self.get_ext_enum_GL_OVR_multiview
|
@@ -4834,6 +4844,7 @@ module OpenGLExt
|
|
4834
4844
|
'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR',
|
4835
4845
|
'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR',
|
4836
4846
|
'GL_MAX_VIEWS_OVR',
|
4847
|
+
'GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR',
|
4837
4848
|
]
|
4838
4849
|
end # self.get_ext_enum_GL_OVR_multiview
|
4839
4850
|
|
data/lib/opengl_ext.rb
CHANGED
@@ -8,3 +8,27 @@ rescue LoadError
|
|
8
8
|
require_relative 'opengl_ext_enum'
|
9
9
|
require_relative 'opengl_ext_command'
|
10
10
|
end
|
11
|
+
|
12
|
+
=begin
|
13
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
14
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
15
|
+
|
16
|
+
This software is provided 'as-is', without any express or implied
|
17
|
+
warranty. In no event will the authors be held liable for any damages
|
18
|
+
arising from the use of this software.
|
19
|
+
|
20
|
+
Permission is granted to anyone to use this software for any purpose,
|
21
|
+
including commercial applications, and to alter it and redistribute it
|
22
|
+
freely, subject to the following restrictions:
|
23
|
+
|
24
|
+
1. The origin of this software must not be misrepresented; you must not
|
25
|
+
claim that you wrote the original software. If you use this software
|
26
|
+
in a product, an acknowledgment in the product documentation would be
|
27
|
+
appreciated but is not required.
|
28
|
+
|
29
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
30
|
+
misrepresented as being the original software.
|
31
|
+
|
32
|
+
3. This notice may not be removed or altered from any source
|
33
|
+
distribution.
|
34
|
+
=end
|
data/lib/opengl_ext_command.rb
CHANGED
@@ -167,6 +167,54 @@ module OpenGLExt
|
|
167
167
|
end # self.get_ext_command_GL_AMD_draw_buffers_blend
|
168
168
|
|
169
169
|
|
170
|
+
def self.define_ext_command_GL_AMD_framebuffer_sample_positions
|
171
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glFramebufferSamplePositionsfvAMD] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
172
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glFramebufferSamplePositionsfvAMD] = Fiddle::TYPE_VOID
|
173
|
+
OpenGL.module_eval(<<-SRC)
|
174
|
+
def glFramebufferSamplePositionsfvAMD(_target_, _numsamples_, _pixelindex_, _values_)
|
175
|
+
f = OpenGL::get_command(:glFramebufferSamplePositionsfvAMD)
|
176
|
+
f.call(_target_, _numsamples_, _pixelindex_, _values_)
|
177
|
+
end
|
178
|
+
SRC
|
179
|
+
|
180
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glNamedFramebufferSamplePositionsfvAMD] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
181
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glNamedFramebufferSamplePositionsfvAMD] = Fiddle::TYPE_VOID
|
182
|
+
OpenGL.module_eval(<<-SRC)
|
183
|
+
def glNamedFramebufferSamplePositionsfvAMD(_framebuffer_, _numsamples_, _pixelindex_, _values_)
|
184
|
+
f = OpenGL::get_command(:glNamedFramebufferSamplePositionsfvAMD)
|
185
|
+
f.call(_framebuffer_, _numsamples_, _pixelindex_, _values_)
|
186
|
+
end
|
187
|
+
SRC
|
188
|
+
|
189
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glGetFramebufferParameterfvAMD] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
190
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glGetFramebufferParameterfvAMD] = Fiddle::TYPE_VOID
|
191
|
+
OpenGL.module_eval(<<-SRC)
|
192
|
+
def glGetFramebufferParameterfvAMD(_target_, _pname_, _numsamples_, _pixelindex_, _size_, _values_)
|
193
|
+
f = OpenGL::get_command(:glGetFramebufferParameterfvAMD)
|
194
|
+
f.call(_target_, _pname_, _numsamples_, _pixelindex_, _size_, _values_)
|
195
|
+
end
|
196
|
+
SRC
|
197
|
+
|
198
|
+
OpenGL::GL_FUNCTIONS_ARGS_MAP[:glGetNamedFramebufferParameterfvAMD] = [-Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
199
|
+
OpenGL::GL_FUNCTIONS_RETVAL_MAP[:glGetNamedFramebufferParameterfvAMD] = Fiddle::TYPE_VOID
|
200
|
+
OpenGL.module_eval(<<-SRC)
|
201
|
+
def glGetNamedFramebufferParameterfvAMD(_framebuffer_, _pname_, _numsamples_, _pixelindex_, _size_, _values_)
|
202
|
+
f = OpenGL::get_command(:glGetNamedFramebufferParameterfvAMD)
|
203
|
+
f.call(_framebuffer_, _pname_, _numsamples_, _pixelindex_, _size_, _values_)
|
204
|
+
end
|
205
|
+
SRC
|
206
|
+
end # self.define_ext_command_GL_AMD_framebuffer_sample_positions
|
207
|
+
|
208
|
+
def self.get_ext_command_GL_AMD_framebuffer_sample_positions
|
209
|
+
[
|
210
|
+
'glFramebufferSamplePositionsfvAMD',
|
211
|
+
'glNamedFramebufferSamplePositionsfvAMD',
|
212
|
+
'glGetFramebufferParameterfvAMD',
|
213
|
+
'glGetNamedFramebufferParameterfvAMD',
|
214
|
+
]
|
215
|
+
end # self.get_ext_command_GL_AMD_framebuffer_sample_positions
|
216
|
+
|
217
|
+
|
170
218
|
def self.define_ext_command_GL_AMD_gcn_shader
|
171
219
|
end # self.define_ext_command_GL_AMD_gcn_shader
|
172
220
|
|
data/lib/opengl_ext_enum.rb
CHANGED
@@ -126,6 +126,23 @@ module OpenGLExt
|
|
126
126
|
end # self.get_ext_enum_GL_AMD_draw_buffers_blend
|
127
127
|
|
128
128
|
|
129
|
+
def self.define_ext_enum_GL_AMD_framebuffer_sample_positions
|
130
|
+
OpenGL.const_set('GL_SUBSAMPLE_DISTANCE_AMD', 0x883F) unless defined?(OpenGL::GL_SUBSAMPLE_DISTANCE_AMD)
|
131
|
+
OpenGL.const_set('GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD', 0x91AE) unless defined?(OpenGL::GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD)
|
132
|
+
OpenGL.const_set('GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD', 0x91AF) unless defined?(OpenGL::GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD)
|
133
|
+
OpenGL.const_set('GL_ALL_PIXELS_AMD', 0xFFFFFFFF) unless defined?(OpenGL::GL_ALL_PIXELS_AMD)
|
134
|
+
end # self.define_ext_enum_GL_AMD_framebuffer_sample_positions
|
135
|
+
|
136
|
+
def self.get_ext_enum_GL_AMD_framebuffer_sample_positions
|
137
|
+
[
|
138
|
+
'GL_SUBSAMPLE_DISTANCE_AMD',
|
139
|
+
'GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD',
|
140
|
+
'GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD',
|
141
|
+
'GL_ALL_PIXELS_AMD',
|
142
|
+
]
|
143
|
+
end # self.get_ext_enum_GL_AMD_framebuffer_sample_positions
|
144
|
+
|
145
|
+
|
129
146
|
def self.define_ext_enum_GL_AMD_gcn_shader
|
130
147
|
end # self.define_ext_enum_GL_AMD_gcn_shader
|
131
148
|
|
@@ -11819,6 +11836,7 @@ module OpenGLExt
|
|
11819
11836
|
OpenGL.const_set('GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR', 0x9630) unless defined?(OpenGL::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR)
|
11820
11837
|
OpenGL.const_set('GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR', 0x9632) unless defined?(OpenGL::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR)
|
11821
11838
|
OpenGL.const_set('GL_MAX_VIEWS_OVR', 0x9631) unless defined?(OpenGL::GL_MAX_VIEWS_OVR)
|
11839
|
+
OpenGL.const_set('GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR', 0x9633) unless defined?(OpenGL::GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR)
|
11822
11840
|
end # self.define_ext_enum_GL_OVR_multiview
|
11823
11841
|
|
11824
11842
|
def self.get_ext_enum_GL_OVR_multiview
|
@@ -11826,6 +11844,7 @@ module OpenGLExt
|
|
11826
11844
|
'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR',
|
11827
11845
|
'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR',
|
11828
11846
|
'GL_MAX_VIEWS_OVR',
|
11847
|
+
'GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR',
|
11829
11848
|
]
|
11830
11849
|
end # self.get_ext_enum_GL_OVR_multiview
|
11831
11850
|
|
data/lib/opengl_linux.rb
CHANGED
@@ -1,39 +1,63 @@
|
|
1
|
-
require 'fiddle'
|
2
|
-
|
3
|
-
module OpenGL
|
4
|
-
|
5
|
-
GLX_FUNCTIONS_MAP = {}
|
6
|
-
GLX_FUNCTIONS_ARGS_MAP = {}
|
7
|
-
GLX_FUNCTIONS_RETVAL_MAP = {}
|
8
|
-
|
9
|
-
def self.get_glx_command( sym )
|
10
|
-
if GLX_FUNCTIONS_MAP[sym] == nil
|
11
|
-
bind_glx_command( sym )
|
12
|
-
end
|
13
|
-
return GLX_FUNCTIONS_MAP[sym]
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.bind_glx_command( sym )
|
17
|
-
GLX_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@gl_dll[sym.to_s],
|
18
|
-
GLX_FUNCTIONS_ARGS_MAP[sym],
|
19
|
-
GLX_FUNCTIONS_RETVAL_MAP[sym] )
|
20
|
-
raise RuntimeError if GLX_FUNCTIONS_RETVAL_MAP[sym] == nil
|
21
|
-
end
|
22
|
-
|
23
|
-
GLX_FUNCTIONS_ARGS_MAP[:glXGetCurrentContext] = []
|
24
|
-
GLX_FUNCTIONS_RETVAL_MAP[:glXGetCurrentContext] = Fiddle::TYPE_VOIDP
|
25
|
-
|
26
|
-
def glXGetCurrentContext()
|
27
|
-
f = OpenGL::get_glx_command(:glXGetCurrentContext)
|
28
|
-
f.call()
|
29
|
-
end
|
30
|
-
|
31
|
-
GLX_FUNCTIONS_ARGS_MAP[:glXGetCurrentDisplay] = [Fiddle::TYPE_VOIDP]
|
32
|
-
GLX_FUNCTIONS_RETVAL_MAP[:glXGetCurrentDisplay] = Fiddle::TYPE_VOIDP
|
33
|
-
|
34
|
-
def glXGetCurrentDisplay(_glx_ctxobj_)
|
35
|
-
f = OpenGL::get_glx_command(:glXGetCurrentDisplay)
|
36
|
-
f.call(_glx_ctxobj_)
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
1
|
+
require 'fiddle'
|
2
|
+
|
3
|
+
module OpenGL
|
4
|
+
|
5
|
+
GLX_FUNCTIONS_MAP = {}
|
6
|
+
GLX_FUNCTIONS_ARGS_MAP = {}
|
7
|
+
GLX_FUNCTIONS_RETVAL_MAP = {}
|
8
|
+
|
9
|
+
def self.get_glx_command( sym )
|
10
|
+
if GLX_FUNCTIONS_MAP[sym] == nil
|
11
|
+
bind_glx_command( sym )
|
12
|
+
end
|
13
|
+
return GLX_FUNCTIONS_MAP[sym]
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.bind_glx_command( sym )
|
17
|
+
GLX_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@gl_dll[sym.to_s],
|
18
|
+
GLX_FUNCTIONS_ARGS_MAP[sym],
|
19
|
+
GLX_FUNCTIONS_RETVAL_MAP[sym] )
|
20
|
+
raise RuntimeError if GLX_FUNCTIONS_RETVAL_MAP[sym] == nil
|
21
|
+
end
|
22
|
+
|
23
|
+
GLX_FUNCTIONS_ARGS_MAP[:glXGetCurrentContext] = []
|
24
|
+
GLX_FUNCTIONS_RETVAL_MAP[:glXGetCurrentContext] = Fiddle::TYPE_VOIDP
|
25
|
+
|
26
|
+
def glXGetCurrentContext()
|
27
|
+
f = OpenGL::get_glx_command(:glXGetCurrentContext)
|
28
|
+
f.call()
|
29
|
+
end
|
30
|
+
|
31
|
+
GLX_FUNCTIONS_ARGS_MAP[:glXGetCurrentDisplay] = [Fiddle::TYPE_VOIDP]
|
32
|
+
GLX_FUNCTIONS_RETVAL_MAP[:glXGetCurrentDisplay] = Fiddle::TYPE_VOIDP
|
33
|
+
|
34
|
+
def glXGetCurrentDisplay(_glx_ctxobj_)
|
35
|
+
f = OpenGL::get_glx_command(:glXGetCurrentDisplay)
|
36
|
+
f.call(_glx_ctxobj_)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
=begin
|
42
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
43
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
44
|
+
|
45
|
+
This software is provided 'as-is', without any express or implied
|
46
|
+
warranty. In no event will the authors be held liable for any damages
|
47
|
+
arising from the use of this software.
|
48
|
+
|
49
|
+
Permission is granted to anyone to use this software for any purpose,
|
50
|
+
including commercial applications, and to alter it and redistribute it
|
51
|
+
freely, subject to the following restrictions:
|
52
|
+
|
53
|
+
1. The origin of this software must not be misrepresented; you must not
|
54
|
+
claim that you wrote the original software. If you use this software
|
55
|
+
in a product, an acknowledgment in the product documentation would be
|
56
|
+
appreciated but is not required.
|
57
|
+
|
58
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
59
|
+
misrepresented as being the original software.
|
60
|
+
|
61
|
+
3. This notice may not be removed or altered from any source
|
62
|
+
distribution.
|
63
|
+
=end
|
data/lib/opengl_macosx.rb
CHANGED
@@ -1,44 +1,68 @@
|
|
1
|
-
require 'fiddle'
|
2
|
-
|
3
|
-
module OpenGL
|
4
|
-
|
5
|
-
CGL_FUNCTIONS_MAP = {}
|
6
|
-
CGL_FUNCTIONS_ARGS_MAP = {}
|
7
|
-
CGL_FUNCTIONS_RETVAL_MAP = {}
|
8
|
-
|
9
|
-
@@cgl_dll = nil
|
10
|
-
|
11
|
-
def self.get_cgl_command( sym )
|
12
|
-
if @@cgl_dll == nil
|
13
|
-
@@cgl_dll = Fiddle.dlopen('/System/Library/Frameworks/OpenGL.framework/OpenGL')
|
14
|
-
end
|
15
|
-
if CGL_FUNCTIONS_MAP[sym] == nil
|
16
|
-
bind_cgl_command( sym )
|
17
|
-
end
|
18
|
-
return CGL_FUNCTIONS_MAP[sym]
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.bind_cgl_command( sym )
|
22
|
-
CGL_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@cgl_dll[sym.to_s],
|
23
|
-
CGL_FUNCTIONS_ARGS_MAP[sym],
|
24
|
-
CGL_FUNCTIONS_RETVAL_MAP[sym] )
|
25
|
-
raise RuntimeError if CGL_FUNCTIONS_RETVAL_MAP[sym] == nil
|
26
|
-
end
|
27
|
-
|
28
|
-
CGL_FUNCTIONS_ARGS_MAP[:CGLGetCurrentContext] = []
|
29
|
-
CGL_FUNCTIONS_RETVAL_MAP[:CGLGetCurrentContext] = Fiddle::TYPE_VOIDP
|
30
|
-
|
31
|
-
def CGLGetCurrentContext()
|
32
|
-
f = OpenGL::get_cgl_command(:CGLGetCurrentContext)
|
33
|
-
f.call()
|
34
|
-
end
|
35
|
-
|
36
|
-
CGL_FUNCTIONS_ARGS_MAP[:CGLGetShareGroup] = [Fiddle::TYPE_VOIDP]
|
37
|
-
CGL_FUNCTIONS_RETVAL_MAP[:CGLGetShareGroup] = Fiddle::TYPE_VOIDP
|
38
|
-
|
39
|
-
def CGLGetShareGroup(_cgl_ctxobj_)
|
40
|
-
f = OpenGL::get_cgl_command(:CGLGetShareGroup)
|
41
|
-
f.call(_cgl_ctxobj_)
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
1
|
+
require 'fiddle'
|
2
|
+
|
3
|
+
module OpenGL
|
4
|
+
|
5
|
+
CGL_FUNCTIONS_MAP = {}
|
6
|
+
CGL_FUNCTIONS_ARGS_MAP = {}
|
7
|
+
CGL_FUNCTIONS_RETVAL_MAP = {}
|
8
|
+
|
9
|
+
@@cgl_dll = nil
|
10
|
+
|
11
|
+
def self.get_cgl_command( sym )
|
12
|
+
if @@cgl_dll == nil
|
13
|
+
@@cgl_dll = Fiddle.dlopen('/System/Library/Frameworks/OpenGL.framework/OpenGL')
|
14
|
+
end
|
15
|
+
if CGL_FUNCTIONS_MAP[sym] == nil
|
16
|
+
bind_cgl_command( sym )
|
17
|
+
end
|
18
|
+
return CGL_FUNCTIONS_MAP[sym]
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.bind_cgl_command( sym )
|
22
|
+
CGL_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@cgl_dll[sym.to_s],
|
23
|
+
CGL_FUNCTIONS_ARGS_MAP[sym],
|
24
|
+
CGL_FUNCTIONS_RETVAL_MAP[sym] )
|
25
|
+
raise RuntimeError if CGL_FUNCTIONS_RETVAL_MAP[sym] == nil
|
26
|
+
end
|
27
|
+
|
28
|
+
CGL_FUNCTIONS_ARGS_MAP[:CGLGetCurrentContext] = []
|
29
|
+
CGL_FUNCTIONS_RETVAL_MAP[:CGLGetCurrentContext] = Fiddle::TYPE_VOIDP
|
30
|
+
|
31
|
+
def CGLGetCurrentContext()
|
32
|
+
f = OpenGL::get_cgl_command(:CGLGetCurrentContext)
|
33
|
+
f.call()
|
34
|
+
end
|
35
|
+
|
36
|
+
CGL_FUNCTIONS_ARGS_MAP[:CGLGetShareGroup] = [Fiddle::TYPE_VOIDP]
|
37
|
+
CGL_FUNCTIONS_RETVAL_MAP[:CGLGetShareGroup] = Fiddle::TYPE_VOIDP
|
38
|
+
|
39
|
+
def CGLGetShareGroup(_cgl_ctxobj_)
|
40
|
+
f = OpenGL::get_cgl_command(:CGLGetShareGroup)
|
41
|
+
f.call(_cgl_ctxobj_)
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
=begin
|
47
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
48
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
49
|
+
|
50
|
+
This software is provided 'as-is', without any express or implied
|
51
|
+
warranty. In no event will the authors be held liable for any damages
|
52
|
+
arising from the use of this software.
|
53
|
+
|
54
|
+
Permission is granted to anyone to use this software for any purpose,
|
55
|
+
including commercial applications, and to alter it and redistribute it
|
56
|
+
freely, subject to the following restrictions:
|
57
|
+
|
58
|
+
1. The origin of this software must not be misrepresented; you must not
|
59
|
+
claim that you wrote the original software. If you use this software
|
60
|
+
in a product, an acknowledgment in the product documentation would be
|
61
|
+
appreciated but is not required.
|
62
|
+
|
63
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
64
|
+
misrepresented as being the original software.
|
65
|
+
|
66
|
+
3. This notice may not be removed or altered from any source
|
67
|
+
distribution.
|
68
|
+
=end
|
data/lib/opengl_platform.rb
CHANGED
@@ -1,19 +1,43 @@
|
|
1
|
-
require 'rbconfig'
|
2
|
-
|
3
|
-
module OpenGL
|
4
|
-
@@opengl_platform = case RbConfig::CONFIG['host_os']
|
5
|
-
when /mswin|msys|mingw|cygwin/
|
6
|
-
:OPENGL_PLATFORM_WINDOWS
|
7
|
-
when /darwin/
|
8
|
-
:OPENGL_PLATFORM_MACOSX
|
9
|
-
when /linux/
|
10
|
-
:OPENGL_PLATFORM_LINUX
|
11
|
-
else
|
12
|
-
raise RuntimeError, "OpenGL : Unknown OS: #{host_os.inspect}"
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.get_platform()
|
16
|
-
return @@opengl_platform
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
1
|
+
require 'rbconfig'
|
2
|
+
|
3
|
+
module OpenGL
|
4
|
+
@@opengl_platform = case RbConfig::CONFIG['host_os']
|
5
|
+
when /mswin|msys|mingw|cygwin/
|
6
|
+
:OPENGL_PLATFORM_WINDOWS
|
7
|
+
when /darwin/
|
8
|
+
:OPENGL_PLATFORM_MACOSX
|
9
|
+
when /linux/
|
10
|
+
:OPENGL_PLATFORM_LINUX
|
11
|
+
else
|
12
|
+
raise RuntimeError, "OpenGL : Unknown OS: #{host_os.inspect}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.get_platform()
|
16
|
+
return @@opengl_platform
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
=begin
|
22
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
23
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
24
|
+
|
25
|
+
This software is provided 'as-is', without any express or implied
|
26
|
+
warranty. In no event will the authors be held liable for any damages
|
27
|
+
arising from the use of this software.
|
28
|
+
|
29
|
+
Permission is granted to anyone to use this software for any purpose,
|
30
|
+
including commercial applications, and to alter it and redistribute it
|
31
|
+
freely, subject to the following restrictions:
|
32
|
+
|
33
|
+
1. The origin of this software must not be misrepresented; you must not
|
34
|
+
claim that you wrote the original software. If you use this software
|
35
|
+
in a product, an acknowledgment in the product documentation would be
|
36
|
+
appreciated but is not required.
|
37
|
+
|
38
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
39
|
+
misrepresented as being the original software.
|
40
|
+
|
41
|
+
3. This notice may not be removed or altered from any source
|
42
|
+
distribution.
|
43
|
+
=end
|
data/lib/opengl_windows.rb
CHANGED
@@ -1,47 +1,71 @@
|
|
1
|
-
require 'fiddle'
|
2
|
-
|
3
|
-
module OpenGL
|
4
|
-
|
5
|
-
WGL_FUNCTIONS_MAP = {}
|
6
|
-
WGL_FUNCTIONS_ARGS_MAP = {}
|
7
|
-
WGL_FUNCTIONS_RETVAL_MAP = {}
|
8
|
-
|
9
|
-
def self.get_wgl_command( sym )
|
10
|
-
if WGL_FUNCTIONS_MAP[sym] == nil
|
11
|
-
bind_wgl_command( sym )
|
12
|
-
end
|
13
|
-
return WGL_FUNCTIONS_MAP[sym]
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.bind_wgl_command( sym )
|
17
|
-
WGL_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@gl_dll[sym.to_s],
|
18
|
-
WGL_FUNCTIONS_ARGS_MAP[sym],
|
19
|
-
WGL_FUNCTIONS_RETVAL_MAP[sym] )
|
20
|
-
raise RuntimeError if WGL_FUNCTIONS_RETVAL_MAP[sym] == nil
|
21
|
-
end
|
22
|
-
|
23
|
-
WGL_FUNCTIONS_ARGS_MAP[:wglGetProcAddress] = [Fiddle::TYPE_VOIDP]
|
24
|
-
WGL_FUNCTIONS_RETVAL_MAP[:wglGetProcAddress] = Fiddle::TYPE_VOIDP
|
25
|
-
|
26
|
-
def wglGetProcAddress(_lpszProc_)
|
27
|
-
f = OpenGL::get_wgl_command(:wglGetProcAddress)
|
28
|
-
f.call(_lpszProc_)
|
29
|
-
end
|
30
|
-
|
31
|
-
WGL_FUNCTIONS_ARGS_MAP[:wglGetCurrentContext] = []
|
32
|
-
WGL_FUNCTIONS_RETVAL_MAP[:wglGetCurrentContext] = Fiddle::TYPE_VOIDP
|
33
|
-
|
34
|
-
def wglGetCurrentContext()
|
35
|
-
f = OpenGL::get_wgl_command(:wglGetCurrentContext)
|
36
|
-
f.call()
|
37
|
-
end
|
38
|
-
|
39
|
-
WGL_FUNCTIONS_ARGS_MAP[:wglGetCurrentDC] = []
|
40
|
-
WGL_FUNCTIONS_RETVAL_MAP[:wglGetCurrentDC] = Fiddle::TYPE_VOIDP
|
41
|
-
|
42
|
-
def wglGetCurrentDC()
|
43
|
-
f = OpenGL::get_wgl_command(:wglGetCurrentDC)
|
44
|
-
f.call()
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
1
|
+
require 'fiddle'
|
2
|
+
|
3
|
+
module OpenGL
|
4
|
+
|
5
|
+
WGL_FUNCTIONS_MAP = {}
|
6
|
+
WGL_FUNCTIONS_ARGS_MAP = {}
|
7
|
+
WGL_FUNCTIONS_RETVAL_MAP = {}
|
8
|
+
|
9
|
+
def self.get_wgl_command( sym )
|
10
|
+
if WGL_FUNCTIONS_MAP[sym] == nil
|
11
|
+
bind_wgl_command( sym )
|
12
|
+
end
|
13
|
+
return WGL_FUNCTIONS_MAP[sym]
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.bind_wgl_command( sym )
|
17
|
+
WGL_FUNCTIONS_MAP[sym] = Fiddle::Function.new( @@gl_dll[sym.to_s],
|
18
|
+
WGL_FUNCTIONS_ARGS_MAP[sym],
|
19
|
+
WGL_FUNCTIONS_RETVAL_MAP[sym] )
|
20
|
+
raise RuntimeError if WGL_FUNCTIONS_RETVAL_MAP[sym] == nil
|
21
|
+
end
|
22
|
+
|
23
|
+
WGL_FUNCTIONS_ARGS_MAP[:wglGetProcAddress] = [Fiddle::TYPE_VOIDP]
|
24
|
+
WGL_FUNCTIONS_RETVAL_MAP[:wglGetProcAddress] = Fiddle::TYPE_VOIDP
|
25
|
+
|
26
|
+
def wglGetProcAddress(_lpszProc_)
|
27
|
+
f = OpenGL::get_wgl_command(:wglGetProcAddress)
|
28
|
+
f.call(_lpszProc_)
|
29
|
+
end
|
30
|
+
|
31
|
+
WGL_FUNCTIONS_ARGS_MAP[:wglGetCurrentContext] = []
|
32
|
+
WGL_FUNCTIONS_RETVAL_MAP[:wglGetCurrentContext] = Fiddle::TYPE_VOIDP
|
33
|
+
|
34
|
+
def wglGetCurrentContext()
|
35
|
+
f = OpenGL::get_wgl_command(:wglGetCurrentContext)
|
36
|
+
f.call()
|
37
|
+
end
|
38
|
+
|
39
|
+
WGL_FUNCTIONS_ARGS_MAP[:wglGetCurrentDC] = []
|
40
|
+
WGL_FUNCTIONS_RETVAL_MAP[:wglGetCurrentDC] = Fiddle::TYPE_VOIDP
|
41
|
+
|
42
|
+
def wglGetCurrentDC()
|
43
|
+
f = OpenGL::get_wgl_command(:wglGetCurrentDC)
|
44
|
+
f.call()
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
=begin
|
50
|
+
Ruby-OpenGL : Yet another OpenGL wrapper for Ruby (and wrapper code generator)
|
51
|
+
Copyright (c) 2013-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
52
|
+
|
53
|
+
This software is provided 'as-is', without any express or implied
|
54
|
+
warranty. In no event will the authors be held liable for any damages
|
55
|
+
arising from the use of this software.
|
56
|
+
|
57
|
+
Permission is granted to anyone to use this software for any purpose,
|
58
|
+
including commercial applications, and to alter it and redistribute it
|
59
|
+
freely, subject to the following restrictions:
|
60
|
+
|
61
|
+
1. The origin of this software must not be misrepresented; you must not
|
62
|
+
claim that you wrote the original software. If you use this software
|
63
|
+
in a product, an acknowledgment in the product documentation would be
|
64
|
+
appreciated but is not required.
|
65
|
+
|
66
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
67
|
+
misrepresented as being the original software.
|
68
|
+
|
69
|
+
3. This notice may not be removed or altered from any source
|
70
|
+
distribution.
|
71
|
+
=end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opengl-bindings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vaiorabbit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Ruby bindings for OpenGL - 4.5, OpenGL ES - 3.2 and all extensions using
|
14
14
|
Fiddle (For MRI >= 2.0.0). GLFW/GLUT/GLU bindings are also available.
|
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
69
|
version: '0'
|
70
70
|
requirements: []
|
71
71
|
rubyforge_project:
|
72
|
-
rubygems_version: 2.6.
|
72
|
+
rubygems_version: 2.6.8
|
73
73
|
signing_key:
|
74
74
|
specification_version: 4
|
75
75
|
summary: Bindings for OpenGL -4.5, ES - 3.2 and extensions (For MRI >= 2.0.0)
|