opengl-bindings 1.5.3 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
File without changes
File without changes
@@ -27,26 +27,26 @@ For more samples, visit https://github.com/vaiorabbit/ruby-opengl/tree/master/sa
27
27
 
28
28
  -------------------------------------------------------------------------------
29
29
 
30
- ## GLFW�Υ��åȥ��å� (http://www.glfw.org) ##
30
+ ## GLFWのセットアップ (http://www.glfw.org) ##
31
31
 
32
32
  * Windows
33
- * glfw3.dll �򤳤������֤��Ƥ���������
34
- * ����ѥ���ѤߥХ��ʥ�Ϥ�����:
33
+ * glfw3.dll をここに配置してください。
34
+ * コンパイル済みバイナリはこちら:
35
35
  * http://www.glfw.org/download.html
36
36
 
37
37
  * Mac OS X
38
- * ./glfwXX_build_dylib.sh ��¹Ԥ���� ./libglfw.dylib ���Ǥ�������ޤ���
38
+ * ./glfwXX_build_dylib.sh を実行すると ./libglfw.dylib ができあがります。
39
39
 
40
- ## GLUT�Υ��åȥ��å� ##
40
+ ## GLUTのセットアップ ##
41
41
 
42
42
  * Windows
43
- * freeglut ��ȤäƤ������� (http://freeglut.sourceforge.net).
44
- * freeglut.dll �򤳤������֤��Ƥ���������
45
- * ����ѥ���ѤߥХ��ʥ�Ϥ�����:
43
+ * freeglut を使ってください (http://freeglut.sourceforge.net).
44
+ * freeglut.dll をここに配置してください。
45
+ * コンパイル済みバイナリはこちら:
46
46
  * http://www.transmissionzero.co.uk/software/freeglut-devel/
47
47
 
48
48
  * Mac OS X
49
- * glut.rb �ϥǥե���Ȥ� /System/Library/Frameworks/GLUT.framework ��Ȥ��ޤ���
50
- * �⤷����Ȥ��̤�GLUT��Ȥ��������� 'GLUT.load_dll' �ΰ����ǻ��ꤷ�Ƥ���������
51
- * util/setup_dll.rb ��������ȤʤäƤ��ޤ���
49
+ * glut.rb はデフォルトで /System/Library/Frameworks/GLUT.framework を使います。
50
+ * もしこれとは別のGLUTを使いたい場合は 'GLUT.load_dll' の引数で指定してください。
51
+ * util/setup_dll.rb が使用例となっています。
52
52
  * https://github.com/vaiorabbit/ruby-opengl/blob/master/sample/util/setup_dll.rb
File without changes
@@ -0,0 +1,22 @@
1
+ #
2
+ # For Mac OS X + Xcode + CMake users.
3
+ #
4
+ # Ref.: https://github.com/malkia/ufo/blob/master/build/OSX/glfw.sh
5
+ #
6
+ wget https://github.com/glfw/glfw/releases/download/3.2/glfw-3.2.zip
7
+ tar xvjf glfw-3.2.zip
8
+ cd glfw-3.2/
9
+ mkdir build
10
+ cd build
11
+ export MACOSX_DEPLOYMENT_TARGET=10.11
12
+ cmake -D CMAKE_BUILD_TYPE=Release -D GLFW_NATIVE_API=1 -D CMAKE_OSX_ARCHITECTURES="i386;x86_64" -D BUILD_SHARED_LIBS=ON -D CMAKE_C_COMPILER=clang ../
13
+ make
14
+
15
+ # 'ls -l src/libglfw*' should be:
16
+ #
17
+ # $ ls -l src/libglfw*
18
+ # -rwxr-xr-x 1 foo staff 238124 2016-06-03 20:49 libglfw.3.2.dylib
19
+ # lrwxr-xr-x 1 foo staff 17 2016-06-03 20:49 libglfw.3.dylib -> libglfw.3.2.dylib
20
+ # lrwxr-xr-x 1 foo staff 15 2016-06-03 20:49 libglfw.dylib -> libglfw.3.dylib
21
+
22
+ cp -R src/libglfw* ../..
@@ -19,9 +19,9 @@ if __FILE__ == $0
19
19
  window = nil
20
20
  [4, 3].each do |major_ver|
21
21
  glfwDefaultWindowHints()
22
- glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)
22
+ # glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)
23
23
  glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)
