opengl-bindings 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +6 -0
- data/README.md +46 -21
- data/lib/glfw.rb +12 -1
- data/lib/glut.rb +244 -0
- data/lib/opengl_command.rb +5 -2
- data/lib/opengl_enum.rb +6 -2
- data/lib/opengl_ext_command.rb +131 -2
- data/lib/opengl_ext_enum.rb +6 -2
- data/sample/report_env.rb +5 -9
- data/sample/simple.rb +8 -10
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d859718ed8f6ade732fae66f2d3c1dbfee15c2d
|
4
|
+
data.tar.gz: 8f7cda9742fc340c11334026f5ace952548f0d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3488767d45d010c57b55839e95becb81a6fdaf3c8158856f45ac22628691c415b2d6757e0e661cbc2cfd192de5e7d6b79c506ac53a740a78a829f1d3e2a92157
|
7
|
+
data.tar.gz: 849de0186d2fb4fcceb9184a11ee06236829108efbf9ff73753066dcfb2bb05f4721e4eda774591c072ac9568b2612a976ec5d1e6109674a175247c60d5a1cc9
|
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
2013-09-21 vaiorabbit <https://twitter.com/vaiorabbit>
|
2
|
+
|
3
|
+
* glut.rb: Minimal GLUT wrapper.
|
4
|
+
* sample/GLUT: Added.
|
5
|
+
* glfw.rb, glut.rb (load_dll): Now searches dll/dylib/so from current execution path.
|
6
|
+
|
1
7
|
2013-09-16 vaiorabbit <https://twitter.com/vaiorabbit>
|
2
8
|
|
3
9
|
* lib/glfw.rb (GLFW.create_callback): Now accepts Proc object. (ex.) "method(:key_callback).to_proc".
|
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 : 2013-09-
|
8
|
+
* Last modified : 2013-09-21
|
9
9
|
|
10
10
|
|
11
11
|
## Features ##
|
@@ -18,6 +18,17 @@
|
|
18
18
|
* Supports OpenGL 1.0 - 4.4, and all OpenGL extensions.
|
19
19
|
|
20
20
|
|
21
|
+
## How to install ##
|
22
|
+
|
23
|
+
Via RubyGems ( https://rubygems.org/gems/opengl-bindings ):
|
24
|
+
|
25
|
+
$ gem install opengl-bindings
|
26
|
+
|
27
|
+
Or grab all library codes (`lib/*.rb') and use them by adding as one of the load paths like:
|
28
|
+
|
29
|
+
$ ruby -I ./lib your_app.rb
|
30
|
+
|
31
|
+
|
21
32
|
## How to use ##
|
22
33
|
|
23
34
|
See sample/simple.rb.
|
@@ -40,7 +51,10 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
40
51
|
* 'opengl_ext_enum.rb' : OpenGL extension enum wrapper Generated via generator/generate_ext_enum.rb.
|
41
52
|
|
42
53
|
* 'glfw.rb'
|
43
|
-
* My handwirtten GLFW wrapper
|
54
|
+
* My handwirtten GLFW wrapper.
|
55
|
+
|
56
|
+
* 'glut.rb'
|
57
|
+
* Minimal GLUT wrapper.
|
44
58
|
|
45
59
|
* 'glu.rb'
|
46
60
|
* My handwirtten GLU wrapper.
|
@@ -105,7 +119,7 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
105
119
|
|
106
120
|
## Note ##
|
107
121
|
|
108
|
-
* No Ruby-Style handy interfaces are available (like one in the ruby-opengl2 (http://ruby-opengl.rubyforge.org/))
|
122
|
+
* No Ruby-Style handy interfaces are available (like one in the ruby-opengl2 ( http://ruby-opengl.rubyforge.org/ ))
|
109
123
|
* Example:
|
110
124
|
* (Original C API)
|
111
125
|
|
@@ -123,22 +137,17 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
123
137
|
|
124
138
|
tex_name = glGenTextures( 2 )[0]
|
125
139
|
|
126
|
-
* Because:
|
127
|
-
* I don't want to maintain this feature, which makes difficult to auto-generate.
|
128
|
-
* I don't like to modify original OpenGL API.
|
129
|
-
* Thanks to Fiddle, all these C-pointer issue can be simply handled with Array#pack and String#unpack.
|
130
|
-
|
131
140
|
* Reference : Other approaches after ruby-opengl2
|
132
|
-
* OpenGL (opengl3) by davll (https://github.com/davll/ruby-opengl)
|
141
|
+
* OpenGL (opengl3) by davll ( https://github.com/davll/ruby-opengl )
|
133
142
|
* Built on Ruby-FFI, which is useful for JRuby users.
|
134
|
-
* opengl-core by nilium (https://github.com/nilium/ruby-opengl)
|
143
|
+
* opengl-core by nilium ( https://github.com/nilium/ruby-opengl )
|
135
144
|
* Build on Fiddle.
|
136
145
|
* Provides more customize points and handy utilities.
|
137
146
|
|
138
147
|
|
139
148
|
## License ##
|
140
149
|
|
141
|
-
The zlib/libpng License (http://opensource.org/licenses/Zlib).
|
150
|
+
The zlib/libpng License ( http://opensource.org/licenses/Zlib ).
|
142
151
|
|
143
152
|
Copyright (c) 2013 vaiorabbit@twitter.com
|
144
153
|
|
@@ -163,6 +172,9 @@ The zlib/libpng License (http://opensource.org/licenses/Zlib).
|
|
163
172
|
Sample codes/resources under sample/GLExcess are provided under the GNU General
|
164
173
|
Public License version 2. See sample/GLExcess/GPL2.txt .
|
165
174
|
|
175
|
+
Sample codes under sample/OrangeBook are provided under the BSD 3-Clause License.
|
176
|
+
See sample/OrangeBook/3Dlabs-License.txt .
|
177
|
+
|
166
178
|
-------------------------------------------------------------------------------
|
167
179
|
|
168
180
|
# 自前 Ruby-OpenGL と自動生成スクリプト #
|
@@ -173,6 +185,17 @@ Public License version 2. See sample/GLExcess/GPL2.txt .
|
|
173
185
|
* 関数とenumのラッパーコードは Khronos の XML API registry (gl.xml) から自動生成しています
|
174
186
|
|
175
187
|
|
188
|
+
## インストール ##
|
189
|
+
|
190
|
+
RubyGems経由で ( https://rubygems.org/gems/opengl-bindings ):
|
191
|
+
|
192
|
+
$ gem install opengl-bindings
|
193
|
+
|
194
|
+
もしくは lib 以下の *.rb をコピー → その場所をロードパスに加えて次のように起動:
|
195
|
+
|
196
|
+
$ ruby -I ./lib your_app.rb
|
197
|
+
|
198
|
+
|
176
199
|
## 使い方 ##
|
177
200
|
|
178
201
|
sample/simple.rb を参照してください。
|
@@ -195,7 +218,10 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
195
218
|
* 'opengl_ext_enum.rb' : OpenGL 拡張enumのラッパーコード。 generator/generate_ext_enum.rb で自動生成されたものです。
|
196
219
|
|
197
220
|
* 'glfw.rb'
|
198
|
-
* GLFW のラッパーコードです(自動生成ではありません)
|
221
|
+
* GLFW のラッパーコードです(自動生成ではありません)。
|
222
|
+
|
223
|
+
* 'glut.rb'
|
224
|
+
* GLUT ラッパー (よく使う関数限定)
|
199
225
|
|
200
226
|
* 'glu.rb'
|
201
227
|
* GLU のラッパーコードです(自動生成ではありません)。
|
@@ -260,7 +286,7 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
260
286
|
|
261
287
|
## メモ ##
|
262
288
|
|
263
|
-
* Rubyスタイルの便利なインターフェースはサポートしていません (ruby-opengl2 (http://ruby-opengl.rubyforge.org/) にあったような感じのもの)
|
289
|
+
* Rubyスタイルの便利なインターフェースはサポートしていません (ruby-opengl2 ( http://ruby-opengl.rubyforge.org/ ) にあったような感じのもの)
|
264
290
|
* 例:
|
265
291
|
* (OpenGLオリジナルの C API)
|
266
292
|
|
@@ -278,22 +304,21 @@ https://github.com/vaiorabbit/ruby-opengl
|
|
278
304
|
|
279
305
|
tex_name = glGenTextures( 2 )[0] # glGenTextures が配列を返すように修正されています
|
280
306
|
|
281
|
-
* なぜサポートしないのか:
|
282
|
-
* 面倒。自動生成になじまない。
|
283
|
-
* OpenGL オリジナルの API を変更するのは個人的に嫌。
|
284
|
-
* この手の C ポインタ関連の問題はすべて Array#pack と String#unpack だけで簡単に解決できます (Fiddleのおかげ)。
|
285
|
-
|
286
307
|
* 参考 : ruby-opengl2 以降に出てきたその他のアプローチ
|
287
|
-
* OpenGL (opengl3) by davll (https://github.com/davll/ruby-opengl)
|
308
|
+
* OpenGL (opengl3) by davll ( https://github.com/davll/ruby-opengl )
|
288
309
|
* Ruby-FFI を利用 ⇒ JRuby でも使えるようです
|
289
|
-
* opengl-core by nilium (https://github.com/nilium/ruby-opengl)
|
310
|
+
* opengl-core by nilium ( https://github.com/nilium/ruby-opengl )
|
290
311
|
* Fiddle を利用
|
291
312
|
* カスタマイズポイント・ユーティリティがこのライブラリよりも揃ってます
|
292
313
|
|
293
314
|
|
294
315
|
## ライセンス ##
|
295
316
|
|
296
|
-
* zlib/libpng ライセンスです (http://opensource.org/licenses/Zlib)。
|
317
|
+
* zlib/libpng ライセンスです ( http://opensource.org/licenses/Zlib )。
|
297
318
|
|
298
319
|
* sample/GLExcess 以下にあるものについては GNU General Public License version 2 です。
|
299
320
|
sample/GLExcess/GPL2.txt を参照してください。
|
321
|
+
|
322
|
+
* sample/OrangeBook 以下にあるものについては修正BSDライセンスです。
|
323
|
+
sample/OrangeBook/3Dlabs-License.txt を参照してください。
|
324
|
+
|
data/lib/glfw.rb
CHANGED
@@ -310,7 +310,18 @@ module GLFW
|
|
310
310
|
@@glfw_import_done = false
|
311
311
|
|
312
312
|
# Load native library.
|
313
|
-
def self.load_dll(lib =
|
313
|
+
def self.load_dll(lib = nil, path = nil)
|
314
|
+
if lib == nil && path == nil
|
315
|
+
case OpenGL.get_platform
|
316
|
+
when :OPENGL_PLATFORM_WINDOWS
|
317
|
+
lib, path = 'GLFW3.dll', Dir.pwd
|
318
|
+
when :OPENGL_PLATFORM_MACOSX
|
319
|
+
lib, path = 'libglfw.dylib', Dir.pwd
|
320
|
+
else
|
321
|
+
lib, path = 'libglfw.so', Dir.pwd
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
314
325
|
dlload (path + '/' + lib)
|
315
326
|
import_symbols() unless @@glfw_import_done
|
316
327
|
end
|
data/lib/glut.rb
ADDED
@@ -0,0 +1,244 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'fiddle/import'
|
3
|
+
require_relative 'opengl_platform'
|
4
|
+
|
5
|
+
module GLUT
|
6
|
+
|
7
|
+
extend Fiddle::Importer
|
8
|
+
|
9
|
+
#
|
10
|
+
# Fiddle's default 'extern' stores all methods into local variable '@func_map', that makes difficult to 'include GLUT'.
|
11
|
+
# So I override it and replace '@func_map' into 'GLUT_FUNCTIONS_MAP'.
|
12
|
+
# Ref.: /lib/ruby/2.0.0/fiddle/import.rb
|
13
|
+
#
|
14
|
+
GLUT_FUNCTIONS_MAP = {}
|
15
|
+
def self.extern(signature, *opts)
|
16
|
+
symname, ctype, argtype = parse_signature(signature, @type_alias)
|
17
|
+
opt = parse_bind_options(opts)
|
18
|
+
f = import_function(symname, ctype, argtype, opt[:call_type])
|
19
|
+
name = symname.gsub(/@.+/,'')
|
20
|
+
GLUT_FUNCTIONS_MAP[name] = f
|
21
|
+
begin
|
22
|
+
/^(.+?):(\d+)/ =~ caller.first
|
23
|
+
file, line = $1, $2.to_i
|
24
|
+
rescue
|
25
|
+
file, line = __FILE__, __LINE__+3
|
26
|
+
end
|
27
|
+
args_str="*args"
|
28
|
+
module_eval(<<-EOS, file, line)
|
29
|
+
def #{name}(*args, &block)
|
30
|
+
GLUT_FUNCTIONS_MAP['#{name}'].call(*args,&block)
|
31
|
+
end
|
32
|
+
EOS
|
33
|
+
module_function(name)
|
34
|
+
f
|
35
|
+
end
|
36
|
+
|
37
|
+
# defines
|
38
|
+
GLUT_KEY_F1 = 0x0001
|
39
|
+
GLUT_KEY_F2 = 0x0002
|
40
|
+
GLUT_KEY_F3 = 0x0003
|
41
|
+
GLUT_KEY_F4 = 0x0004
|
42
|
+
GLUT_KEY_F5 = 0x0005
|
43
|
+
GLUT_KEY_F6 = 0x0006
|
44
|
+
GLUT_KEY_F7 = 0x0007
|
45
|
+
GLUT_KEY_F8 = 0x0008
|
46
|
+
GLUT_KEY_F9 = 0x0009
|
47
|
+
GLUT_KEY_F10 = 0x000A
|
48
|
+
GLUT_KEY_F11 = 0x000B
|
49
|
+
GLUT_KEY_F12 = 0x000C
|
50
|
+
GLUT_KEY_LEFT = 0x0064
|
51
|
+
GLUT_KEY_UP = 0x0065
|
52
|
+
GLUT_KEY_RIGHT = 0x0066
|
53
|
+
GLUT_KEY_DOWN = 0x0067
|
54
|
+
GLUT_KEY_PAGE_UP = 0x0068
|
55
|
+
GLUT_KEY_PAGE_DOWN = 0x0069
|
56
|
+
GLUT_KEY_HOME = 0x006A
|
57
|
+
GLUT_KEY_END = 0x006B
|
58
|
+
GLUT_KEY_INSERT = 0x006C
|
59
|
+
|
60
|
+
GLUT_LEFT_BUTTON = 0x0000
|
61
|
+
GLUT_MIDDLE_BUTTON = 0x0001
|
62
|
+
GLUT_RIGHT_BUTTON = 0x0002
|
63
|
+
GLUT_DOWN = 0x0000
|
64
|
+
GLUT_UP = 0x0001
|
65
|
+
GLUT_LEFT = 0x0000
|
66
|
+
GLUT_ENTERED = 0x0001
|
67
|
+
|
68
|
+
GLUT_RGB = 0x0000
|
69
|
+
GLUT_RGBA = 0x0000
|
70
|
+
GLUT_INDEX = 0x0001
|
71
|
+
GLUT_SINGLE = 0x0000
|
72
|
+
GLUT_DOUBLE = 0x0002
|
73
|
+
GLUT_ACCUM = 0x0004
|
74
|
+
GLUT_ALPHA = 0x0008
|
75
|
+
GLUT_DEPTH = 0x0010
|
76
|
+
GLUT_STENCIL = 0x0020
|
77
|
+
GLUT_MULTISAMPLE = 0x0080
|
78
|
+
GLUT_STEREO = 0x0100
|
79
|
+
GLUT_LUMINANCE = 0x0200
|
80
|
+
|
81
|
+
GLUT_MENU_NOT_IN_USE = 0x0000
|
82
|
+
GLUT_MENU_IN_USE = 0x0001
|
83
|
+
GLUT_NOT_VISIBLE = 0x0000
|
84
|
+
GLUT_VISIBLE = 0x0001
|
85
|
+
GLUT_HIDDEN = 0x0000
|
86
|
+
GLUT_FULLY_RETAINED = 0x0001
|
87
|
+
GLUT_PARTIALLY_RETAINED = 0x0002
|
88
|
+
GLUT_FULLY_COVERED = 0x0003
|
89
|
+
|
90
|
+
# typedefs
|
91
|
+
@@glut_cb_signature = {
|
92
|
+
:GLUTMenuFunc => "void GLUTMenuFunc(int)",
|
93
|
+
:GLUTDisplayFunc => "void GLUTDisplayFunc()",
|
94
|
+
:GLUTReshapeFunc => "void GLUTReshapeFunc(int, int)",
|
95
|
+
:GLUTKeyboardFunc => "void GLUTKeyboardFunc(unsigned char, int, int)",
|
96
|
+
:GLUTMouseFunc => "void GLUTMouseFunc(int, int, int, int)",
|
97
|
+
:GLUTMotionFunc => "void GLUTMotionFunc(int, int)",
|
98
|
+
:GLUTPassiveMotionFunc => "void GLUTPassiveMotionFunc(int x, int y)",
|
99
|
+
:GLUTEntryFunc => "void GLUTEntryFunc(int)",
|
100
|
+
:GLUTVisibilityFunc => "void GLUTVisibilityFunc(int)",
|
101
|
+
:GLUTIdleFunc => "void GLUTIdleFunc()",
|
102
|
+
:GLUTTimerFunc => "void GLUTTimerFunc(int)",
|
103
|
+
:GLUTMenuStateFunc => "void GLUTMenuStateFunc(int)",
|
104
|
+
:GLUTSpecialFunc => "void GLUTSpecialFunc(int, int, int)",
|
105
|
+
:GLUTMenuStatusFunc => "void GLUTMenuStatusFunc(int, int, int)",
|
106
|
+
}
|
107
|
+
|
108
|
+
def self.create_callback( sym, proc=nil, &blk )
|
109
|
+
if block_given?
|
110
|
+
return bind( @@glut_cb_signature[sym], nil, &blk )
|
111
|
+
else
|
112
|
+
return bind( @@glut_cb_signature[sym], nil, &proc )
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
@@glut_import_done = false
|
117
|
+
|
118
|
+
# Load native library.
|
119
|
+
def self.load_dll(lib = nil, path = nil)
|
120
|
+
if lib == nil && path == nil
|
121
|
+
case OpenGL.get_platform
|
122
|
+
when :OPENGL_PLATFORM_WINDOWS
|
123
|
+
lib, path = 'freeglut.dll', Dir.pwd
|
124
|
+
when :OPENGL_PLATFORM_MACOSX
|
125
|
+
lib, path = 'GLUT', '/System/Library/Frameworks/GLUT.framework'
|
126
|
+
else
|
127
|
+
lib, path = 'libglut.so', Dir.pwd
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
dlload (path + '/' + lib)
|
132
|
+
import_symbols() unless @@glut_import_done
|
133
|
+
end
|
134
|
+
|
135
|
+
def self.import_symbols
|
136
|
+
# defines
|
137
|
+
if OpenGL.get_platform == :OPENGL_PLATFORM_WINDOWS
|
138
|
+
const_set('GLUT_STROKE_ROMAN', Fiddle::Pointer.new(0x0000) )
|
139
|
+
const_set('GLUT_STROKE_MONO_ROMAN', Fiddle::Pointer.new(0x0001) )
|
140
|
+
const_set('GLUT_BITMAP_9_BY_15', Fiddle::Pointer.new(0x0002) )
|
141
|
+
const_set('GLUT_BITMAP_8_BY_13', Fiddle::Pointer.new(0x0003) )
|
142
|
+
const_set('GLUT_BITMAP_TIMES_ROMAN_10', Fiddle::Pointer.new(0x0004) )
|
143
|
+
const_set('GLUT_BITMAP_TIMES_ROMAN_24', Fiddle::Pointer.new(0x0005) )
|
144
|
+
const_set('GLUT_BITMAP_HELVETICA_10', Fiddle::Pointer.new(0x0006) )
|
145
|
+
const_set('GLUT_BITMAP_HELVETICA_12', Fiddle::Pointer.new(0x0007) )
|
146
|
+
const_set('GLUT_BITMAP_HELVETICA_18', Fiddle::Pointer.new(0x0008) )
|
147
|
+
else
|
148
|
+
const_set('GLUT_STROKE_ROMAN', import_symbol("glutStrokeRoman") )
|
149
|
+
const_set('GLUT_STROKE_MONO_ROMAN', import_symbol("glutStrokeMonoRoman") )
|
150
|
+
const_set('GLUT_BITMAP_9_BY_15', import_symbol("glutBitmap9By15") )
|
151
|
+
const_set('GLUT_BITMAP_8_BY_13', import_symbol("glutBitmap8By13") )
|
152
|
+
const_set('GLUT_BITMAP_TIMES_ROMAN_10', import_symbol("glutBitmapTimesRoman10") )
|
153
|
+
const_set('GLUT_BITMAP_TIMES_ROMAN_24', import_symbol("glutBitmapTimesRoman24") )
|
154
|
+
const_set('GLUT_BITMAP_HELVETICA_10', import_symbol("glutBitmapHelvetica10") )
|
155
|
+
const_set('GLUT_BITMAP_HELVETICA_12', import_symbol("glutBitmapHelvetica12") )
|
156
|
+
const_set('GLUT_BITMAP_HELVETICA_18', import_symbol("glutBitmapHelvetica18") )
|
157
|
+
end
|
158
|
+
|
159
|
+
# function
|
160
|
+
extern 'void glutInit(int*, char**)'
|
161
|
+
extern 'void glutInitDisplayMode(unsigned int)'
|
162
|
+
|
163
|
+
extern 'void glutInitWindowPosition(int, int)'
|
164
|
+
extern 'void glutInitWindowSize(int, int)'
|
165
|
+
extern 'void glutMainLoop()'
|
166
|
+
|
167
|
+
extern 'int glutCreateWindow(const char *)'
|
168
|
+
extern 'int glutCreateSubWindow(int, int, int, int, int)'
|
169
|
+
extern 'void glutDestroyWindow(int)'
|
170
|
+
extern 'void glutPostRedisplay()'
|
171
|
+
|
172
|
+
extern 'void glutSwapBuffers()'
|
173
|
+
extern 'int glutGetWindow()'
|
174
|
+
extern 'void glutSetWindow(int)'
|
175
|
+
extern 'void glutSetWindowTitle(const char *)'
|
176
|
+
extern 'void glutSetIconTitle(const char *)'
|
177
|
+
extern 'void glutPositionWindow(int, int)'
|
178
|
+
extern 'void glutReshapeWindow(int, int)'
|
179
|
+
extern 'void glutPopWindow()'
|
180
|
+
extern 'void glutPushWindow()'
|
181
|
+
extern 'void glutIconifyWindow()'
|
182
|
+
extern 'void glutShowWindow()'
|
183
|
+
extern 'void glutHideWindow()'
|
184
|
+
|
185
|
+
extern 'int glutCreateMenu(void *)'
|
186
|
+
extern 'void glutDestroyMenu(int)'
|
187
|
+
extern 'int glutGetMenu()'
|
188
|
+
extern 'void glutSetMenu(int)'
|
189
|
+
extern 'void glutAddMenuEntry(const char *, int)'
|
190
|
+
extern 'void glutAddSubMenu(const char *, int)'
|
191
|
+
extern 'void glutChangeToMenuEntry(int, const char *, int)'
|
192
|
+
extern 'void glutChangeToSubMenu(int, const char *, int)'
|
193
|
+
extern 'void glutRemoveMenuItem(int)'
|
194
|
+
extern 'void glutAttachMenu(int)'
|
195
|
+
extern 'void glutDetachMenu(int)'
|
196
|
+
|
197
|
+
extern 'void glutTimerFunc(unsigned int, void *)'
|
198
|
+
extern 'void glutIdleFunc(void *)'
|
199
|
+
extern 'void glutDisplayFunc(void *)'
|
200
|
+
extern 'void glutReshapeFunc(void *)'
|
201
|
+
extern 'void glutKeyboardFunc(void *)'
|
202
|
+
extern 'void glutMouseFunc(void *)'
|
203
|
+
extern 'void glutMotionFunc(void *)'
|
204
|
+
extern 'void glutPassiveMotionFunc(void *)'
|
205
|
+
extern 'void glutEntryFunc(void *)'
|
206
|
+
extern 'void glutVisibilityFunc(void *)'
|
207
|
+
extern 'void glutIdleFunc(void *)'
|
208
|
+
extern 'void glutTimerFunc(unsigned int, void *, int)'
|
209
|
+
extern 'void glutMenuStateFunc(void *)'
|
210
|
+
extern 'void glutSpecialFunc(void *)'
|
211
|
+
extern 'void glutMenuStatusFunc(void*)'
|
212
|
+
extern 'int glutGet(unsigned int)'
|
213
|
+
extern 'int glutDeviceGet(unsigned int)'
|
214
|
+
|
215
|
+
extern 'int glutExtensionSupported(const char *)'
|
216
|
+
|
217
|
+
extern 'void glutBitmapCharacter(void *, int)'
|
218
|
+
extern 'int glutBitmapWidth(void *, int)'
|
219
|
+
extern 'void glutStrokeCharacter(void *, int)'
|
220
|
+
extern 'int glutStrokeWidth(void *, int)'
|
221
|
+
|
222
|
+
extern 'void glutWireSphere(double, int, int)'
|
223
|
+
extern 'void glutSolidSphere(double, int, int)'
|
224
|
+
extern 'void glutWireCone(double, double, int, int)'
|
225
|
+
extern 'void glutSolidCone(double, double, int, int)'
|
226
|
+
extern 'void glutWireCube(double)'
|
227
|
+
extern 'void glutSolidCube(double)'
|
228
|
+
extern 'void glutWireTorus(double, double, int, int)'
|
229
|
+
extern 'void glutSolidTorus(double, double, int, int)'
|
230
|
+
extern 'void glutWireDodecahedron()'
|
231
|
+
extern 'void glutSolidDodecahedron()'
|
232
|
+
extern 'void glutWireTeapot(double)'
|
233
|
+
extern 'void glutSolidTeapot(double)'
|
234
|
+
extern 'void glutWireOctahedron()'
|
235
|
+
extern 'void glutSolidOctahedron()'
|
236
|
+
extern 'void glutWireTetrahedron()'
|
237
|
+
extern 'void glutSolidTetrahedron()'
|
238
|
+
extern 'void glutWireIcosahedron()'
|
239
|
+
extern 'void glutSolidIcosahedron()'
|
240
|
+
|
241
|
+
@@glut_import_done = true
|
242
|
+
end
|
243
|
+
|
244
|
+
end
|
data/lib/opengl_command.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# opengl-bindings
|
2
|
+
# * http://rubygems.org/gems/opengl-bindings
|
3
|
+
# * http://github.com/vaiorabbit/ruby-opengl
|
4
|
+
#
|
5
|
+
# [NOTICE] This is an automatically generated file.
|
3
6
|
|
4
7
|
require 'fiddle'
|
5
8
|
|
data/lib/opengl_enum.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# opengl-bindings
|
2
|
+
# * http://rubygems.org/gems/opengl-bindings
|
3
|
+
# * http://github.com/vaiorabbit/ruby-opengl
|
4
|
+
#
|
5
|
+
# [NOTICE] This is an automatically generated file.
|
3
6
|
|
4
7
|
module OpenGL
|
5
8
|
|
@@ -1707,6 +1710,7 @@ module OpenGL
|
|
1707
1710
|
GL_DISPLAY_LIST = 0x82E7
|
1708
1711
|
GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
|
1709
1712
|
GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
|
1713
|
+
GL_TEXTURE_BUFFER_BINDING = 0x8C2A
|
1710
1714
|
GL_MAP_PERSISTENT_BIT = 0x0040
|
1711
1715
|
GL_MAP_COHERENT_BIT = 0x0080
|
1712
1716
|
GL_DYNAMIC_STORAGE_BIT = 0x0100
|
data/lib/opengl_ext_command.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# opengl-bindings
|
2
|
+
# * http://rubygems.org/gems/opengl-bindings
|
3
|
+
# * http://github.com/vaiorabbit/ruby-opengl
|
4
|
+
#
|
5
|
+
# [NOTICE] This is an automatically generated file.
|
3
6
|
|
4
7
|
require 'fiddle'
|
5
8
|
|
@@ -11846,6 +11849,132 @@ module OpenGL
|
|
11846
11849
|
f.call(_pipeline_)
|
11847
11850
|
end
|
11848
11851
|
SRC_GL_EXT_separate_shader_objects
|
11852
|
+
|
11853
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform1uiEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_INT]
|
11854
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform1uiEXT] = Fiddle::TYPE_VOID
|
11855
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11856
|
+
def glProgramUniform1uiEXT(_program_, _location_, _v0_)
|
11857
|
+
f = OpenGL::get_command(:glProgramUniform1uiEXT)
|
11858
|
+
f.call(_program_, _location_, _v0_)
|
11859
|
+
end
|
11860
|
+
SRC_GL_EXT_separate_shader_objects
|
11861
|
+
|
11862
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform2uiEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT]
|
11863
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform2uiEXT] = Fiddle::TYPE_VOID
|
11864
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11865
|
+
def glProgramUniform2uiEXT(_program_, _location_, _v0_, _v1_)
|
11866
|
+
f = OpenGL::get_command(:glProgramUniform2uiEXT)
|
11867
|
+
f.call(_program_, _location_, _v0_, _v1_)
|
11868
|
+
end
|
11869
|
+
SRC_GL_EXT_separate_shader_objects
|
11870
|
+
|
11871
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform3uiEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT]
|
11872
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform3uiEXT] = Fiddle::TYPE_VOID
|
11873
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11874
|
+
def glProgramUniform3uiEXT(_program_, _location_, _v0_, _v1_, _v2_)
|
11875
|
+
f = OpenGL::get_command(:glProgramUniform3uiEXT)
|
11876
|
+
f.call(_program_, _location_, _v0_, _v1_, _v2_)
|
11877
|
+
end
|
11878
|
+
SRC_GL_EXT_separate_shader_objects
|
11879
|
+
|
11880
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform4uiEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT, -Fiddle::TYPE_INT]
|
11881
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform4uiEXT] = Fiddle::TYPE_VOID
|
11882
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11883
|
+
def glProgramUniform4uiEXT(_program_, _location_, _v0_, _v1_, _v2_, _v3_)
|
11884
|
+
f = OpenGL::get_command(:glProgramUniform4uiEXT)
|
11885
|
+
f.call(_program_, _location_, _v0_, _v1_, _v2_, _v3_)
|
11886
|
+
end
|
11887
|
+
SRC_GL_EXT_separate_shader_objects
|
11888
|
+
|
11889
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform1uivEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
11890
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform1uivEXT] = Fiddle::TYPE_VOID
|
11891
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11892
|
+
def glProgramUniform1uivEXT(_program_, _location_, _count_, _value_)
|
11893
|
+
f = OpenGL::get_command(:glProgramUniform1uivEXT)
|
11894
|
+
f.call(_program_, _location_, _count_, _value_)
|
11895
|
+
end
|
11896
|
+
SRC_GL_EXT_separate_shader_objects
|
11897
|
+
|
11898
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform2uivEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
11899
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform2uivEXT] = Fiddle::TYPE_VOID
|
11900
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11901
|
+
def glProgramUniform2uivEXT(_program_, _location_, _count_, _value_)
|
11902
|
+
f = OpenGL::get_command(:glProgramUniform2uivEXT)
|
11903
|
+
f.call(_program_, _location_, _count_, _value_)
|
11904
|
+
end
|
11905
|
+
SRC_GL_EXT_separate_shader_objects
|
11906
|
+
|
11907
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform3uivEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
11908
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform3uivEXT] = Fiddle::TYPE_VOID
|
11909
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11910
|
+
def glProgramUniform3uivEXT(_program_, _location_, _count_, _value_)
|
11911
|
+
f = OpenGL::get_command(:glProgramUniform3uivEXT)
|
11912
|
+
f.call(_program_, _location_, _count_, _value_)
|
11913
|
+
end
|
11914
|
+
SRC_GL_EXT_separate_shader_objects
|
11915
|
+
|
11916
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniform4uivEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
|
11917
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniform4uivEXT] = Fiddle::TYPE_VOID
|
11918
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11919
|
+
def glProgramUniform4uivEXT(_program_, _location_, _count_, _value_)
|
11920
|
+
f = OpenGL::get_command(:glProgramUniform4uivEXT)
|
11921
|
+
f.call(_program_, _location_, _count_, _value_)
|
11922
|
+
end
|
11923
|
+
SRC_GL_EXT_separate_shader_objects
|
11924
|
+
|
11925
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix2x3fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11926
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix2x3fvEXT] = Fiddle::TYPE_VOID
|
11927
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11928
|
+
def glProgramUniformMatrix2x3fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11929
|
+
f = OpenGL::get_command(:glProgramUniformMatrix2x3fvEXT)
|
11930
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11931
|
+
end
|
11932
|
+
SRC_GL_EXT_separate_shader_objects
|
11933
|
+
|
11934
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix3x2fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11935
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix3x2fvEXT] = Fiddle::TYPE_VOID
|
11936
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11937
|
+
def glProgramUniformMatrix3x2fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11938
|
+
f = OpenGL::get_command(:glProgramUniformMatrix3x2fvEXT)
|
11939
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11940
|
+
end
|
11941
|
+
SRC_GL_EXT_separate_shader_objects
|
11942
|
+
|
11943
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix2x4fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11944
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix2x4fvEXT] = Fiddle::TYPE_VOID
|
11945
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11946
|
+
def glProgramUniformMatrix2x4fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11947
|
+
f = OpenGL::get_command(:glProgramUniformMatrix2x4fvEXT)
|
11948
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11949
|
+
end
|
11950
|
+
SRC_GL_EXT_separate_shader_objects
|
11951
|
+
|
11952
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix4x2fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11953
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix4x2fvEXT] = Fiddle::TYPE_VOID
|
11954
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11955
|
+
def glProgramUniformMatrix4x2fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11956
|
+
f = OpenGL::get_command(:glProgramUniformMatrix4x2fvEXT)
|
11957
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11958
|
+
end
|
11959
|
+
SRC_GL_EXT_separate_shader_objects
|
11960
|
+
|
11961
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix3x4fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11962
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix3x4fvEXT] = Fiddle::TYPE_VOID
|
11963
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11964
|
+
def glProgramUniformMatrix3x4fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11965
|
+
f = OpenGL::get_command(:glProgramUniformMatrix3x4fvEXT)
|
11966
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11967
|
+
end
|
11968
|
+
SRC_GL_EXT_separate_shader_objects
|
11969
|
+
|
11970
|
+
GL_FUNCTIONS_ARGS_MAP[:glProgramUniformMatrix4x3fvEXT] = [-Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, -Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP]
|
11971
|
+
GL_FUNCTIONS_RETVAL_MAP[:glProgramUniformMatrix4x3fvEXT] = Fiddle::TYPE_VOID
|
11972
|
+
module_eval(<<-SRC_GL_EXT_separate_shader_objects)
|
11973
|
+
def glProgramUniformMatrix4x3fvEXT(_program_, _location_, _count_, _transpose_, _value_)
|
11974
|
+
f = OpenGL::get_command(:glProgramUniformMatrix4x3fvEXT)
|
11975
|
+
f.call(_program_, _location_, _count_, _transpose_, _value_)
|
11976
|
+
end
|
11977
|
+
SRC_GL_EXT_separate_shader_objects
|
11849
11978
|
end # define_command_GL_EXT_separate_shader_objects
|
11850
11979
|
|
11851
11980
|
def define_command_GL_EXT_separate_specular_color
|
data/lib/opengl_ext_enum.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# opengl-bindings
|
2
|
+
# * http://rubygems.org/gems/opengl-bindings
|
3
|
+
# * http://github.com/vaiorabbit/ruby-opengl
|
4
|
+
#
|
5
|
+
# [NOTICE] This is an automatically generated file.
|
3
6
|
|
4
7
|
module OpenGL
|
5
8
|
|
@@ -206,6 +209,7 @@ module OpenGL
|
|
206
209
|
const_set('GL_RGB_422_APPLE', 0x8A1F) unless defined?(GL_RGB_422_APPLE)
|
207
210
|
const_set('GL_UNSIGNED_SHORT_8_8_APPLE', 0x85BA) unless defined?(GL_UNSIGNED_SHORT_8_8_APPLE)
|
208
211
|
const_set('GL_UNSIGNED_SHORT_8_8_REV_APPLE', 0x85BB) unless defined?(GL_UNSIGNED_SHORT_8_8_REV_APPLE)
|
212
|
+
const_set('GL_RGB_RAW_422_APPLE', 0x8A51) unless defined?(GL_RGB_RAW_422_APPLE)
|
209
213
|
end # define_enum_GL_APPLE_rgb_422
|
210
214
|
|
211
215
|
def define_enum_GL_APPLE_row_bytes
|
data/sample/report_env.rb
CHANGED
@@ -1,17 +1,12 @@
|
|
1
|
-
require 'glfw'
|
2
1
|
require 'opengl'
|
2
|
+
require 'glfw'
|
3
|
+
|
4
|
+
OpenGL.load_dll()
|
5
|
+
GLFW.load_dll()
|
3
6
|
|
4
7
|
include OpenGL
|
5
8
|
include GLFW
|
6
9
|
|
7
|
-
OpenGL.load_dll()
|
8
|
-
case OpenGL.get_platform
|
9
|
-
when :OPENGL_PLATFORM_WINDOWS
|
10
|
-
GLFW.load_dll('glfw3.dll', '.')
|
11
|
-
when :OPENGL_PLATFORM_MACOSX
|
12
|
-
GLFW.load_dll('libglfw.dylib', '.')
|
13
|
-
end
|
14
|
-
|
15
10
|
if __FILE__ == $0
|
16
11
|
glfwInit()
|
17
12
|
window = glfwCreateWindow( 100, 100, "Report OpenGL Environment", nil, nil )
|
@@ -19,5 +14,6 @@ if __FILE__ == $0
|
|
19
14
|
puts "Version: #{glGetString(GL_VERSION).to_s}"
|
20
15
|
puts "Extensions:"
|
21
16
|
puts glGetString(GL_EXTENSIONS).to_s.split(/ /)
|
17
|
+
glfwDestroyWindow( window )
|
22
18
|
glfwTerminate()
|
23
19
|
end
|
data/sample/simple.rb
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
+
#
|
2
|
+
# For more samples, visit https://github.com/vaiorabbit/ruby-opengl/tree/master/sample .
|
3
|
+
#
|
1
4
|
# Ref.: /glfw-3.0.1/examples/simple.c
|
2
|
-
|
5
|
+
#
|
3
6
|
require 'opengl'
|
4
|
-
|
5
|
-
include GLFW
|
6
|
-
include OpenGL
|
7
|
+
require 'glfw'
|
7
8
|
|
8
9
|
OpenGL.load_dll()
|
10
|
+
GLFW.load_dll()
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
GLFW.load_dll('glfw3.dll', '.')
|
13
|
-
when :OPENGL_PLATFORM_MACOSX
|
14
|
-
GLFW.load_dll('libglfw.dylib', '.')
|
15
|
-
end
|
12
|
+
include OpenGL
|
13
|
+
include GLFW
|
16
14
|
|
17
15
|
# Press ESC to exit.
|
18
16
|
key_callback = GLFW::create_callback(:GLFWkeyfun) do |window_handle, key, scancode, action, mods|
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opengl-bindings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vaiorabbit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
Ruby bindings for OpenGL 1.0-4.4 and all extensions using Fiddle (For MRI >= 2.0.0).
|
15
|
+
For more information, please visit: http://github.com/vaiorabbit/ruby-opengl
|
15
16
|
email:
|
16
17
|
- vaiorabbit@gmail.com
|
17
18
|
executables: []
|
@@ -20,6 +21,7 @@ extra_rdoc_files: []
|
|
20
21
|
files:
|
21
22
|
- lib/glfw.rb
|
22
23
|
- lib/glu.rb
|
24
|
+
- lib/glut.rb
|
23
25
|
- lib/opengl.rb
|
24
26
|
- lib/opengl_command.rb
|
25
27
|
- lib/opengl_common.rb
|
@@ -56,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
58
|
version: '0'
|
57
59
|
requirements: []
|
58
60
|
rubyforge_project:
|
59
|
-
rubygems_version: 2.
|
61
|
+
rubygems_version: 2.1.4
|
60
62
|
signing_key:
|
61
63
|
specification_version: 4
|
62
64
|
summary: Bindings for OpenGL 1.0-4.4 and extensions (For MRI >= 2.0.0)
|