opengl-bindings 1.2.1 → 1.2.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 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)