opengl-bindings 1.6.1 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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)
|