24
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, major_ver)
24
+ # glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, major_ver)
25
25
  glfwWindowHint(GLFW_DECORATED, 0)
26
26
  window = glfwCreateWindow( 1, 1, "Report OpenGL Environment", nil, nil )
27
27
  break unless window.null?
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opengl-bindings
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaiorabbit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-30 00:00:00.000000000 Z
11
+ date: 2016-06-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'Ruby bindings for OpenGL - 4.5, OpenGL ES - 3.2 and all extensions using
14
14
  Fiddle (For MRI >= 2.0.0). GLFW/GLUT/GLU bindings are also available.
@@ -24,7 +24,6 @@ files:
24
24
  - LICENSE.txt
25
25
  - README.md
26
26
  - lib/glfw.rb
27
- - lib/glfw30.rb
28
27
  - lib/glu.rb
29
28
  - lib/glut.rb
30
29
  - lib/opengl.rb
@@ -46,15 +45,15 @@ files:
46
45
  - lib/opengl_platform.rb
47
46
  - lib/opengl_windows.rb
48
47
  - sample/README.md
49
- - sample/glfw30_build_dylib.sh
50
48
  - sample/glfw31_build_dylib.sh
49
+ - sample/glfw32_build_dylib.sh
51
50
  - sample/report_env.rb
52
51
  - sample/report_env_es.rb
53
52
  - sample/simple.rb
54
53
  - sample/simple_glut.rb
55
54
  homepage: https://github.com/vaiorabbit/ruby-opengl
56
55
  licenses:
57
- - zlib/libpng
56
+ - Zlib
58
57
  metadata: {}
59
58
  post_install_message:
60
59
  rdoc_options: []
@@ -72,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
71
  version: '0'
73
72
  requirements: []
74
73
  rubyforge_project:
75
- rubygems_version: 2.4.8
74
+ rubygems_version: 2.6.4
76
75
  signing_key:
77
76
  specification_version: 4
78
77
  summary: Bindings for OpenGL -4.5, ES - 3.2 and extensions (For MRI >= 2.0.0)
