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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7922691c7757c04002be934f5375426dd32c0df
4
- data.tar.gz: 044ec7aeef1fffb1a561a30fb35d6006477f621b
3
+ metadata.gz: 2d859718ed8f6ade732fae66f2d3c1dbfee15c2d
4
+ data.tar.gz: 8f7cda9742fc340c11334026f5ace952548f0d4f
5
5
  SHA512:
6
- metadata.gz: 3556717d2f992ad75a8e28c4123b0e52892f5b5c54d5b8e19bbe5f06ef1180278cb308f54ecad73edc0eed71d1b226683e569267960f18edb5de1cedfb91dc8e
7
- data.tar.gz: e68f024a9680d7e4f445bebb9f4f0c7fe978edd2547b938075d41c8a6762b8691f8d2bba87c54dfdf5d1183f8006384e9bf8b5087563b39ee5a7a6692ed98309
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-16
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 (https://github.com/vaiorabbit/ruby-glfw).
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 のラッパーコードです(自動生成ではありません) (https://github.com/vaiorabbit/ruby-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 = 'libglfw.dylib', path = '.')
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
@@ -1,5 +1,8 @@
1
- # Ruby-OpenGL (http://github.com/vaiorabbit/ruby-opengl/)
2
- # [NOTICE] Automatically generated file
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
- # Ruby-OpenGL (http://github.com/vaiorabbit/ruby-opengl/)
2
- # [NOTICE] Automatically generated file
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
@@ -1,5 +1,8 @@
1
- # Ruby-OpenGL (http://github.com/vaiorabbit/ruby-opengl/)
2
- # [NOTICE] Automatically generated file
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
@@ -1,5 +1,8 @@
1
- # Ruby-OpenGL (http://github.com/vaiorabbit/ruby-opengl/)
2
- # [NOTICE] Automatically generated file
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
- require 'glfw'
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
- case OpenGL.get_platform
11
- when :OPENGL_PLATFORM_WINDOWS
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.1
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-16 00:00:00.000000000 Z
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.0.5
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)