@@ -1,509 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # A GLFW wrapper (for version 3.0)
3
- require 'fiddle/import'
4
-
5
- module GLFW
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 GLFW'.
11
- # So I override it and replace '@func_map' into 'GLFW_FUNCTIONS_MAP'.
12
- # Ref.: /lib/ruby/2.0.0/fiddle/import.rb
13
- #
14
- GLFW_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
- GLFW_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
- GLFW_FUNCTIONS_MAP['#{name}'].call(*args,&block)
31
- end
32
- EOS
33
- module_function(name)
34
- f
35
- end
36
-
37
- # defines
38
- GLFW_VERSION_MAJOR = 3
39
- GLFW_VERSION_MINOR = 0
40
- GLFW_VERSION_REVISION = 1
41
-
42
- GLFW_RELEASE = 0
43
- GLFW_PRESS = 1
44
- GLFW_REPEAT = 2
45
-
46
- GLFW_KEY_UNKNOWN = -1
47
-
48
- GLFW_KEY_SPACE = 32
49
- GLFW_KEY_APOSTROPHE = 39 # '
50
- GLFW_KEY_COMMA = 44 # ,
51
- GLFW_KEY_MINUS = 45 # -
52
- GLFW_KEY_PERIOD = 46 # .
53
- GLFW_KEY_SLASH = 47 # /
54
- GLFW_KEY_0 = 48
55
- GLFW_KEY_1 = 49
56
- GLFW_KEY_2 = 50
57
- GLFW_KEY_3 = 51
58
- GLFW_KEY_4 = 52
59
- GLFW_KEY_5 = 53
60
- GLFW_KEY_6 = 54
61
- GLFW_KEY_7 = 55
62
- GLFW_KEY_8 = 56
63
- GLFW_KEY_9 = 57
64
- GLFW_KEY_SEMICOLON = 59 # ;
65
- GLFW_KEY_EQUAL = 61 # =
66
- GLFW_KEY_A = 65
67
- GLFW_KEY_B = 66
68
- GLFW_KEY_C = 67
69
- GLFW_KEY_D = 68
70
- GLFW_KEY_E = 69
71
- GLFW_KEY_F = 70
72
- GLFW_KEY_G = 71
73
- GLFW_KEY_H = 72
74
- GLFW_KEY_I = 73
75
- GLFW_KEY_J = 74
76
- GLFW_KEY_K = 75
77
- GLFW_KEY_L = 76
78
- GLFW_KEY_M = 77
79
- GLFW_KEY_N = 78
80
- GLFW_KEY_O = 79
81
- GLFW_KEY_P = 80
82
- GLFW_KEY_Q = 81
83
- GLFW_KEY_R = 82
84
- GLFW_KEY_S = 83
85
- GLFW_KEY_T = 84
86
- GLFW_KEY_U = 85
87
- GLFW_KEY_V = 86
88
- GLFW_KEY_W = 87
89
- GLFW_KEY_X = 88
90
- GLFW_KEY_Y = 89
91
- GLFW_KEY_Z = 90
92
- GLFW_KEY_LEFT_BRACKET = 91 # [
93
- GLFW_KEY_BACKSLASH = 92 # \
94
- GLFW_KEY_RIGHT_BRACKET = 93 # ]
95
- GLFW_KEY_GRAVE_ACCENT = 96 # `
96
- GLFW_KEY_WORLD_1 = 161 # non-US #1
97
- GLFW_KEY_WORLD_2 = 162 # non-US #2
98
-
99
- GLFW_KEY_ESCAPE = 256
100
- GLFW_KEY_ENTER = 257
101
- GLFW_KEY_TAB = 258
102
- GLFW_KEY_BACKSPACE = 259
103
- GLFW_KEY_INSERT = 260
104
- GLFW_KEY_DELETE = 261
105
- GLFW_KEY_RIGHT = 262
106
- GLFW_KEY_LEFT = 263
107
- GLFW_KEY_DOWN = 264
108
- GLFW_KEY_UP = 265
109
- GLFW_KEY_PAGE_UP = 266
110
- GLFW_KEY_PAGE_DOWN = 267
111
- GLFW_KEY_HOME = 268
112
- GLFW_KEY_END = 269
113
- GLFW_KEY_CAPS_LOCK = 280
114
- GLFW_KEY_SCROLL_LOCK = 281
115
- GLFW_KEY_NUM_LOCK = 282
116
- GLFW_KEY_PRINT_SCREEN = 283
117
- GLFW_KEY_PAUSE = 284
118
- GLFW_KEY_F1 = 290
119
- GLFW_KEY_F2 = 291
120
- GLFW_KEY_F3 = 292
121
- GLFW_KEY_F4 = 293
122
- GLFW_KEY_F5 = 294
123
- GLFW_KEY_F6 = 295
124
- GLFW_KEY_F7 = 296
125
- GLFW_KEY_F8 = 297
126
- GLFW_KEY_F9 = 298
127
- GLFW_KEY_F10 = 299
128
- GLFW_KEY_F11 = 300
129
- GLFW_KEY_F12 = 301
130
- GLFW_KEY_F13 = 302
131
- GLFW_KEY_F14 = 303
132
- GLFW_KEY_F15 = 304
133
- GLFW_KEY_F16 = 305
134
- GLFW_KEY_F17 = 306
135
- GLFW_KEY_F18 = 307
136
- GLFW_KEY_F19 = 308
137
- GLFW_KEY_F20 = 309
138
- GLFW_KEY_F21 = 310
139
- GLFW_KEY_F22 = 311
140
- GLFW_KEY_F23 = 312
141
- GLFW_KEY_F24 = 313
142
- GLFW_KEY_F25 = 314
143
- GLFW_KEY_KP_0 = 320
144
- GLFW_KEY_KP_1 = 321
145
- GLFW_KEY_KP_2 = 322
146
- GLFW_KEY_KP_3 = 323
147
- GLFW_KEY_KP_4 = 324
148
- GLFW_KEY_KP_5 = 325
149
- GLFW_KEY_KP_6 = 326
150
- GLFW_KEY_KP_7 = 327
151
- GLFW_KEY_KP_8 = 328
152
- GLFW_KEY_KP_9 = 329
153
- GLFW_KEY_KP_DECIMAL = 330
154
- GLFW_KEY_KP_DIVIDE = 331
155
- GLFW_KEY_KP_MULTIPLY = 332
156
- GLFW_KEY_KP_SUBTRACT = 333
157
- GLFW_KEY_KP_ADD = 334
158
- GLFW_KEY_KP_ENTER = 335
159
- GLFW_KEY_KP_EQUAL = 336
160
- GLFW_KEY_LEFT_SHIFT = 340
161
- GLFW_KEY_LEFT_CONTROL = 341
162
- GLFW_KEY_LEFT_ALT = 342
163
- GLFW_KEY_LEFT_SUPER = 343
164
- GLFW_KEY_RIGHT_SHIFT = 344
165
- GLFW_KEY_RIGHT_CONTROL = 345
166
- GLFW_KEY_RIGHT_ALT = 346
167
- GLFW_KEY_RIGHT_SUPER = 347
168
- GLFW_KEY_MENU = 348
169
- GLFW_KEY_LAST = GLFW_KEY_MENU
170
-
171
- GLFW_MOD_SHIFT = 0x0001
172
- GLFW_MOD_CONTROL = 0x0002
173
- GLFW_MOD_ALT = 0x0004
174
- GLFW_MOD_SUPER = 0x0008
175
-
176
- GLFW_MOUSE_BUTTON_1 = 0
177
- GLFW_MOUSE_BUTTON_2 = 1
178
- GLFW_MOUSE_BUTTON_3 = 2
179
- GLFW_MOUSE_BUTTON_4 = 3
180
- GLFW_MOUSE_BUTTON_5 = 4
181
- GLFW_MOUSE_BUTTON_6 = 5
182
- GLFW_MOUSE_BUTTON_7 = 6
183
- GLFW_MOUSE_BUTTON_8 = 7
184
- GLFW_MOUSE_BUTTON_LAST = GLFW_MOUSE_BUTTON_8
185
- GLFW_MOUSE_BUTTON_LEFT = GLFW_MOUSE_BUTTON_1
186
- GLFW_MOUSE_BUTTON_RIGHT = GLFW_MOUSE_BUTTON_2
187
- GLFW_MOUSE_BUTTON_MIDDLE = GLFW_MOUSE_BUTTON_3
188
-
189
- GLFW_JOYSTICK_1 = 0
190
- GLFW_JOYSTICK_2 = 1
191
- GLFW_JOYSTICK_3 = 2
192
- GLFW_JOYSTICK_4 = 3
193
- GLFW_JOYSTICK_5 = 4
194
- GLFW_JOYSTICK_6 = 5
195
- GLFW_JOYSTICK_7 = 6
196
- GLFW_JOYSTICK_8 = 7
197
- GLFW_JOYSTICK_9 = 8
198
- GLFW_JOYSTICK_10 = 9
199
- GLFW_JOYSTICK_11 = 10
200
- GLFW_JOYSTICK_12 = 11
201
- GLFW_JOYSTICK_13 = 12
202
- GLFW_JOYSTICK_14 = 13
203
- GLFW_JOYSTICK_15 = 14
204
- GLFW_JOYSTICK_16 = 15
205
- GLFW_JOYSTICK_LAST = GLFW_JOYSTICK_16
206
-
207
- GLFW_NOT_INITIALIZED = 0x00010001
208
- GLFW_NO_CURRENT_CONTEXT = 0x00010002
209
- GLFW_INVALID_ENUM = 0x00010003
210
- GLFW_INVALID_VALUE = 0x00010004
211
- GLFW_OUT_OF_MEMORY = 0x00010005
212
- GLFW_API_UNAVAILABLE = 0x00010006
213
- GLFW_VERSION_UNAVAILABLE = 0x00010007
214
- GLFW_PLATFORM_ERROR = 0x00010008
215
- GLFW_FORMAT_UNAVAILABLE = 0x00010009
216
-
217
- GLFW_FOCUSED = 0x00020001
218
- GLFW_ICONIFIED = 0x00020002
219
- GLFW_RESIZABLE = 0x00020003
220
- GLFW_VISIBLE = 0x00020004
221
- GLFW_DECORATED = 0x00020005
222
-
223
- GLFW_RED_BITS = 0x00021001
224
- GLFW_GREEN_BITS = 0x00021002
225
- GLFW_BLUE_BITS = 0x00021003
226
- GLFW_ALPHA_BITS = 0x00021004
227
- GLFW_DEPTH_BITS = 0x00021005
228
- GLFW_STENCIL_BITS = 0x00021006
229
- GLFW_ACCUM_RED_BITS = 0x00021007
230
- GLFW_ACCUM_GREEN_BITS = 0x00021008
231
- GLFW_ACCUM_BLUE_BITS = 0x00021009
232
- GLFW_ACCUM_ALPHA_BITS = 0x0002100A
233
- GLFW_AUX_BUFFERS = 0x0002100B
234
- GLFW_STEREO = 0x0002100C
235
- GLFW_SAMPLES = 0x0002100D
236
- GLFW_SRGB_CAPABLE = 0x0002100E
237
- GLFW_REFRESH_RATE = 0x0002100F
238
-
239
- GLFW_CLIENT_API = 0x00022001
240
- GLFW_CONTEXT_VERSION_MAJOR = 0x00022002
241
- GLFW_CONTEXT_VERSION_MINOR = 0x00022003
242
- GLFW_CONTEXT_REVISION = 0x00022004
243
- GLFW_CONTEXT_ROBUSTNESS = 0x00022005
244
- GLFW_OPENGL_FORWARD_COMPAT = 0x00022006
245
- GLFW_OPENGL_DEBUG_CONTEXT = 0x00022007
246
- GLFW_OPENGL_PROFILE = 0x00022008
247
-
248
- GLFW_OPENGL_API = 0x00030001
249
- GLFW_OPENGL_ES_API = 0x00030002
250
-
251
- GLFW_NO_ROBUSTNESS = 0
252
- GLFW_NO_RESET_NOTIFICATION = 0x00031001
253
- GLFW_LOSE_CONTEXT_ON_RESET = 0x00031002
254
-
255
- GLFW_OPENGL_ANY_PROFILE = 0
256
- GLFW_OPENGL_CORE_PROFILE = 0x00032001
257
- GLFW_OPENGL_COMPAT_PROFILE = 0x00032002
258
-
259
- GLFW_CURSOR = 0x00033001
260
- GLFW_STICKY_KEYS = 0x00033002
261
- GLFW_STICKY_MOUSE_BUTTONS = 0x00033003
262
-
263
- GLFW_CURSOR_NORMAL = 0x00034001
264
- GLFW_CURSOR_HIDDEN = 0x00034002
265
- GLFW_CURSOR_DISABLED = 0x00034003
266
-
267
- GLFW_CONNECTED = 0x00040001
268
- GLFW_DISCONNECTED = 0x00040002
269
-
270
- # typedefs
271
- @@glfw_cb_function_signature = {
272
- :GLFWerrorfun => "void GLFWerrorfun(int,const char*)",
273
- :GLFWwindowposfun => "void GLFWwindowposfun(void*,int,int)",
274
- :GLFWwindowsizefun => "void GLFWwindowsizefun(void*,int,int)",
275
- :GLFWwindowclosefun => "void GLFWwindowclosefun(void*)",
276
- :GLFWwindowrefreshfun => "void GLFWwindowrefreshfun(void*)",
277
- :GLFWwindowfocusfun => "void GLFWwindowfocusfun(void*,int)",
278
- :GLFWwindowiconifyfun => "void GLFWwindowiconifyfun(void*,int)",
279
- :GLFWframebuffersizefun => "void GLFWframebuffersizefun(void*,int,int)",
280
- :GLFWmousebuttonfun => "void GLFWmousebuttonfun(void*,int,int,int)",
281
- :GLFWcursorposfun => "void GLFWcursorposfun(void*,double,double)",
282
- :GLFWcursorenterfun => "void GLFWcursorenterfun(void*,int)",
283
- :GLFWscrollfun => "void GLFWscrollfun(void*,double,double)",
284
- :GLFWkeyfun => "void GLFWkeyfun(void*,int,int,int,int)",
285
- :GLFWcharfun => "void GLFWcharfun(void*,unsigned int)",
286
- :GLFWmonitorfun => "void GLFWmonitorfun(void*,int)",
287
- }
288
-
289
- # Creates a callback as an instance of Fiddle::Function
290
- def self.create_callback_function( sym, proc=nil, &blk )
291
- if block_given?
292
- return bind( @@glfw_cb_function_signature[sym], nil, &blk )
293
- else
294
- return bind( @@glfw_cb_function_signature[sym], nil, &proc )
295
- end
296
- end
297
-
298
- GLFWerrorfun_cb_args = [Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
299
- GLFWerrorfun_cb_retval = Fiddle::TYPE_VOID
300
- GLFWwindowposfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
301
- GLFWwindowposfun_cb_retval = Fiddle::TYPE_VOID
302
- GLFWwindowsizefun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
303
- GLFWwindowsizefun_cb_retval = Fiddle::TYPE_VOID
304
- GLFWwindowclosefun_cb_args = [Fiddle::TYPE_VOIDP]
305
- GLFWwindowclosefun_cb_retval = Fiddle::TYPE_VOID
306
- GLFWwindowrefreshfun_cb_args = [Fiddle::TYPE_VOIDP]
307
- GLFWwindowrefreshfun_cb_retval = Fiddle::TYPE_VOID
308
- GLFWwindowfocusfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
309
- GLFWwindowfocusfun_cb_retval = Fiddle::TYPE_VOID
310
- GLFWwindowiconifyfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
311
- GLFWwindowiconifyfun_cb_retval = Fiddle::TYPE_VOID
312
- GLFWframebuffersizefun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
313
- GLFWframebuffersizefun_cb_retval = Fiddle::TYPE_VOID
314
- GLFWmousebuttonfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
315
- GLFWmousebuttonfun_cb_retval = Fiddle::TYPE_VOID
316
- GLFWcursorposfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
317
- GLFWcursorposfun_cb_retval = Fiddle::TYPE_VOID
318
- GLFWcursorenterfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
319
- GLFWcursorenterfun_cb_retval = Fiddle::TYPE_VOID
320
- GLFWscrollfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
321
- GLFWscrollfun_cb_retval = Fiddle::TYPE_VOID
322
- GLFWkeyfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
323
- GLFWkeyfun_cb_retval = Fiddle::TYPE_VOID
324
- GLFWcharfun_cb_args = [Fiddle::TYPE_VOIDP, -Fiddle::TYPE_INT]
325
- GLFWcharfun_cb_retval = Fiddle::TYPE_VOID
326
- GLFWmonitorfun_cb_args = [Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
327
- GLFWmonitorfun_cb_retval = Fiddle::TYPE_VOID
328
-
329
- @@glfw_cb_closure_signature = {
330
- :GLFWerrorfun => [GLFWerrorfun_cb_retval, GLFWerrorfun_cb_args],
331
- :GLFWwindowposfun => [GLFWwindowposfun_cb_retval, GLFWwindowposfun_cb_args],
332
- :GLFWwindowsizefun => [GLFWwindowsizefun_cb_retval, GLFWwindowsizefun_cb_args],
333
- :GLFWwindowclosefun => [GLFWwindowclosefun_cb_retval, GLFWwindowclosefun_cb_args],
334
- :GLFWwindowrefreshfun => [GLFWwindowrefreshfun_cb_retval, GLFWwindowrefreshfun_cb_args],
335
- :GLFWwindowfocusfun => [GLFWwindowfocusfun_cb_retval, GLFWwindowfocusfun_cb_args],
336
- :GLFWwindowiconifyfun => [GLFWwindowiconifyfun_cb_retval, GLFWwindowiconifyfun_cb_args],
337
- :GLFWframebuffersizefun => [GLFWframebuffersizefun_cb_retval, GLFWframebuffersizefun_cb_args],
338
- :GLFWmousebuttonfun => [GLFWmousebuttonfun_cb_retval, GLFWmousebuttonfun_cb_args],
339
- :GLFWcursorposfun => [GLFWcursorposfun_cb_retval, GLFWcursorposfun_cb_args],
340
- :GLFWcursorenterfun => [GLFWcursorenterfun_cb_retval, GLFWcursorenterfun_cb_args],
341
- :GLFWscrollfun => [GLFWscrollfun_cb_retval, GLFWscrollfun_cb_args],
342
- :GLFWkeyfun => [GLFWkeyfun_cb_retval, GLFWkeyfun_cb_args],
343
- :GLFWcharfun => [GLFWcharfun_cb_retval, GLFWcharfun_cb_args],
344
- :GLFWmonitorfun => [GLFWmonitorfun_cb_retval, GLFWmonitorfun_cb_args],
345
- }
346
-
347
- # Creates a callback as an instance of Fiddle::Closure::BlockCaller
348
- def self.create_callback_closure( sym, proc=nil, &blk )
349
- cb_retval = @@glfw_cb_closure_signature[sym][0]
350
- cb_args = @@glfw_cb_closure_signature[sym][1]
351
- if block_given?
352
- return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &blk )
353
- else
354
- return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &proc )
355
- end
356
- end
357
-
358
- # NOTE : Use 'create_callback_function' for backward compatibility.
359
- def self.create_callback( sym, proc=nil, &blk )
360
- return self.create_callback_closure( sym, proc, &blk )
361
- end
362
-
363
-
364
- # typedefs
365
- @@glfw_cb_signature = {
366
- :GLFWerrorfun => "void GLFWerrorfun(int,const char*)",
367
- :GLFWwindowposfun => "void GLFWwindowposfun(void*,int,int)",
368
- :GLFWwindowsizefun => "void GLFWwindowsizefun(void*,int,int)",
369
- :GLFWwindowclosefun => "void GLFWwindowclosefun(void*)",
370
- :GLFWwindowrefreshfun => "void GLFWwindowrefreshfun(void*)",
371
- :GLFWwindowfocusfun => "void GLFWwindowfocusfun(void*,int)",
372
- :GLFWwindowiconifyfun => "void GLFWwindowiconifyfun(void*,int)",
373
- :GLFWframebuffersizefun => "void GLFWframebuffersizefun(void*,int,int)",
374
- :GLFWmousebuttonfun => "void GLFWmousebuttonfun(void*,int,int,int)",
375
- :GLFWcursorposfun => "void GLFWcursorposfun(void*,double,double)",
376
- :GLFWcursorenterfun => "void GLFWcursorenterfun(void*,int)",
377
- :GLFWscrollfun => "void GLFWscrollfun(void*,double,double)",
378
- :GLFWkeyfun => "void GLFWkeyfun(void*,int,int,int,int)",
379
- :GLFWcharfun => "void GLFWcharfun(void*,unsigned int)",
380
- :GLFWmonitorfun => "void GLFWmonitorfun(void*,int)",
381
- }
382
-
383
- def self.create_callback( sym, proc=nil, &blk )
384
- if block_given?
385
- return bind( @@glfw_cb_signature[sym], nil, &blk )
386
- else
387
- return bind( @@glfw_cb_signature[sym], nil, &proc )
388
- end
389
- end
390
-
391
- # struct
392
- GLFWvidmode = struct(["int width",
393
- "int height",
394
- "int redBits",
395
- "int greenBits",
396
- "int blueBits",
397
- "int refreshRate"])
398
-
399
- GLFWgammaramp = struct(["unsigned short* red",
400
- "unsigned short* green",
401
- "unsigned short* blue",
402
- "unsigned int size"])
403
-
404
- @@glfw_import_done = false
405
-
406
- # Load native library.
407
- def self.load_lib(lib = nil, path = nil)
408
- if lib == nil && path == nil
409
- case OpenGL.get_platform
410
- when :OPENGL_PLATFORM_WINDOWS
411
- lib, path = 'GLFW3.dll', Dir.pwd
412
- when :OPENGL_PLATFORM_MACOSX
413
- lib, path = 'libglfw.dylib', Dir.pwd
414
- else
415
- lib = 'libglfw.so'
416
- end
417
- end
418
-
419
- if path
420
- dlload (path + '/' + lib)
421
- else
422
- dlload (lib)
423
- end
424
- import_symbols() unless @@glfw_import_done
425
- end
426
-
427
- def self.load_dll(lib = nil, path = nil)
428
- puts "Warning GLFW.load_dll is deprecated, use GLFW.load_lib instead"
429
- self.load_lib(lib, path)
430
- end
431
-
432
- def self.import_symbols
433
- # function
434
- extern 'int glfwInit()'
435
- extern 'void glfwTerminate()'
436
- extern 'void glfwGetVersion(int*, int*, int*)'
437
- extern 'const char* glfwGetVersionString()'
438
- extern 'void* glfwSetErrorCallback(void*)'
439
- extern 'void** glfwGetMonitors(int*)'
440
- extern 'void* glfwGetPrimaryMonitor()'
441
- extern 'void glfwGetMonitorPos(void*, int*, int*)'
442
- extern 'void glfwGetMonitorPhysicalSize(void*, int*, int*)'
443
- extern 'const char* glfwGetMonitorName(void*)'
444
- extern 'void* glfwSetMonitorCallback(void*)'
445
- extern 'const void* glfwGetVideoModes(void*, int*)'
446
- extern 'const void* glfwGetVideoMode(void*)'
447
- extern 'void glfwSetGamma(void*, float)'
448
- extern 'const void* glfwGetGammaRamp(void*)'
449
- extern 'void glfwSetGammaRamp(void*, const void*)'
450
- extern 'void glfwDefaultWindowHints()'
451
- extern 'void glfwWindowHint(int, int)'
452
- extern 'void* glfwCreateWindow(int, int, const char*, void*, void*)'
453
- extern 'void glfwDestroyWindow(void*)'
454
- extern 'int glfwWindowShouldClose(void*)'
455
- extern 'void glfwSetWindowShouldClose(void* window, int)'
456
- extern 'void glfwSetWindowTitle(void*, const char*)'
457
- extern 'void glfwGetWindowPos(void*, int*, int*)'
458
- extern 'void glfwSetWindowPos(void*, int, int)'
459
- extern 'void glfwGetWindowSize(void*, int*, int*)'
460
- extern 'void glfwSetWindowSize(void*, int, int)'
461
- extern 'void glfwGetFramebufferSize(void*, int*, int*)'
462
- extern 'void glfwIconifyWindow(void*)'
463
- extern 'void glfwRestoreWindow(void*)'
464
- extern 'void glfwShowWindow(void*)'
465
- extern 'void glfwHideWindow(void*)'
466
- extern 'void* glfwGetWindowMonitor(void*)'
467
- extern 'int glfwGetWindowAttrib(void*, int)'
468
- extern 'void glfwSetWindowUserPointer(void*, void*)'
469
- extern 'void* glfwGetWindowUserPointer(void*)'
470
- extern 'void* glfwSetWindowPosCallback(void*, void*)'
471
- extern 'void* glfwSetWindowSizeCallback(void*, void*)'
472
- extern 'void* glfwSetWindowCloseCallback(void*, void*)'
473
- extern 'void* glfwSetWindowRefreshCallback(void*, void*)'
474
- extern 'void* glfwSetWindowFocusCallback(void*, void*)'
475
- extern 'void* glfwSetWindowIconifyCallback(void*, void*)'
476
- extern 'void* glfwSetFramebufferSizeCallback(void*, void*)'
477
- extern 'void glfwPollEvents()'
478
- extern 'void glfwWaitEvents()'
479
- extern 'int glfwGetInputMode(void*, int)'
480
- extern 'void glfwSetInputMode(void*, int, int)'
481
- extern 'int glfwGetKey(void*, int)'
482
- extern 'int glfwGetMouseButton(void*, int)'
483
- extern 'void glfwGetCursorPos(void*, double*, double*)'
484
- extern 'void glfwSetCursorPos(void*, double, double)'
485
- extern 'void* glfwSetKeyCallback(void*, void*)'
486
- extern 'void* glfwSetCharCallback(void*, void*)'
487
- extern 'void* glfwSetMouseButtonCallback(void*, void*)'
488
- extern 'void* glfwSetCursorPosCallback(void*, void*)'
489
- extern 'void* glfwSetCursorEnterCallback(void*, void*)'
490
- extern 'void* glfwSetScrollCallback(void*, void*)'
491
- extern 'int glfwJoystickPresent(int)'
492
- extern 'const float* glfwGetJoystickAxes(int, int*)'
493
- extern 'const unsigned char* glfwGetJoystickButtons(int, int*)'
494
- extern 'const char* glfwGetJoystickName(int)'
495
- extern 'void glfwSetClipboardString(void*, const char*)'
496
- extern 'const char* glfwGetClipboardString(void*)'
497
- extern 'double glfwGetTime()'
498
- extern 'void glfwSetTime(double)'
499
- extern 'void glfwMakeContextCurrent(void*)'
500
- extern 'void* glfwGetCurrentContext()'
501
- extern 'void glfwSwapBuffers(void*)'
502
- extern 'void glfwSwapInterval(int)'
503
- extern 'int glfwExtensionSupported(const char*)'
504
- extern 'void* glfwGetProcAddress(const char*)'
505
-
506
- @@glfw_import_done = true
507
- end
508
-
509
- end