Module: GLFW
- Extended by:
- Fiddle::Importer
- Defined in:
- lib/glfw.rb,
lib/glfw30.rb
Constant Summary collapse
- GLFW_FUNCTIONS_MAP =
Fiddle’s default ‘extern’ stores all methods into local variable ‘@func_map’, that makes difficult to ‘include GLFW’. So I override it and replace ‘@func_map’ into ‘GLFW_FUNCTIONS_MAP’. Ref.: /lib/ruby/2.0.0/fiddle/import.rb
{}
- GLFW_VERSION_MAJOR =
defines
3
- GLFW_VERSION_MINOR =
0
- GLFW_VERSION_REVISION =
1
- GLFW_RELEASE =
0
- GLFW_PRESS =
1
- GLFW_REPEAT =
2
- GLFW_KEY_UNKNOWN =
-1
- GLFW_KEY_SPACE =
32
- GLFW_KEY_APOSTROPHE =
‘
39
- GLFW_KEY_COMMA =
,
44
- GLFW_KEY_MINUS =
-
45
- GLFW_KEY_PERIOD =
.
46
- GLFW_KEY_SLASH =
/
47
- GLFW_KEY_0 =
48
- GLFW_KEY_1 =
49
- GLFW_KEY_2 =
50
- GLFW_KEY_3 =
51
- GLFW_KEY_4 =
52
- GLFW_KEY_5 =
53
- GLFW_KEY_6 =
54
- GLFW_KEY_7 =
55
- GLFW_KEY_8 =
56
- GLFW_KEY_9 =
57
- GLFW_KEY_SEMICOLON =
;
59
- GLFW_KEY_EQUAL =
61
- GLFW_KEY_A =
65
- GLFW_KEY_B =
66
- GLFW_KEY_C =
67
- GLFW_KEY_D =
68
- GLFW_KEY_E =
69
- GLFW_KEY_F =
70
- GLFW_KEY_G =
71
- GLFW_KEY_H =
72
- GLFW_KEY_I =
73
- GLFW_KEY_J =
74
- GLFW_KEY_K =
75
- GLFW_KEY_L =
76
- GLFW_KEY_M =
77
- GLFW_KEY_N =
78
- GLFW_KEY_O =
79
- GLFW_KEY_P =
80
- GLFW_KEY_Q =
81
- GLFW_KEY_R =
82
- GLFW_KEY_S =
83
- GLFW_KEY_T =
84
- GLFW_KEY_U =
85
- GLFW_KEY_V =
86
- GLFW_KEY_W =
87
- GLFW_KEY_X =
88
- GLFW_KEY_Y =
89
- GLFW_KEY_Z =
90
- GLFW_KEY_LEFT_BRACKET =
[
91
- GLFW_KEY_BACKSLASH =
\
92
- GLFW_KEY_RIGHT_BRACKET =
]
93
- GLFW_KEY_GRAVE_ACCENT =
‘
96
- GLFW_KEY_WORLD_1 =
non-US #1
161
- GLFW_KEY_WORLD_2 =
non-US #2
162
- GLFW_KEY_ESCAPE =
256
- GLFW_KEY_ENTER =
257
- GLFW_KEY_TAB =
258
- GLFW_KEY_BACKSPACE =
259
- GLFW_KEY_INSERT =
260
- GLFW_KEY_DELETE =
261
- GLFW_KEY_RIGHT =
262
- GLFW_KEY_LEFT =
263
- GLFW_KEY_DOWN =
264
- GLFW_KEY_UP =
265
- GLFW_KEY_PAGE_UP =
266
- GLFW_KEY_PAGE_DOWN =
267
- GLFW_KEY_HOME =
268
- GLFW_KEY_END =
269
- GLFW_KEY_CAPS_LOCK =
280
- GLFW_KEY_SCROLL_LOCK =
281
- GLFW_KEY_NUM_LOCK =
282
- GLFW_KEY_PRINT_SCREEN =
283
- GLFW_KEY_PAUSE =
284
- GLFW_KEY_F1 =
290
- GLFW_KEY_F2 =
291
- GLFW_KEY_F3 =
292
- GLFW_KEY_F4 =
293
- GLFW_KEY_F5 =
294
- GLFW_KEY_F6 =
295
- GLFW_KEY_F7 =
296
- GLFW_KEY_F8 =
297
- GLFW_KEY_F9 =
298
- GLFW_KEY_F10 =
299
- GLFW_KEY_F11 =
300
- GLFW_KEY_F12 =
301
- GLFW_KEY_F13 =
302
- GLFW_KEY_F14 =
303
- GLFW_KEY_F15 =
304
- GLFW_KEY_F16 =
305
- GLFW_KEY_F17 =
306
- GLFW_KEY_F18 =
307
- GLFW_KEY_F19 =
308
- GLFW_KEY_F20 =
309
- GLFW_KEY_F21 =
310
- GLFW_KEY_F22 =
311
- GLFW_KEY_F23 =
312
- GLFW_KEY_F24 =
313
- GLFW_KEY_F25 =
314
- GLFW_KEY_KP_0 =
320
- GLFW_KEY_KP_1 =
321
- GLFW_KEY_KP_2 =
322
- GLFW_KEY_KP_3 =
323
- GLFW_KEY_KP_4 =
324
- GLFW_KEY_KP_5 =
325
- GLFW_KEY_KP_6 =
326
- GLFW_KEY_KP_7 =
327
- GLFW_KEY_KP_8 =
328
- GLFW_KEY_KP_9 =
329
- GLFW_KEY_KP_DECIMAL =
330
- GLFW_KEY_KP_DIVIDE =
331
- GLFW_KEY_KP_MULTIPLY =
332
- GLFW_KEY_KP_SUBTRACT =
333
- GLFW_KEY_KP_ADD =
334
- GLFW_KEY_KP_ENTER =
335
- GLFW_KEY_KP_EQUAL =
336
- GLFW_KEY_LEFT_SHIFT =
340
- GLFW_KEY_LEFT_CONTROL =
341
- GLFW_KEY_LEFT_ALT =
342
- GLFW_KEY_LEFT_SUPER =
343
- GLFW_KEY_RIGHT_SHIFT =
344
- GLFW_KEY_RIGHT_CONTROL =
345
- GLFW_KEY_RIGHT_ALT =
346
- GLFW_KEY_RIGHT_SUPER =
347
- GLFW_KEY_MENU =
348
- GLFW_KEY_LAST =
GLFW_KEY_MENU
- GLFW_MOD_SHIFT =
0x0001
- GLFW_MOD_CONTROL =
0x0002
- GLFW_MOD_ALT =
0x0004
- GLFW_MOD_SUPER =
0x0008
- GLFW_MOUSE_BUTTON_1 =
0
- GLFW_MOUSE_BUTTON_2 =
1
- GLFW_MOUSE_BUTTON_3 =
2
- GLFW_MOUSE_BUTTON_4 =
3
- GLFW_MOUSE_BUTTON_5 =
4
- GLFW_MOUSE_BUTTON_6 =
5
- GLFW_MOUSE_BUTTON_7 =
6
- GLFW_MOUSE_BUTTON_8 =
7
- GLFW_MOUSE_BUTTON_LAST =
GLFW_MOUSE_BUTTON_8
- GLFW_MOUSE_BUTTON_LEFT =
GLFW_MOUSE_BUTTON_1
- GLFW_MOUSE_BUTTON_RIGHT =
GLFW_MOUSE_BUTTON_2
- GLFW_MOUSE_BUTTON_MIDDLE =
GLFW_MOUSE_BUTTON_3
- GLFW_JOYSTICK_1 =
0
- GLFW_JOYSTICK_2 =
1
- GLFW_JOYSTICK_3 =
2
- GLFW_JOYSTICK_4 =
3
- GLFW_JOYSTICK_5 =
4
- GLFW_JOYSTICK_6 =
5
- GLFW_JOYSTICK_7 =
6
- GLFW_JOYSTICK_8 =
7
- GLFW_JOYSTICK_9 =
8
- GLFW_JOYSTICK_10 =
9
- GLFW_JOYSTICK_11 =
10
- GLFW_JOYSTICK_12 =
11
- GLFW_JOYSTICK_13 =
12
- GLFW_JOYSTICK_14 =
13
- GLFW_JOYSTICK_15 =
14
- GLFW_JOYSTICK_16 =
15
- GLFW_JOYSTICK_LAST =
GLFW_JOYSTICK_16
- GLFW_NOT_INITIALIZED =
0x00010001
- GLFW_NO_CURRENT_CONTEXT =
0x00010002
- GLFW_INVALID_ENUM =
0x00010003
- GLFW_INVALID_VALUE =
0x00010004
- GLFW_OUT_OF_MEMORY =
0x00010005
- GLFW_API_UNAVAILABLE =
0x00010006
- GLFW_VERSION_UNAVAILABLE =
0x00010007
- GLFW_PLATFORM_ERROR =
0x00010008
- GLFW_FORMAT_UNAVAILABLE =
0x00010009
- GLFW_FOCUSED =
0x00020001
- GLFW_ICONIFIED =
0x00020002
- GLFW_RESIZABLE =
0x00020003
- GLFW_VISIBLE =
0x00020004
- GLFW_DECORATED =
0x00020005
- GLFW_AUTO_ICONIFY =
0x00020006
- GLFW_FLOATING =
0x00020007
- GLFW_RED_BITS =
0x00021001
- GLFW_GREEN_BITS =
0x00021002
- GLFW_BLUE_BITS =
0x00021003
- GLFW_ALPHA_BITS =
0x00021004
- GLFW_DEPTH_BITS =
0x00021005
- GLFW_STENCIL_BITS =
0x00021006
- GLFW_ACCUM_RED_BITS =
0x00021007
- GLFW_ACCUM_GREEN_BITS =
0x00021008
- GLFW_ACCUM_BLUE_BITS =
0x00021009
- GLFW_ACCUM_ALPHA_BITS =
0x0002100A
- GLFW_AUX_BUFFERS =
0x0002100B
- GLFW_STEREO =
0x0002100C
- GLFW_SAMPLES =
0x0002100D
- GLFW_SRGB_CAPABLE =
0x0002100E
- GLFW_REFRESH_RATE =
0x0002100F
- GLFW_DOUBLEBUFFER =
0x00021010
- GLFW_CLIENT_API =
0x00022001
- GLFW_CONTEXT_VERSION_MAJOR =
0x00022002
- GLFW_CONTEXT_VERSION_MINOR =
0x00022003
- GLFW_CONTEXT_REVISION =
0x00022004
- GLFW_CONTEXT_ROBUSTNESS =
0x00022005
- GLFW_OPENGL_FORWARD_COMPAT =
0x00022006
- GLFW_OPENGL_DEBUG_CONTEXT =
0x00022007
- GLFW_OPENGL_PROFILE =
0x00022008
- GLFW_CONTEXT_RELEASE_BEHAVIOR =
0x00022009
- GLFW_OPENGL_API =
0x00030001
- GLFW_OPENGL_ES_API =
0x00030002
- GLFW_NO_ROBUSTNESS =
0
- GLFW_NO_RESET_NOTIFICATION =
0x00031001
- GLFW_LOSE_CONTEXT_ON_RESET =
0x00031002
- GLFW_OPENGL_ANY_PROFILE =
0
- GLFW_OPENGL_CORE_PROFILE =
0x00032001
- GLFW_OPENGL_COMPAT_PROFILE =
0x00032002
- GLFW_CURSOR =
0x00033001
- GLFW_STICKY_KEYS =
0x00033002
- GLFW_STICKY_MOUSE_BUTTONS =
0x00033003
- GLFW_CURSOR_NORMAL =
0x00034001
- GLFW_CURSOR_HIDDEN =
0x00034002
- GLFW_CURSOR_DISABLED =
0x00034003
- GLFW_ANY_RELEASE_BEHAVIOR =
0
- GLFW_RELEASE_BEHAVIOR_FLUSH =
0x00035001
- GLFW_RELEASE_BEHAVIOR_NONE =
0x00035002
- GLFW_ARROW_CURSOR =
0x00036001
- GLFW_IBEAM_CURSOR =
0x00036002
- GLFW_CROSSHAIR_CURSOR =
0x00036003
- GLFW_HAND_CURSOR =
0x00036004
- GLFW_HRESIZE_CURSOR =
0x00036005
- GLFW_VRESIZE_CURSOR =
0x00036006
- GLFW_CONNECTED =
0x00040001
- GLFW_DISCONNECTED =
0x00040002
- GLFW_DONT_CARE =
-1
- GLFWvidmode =
struct
struct(["int width", "int height", "int redBits", "int greenBits", "int blueBits", "int refreshRate"])
- GLFWgammaramp =
struct(["unsigned short* red", "unsigned short* green", "unsigned short* blue", "unsigned int size"])
- GLFWimage =
struct(["int width", "int height", "unsigned char* pixels"])
- @@glfw_cb_signature =
typedefs
{ :GLFWglproc => "void GLFWglproc()", :GLFWerrorfun => "void GLFWerrorfun(int,const char*)", :GLFWwindowposfun => "void GLFWwindowposfun(void*,int,int)", :GLFWwindowsizefun => "void GLFWwindowsizefun(void*,int,int)", :GLFWwindowclosefun => "void GLFWwindowclosefun(void*)", :GLFWwindowrefreshfun => "void GLFWwindowrefreshfun(void*)", :GLFWwindowfocusfun => "void GLFWwindowfocusfun(void*,int)", :GLFWwindowiconifyfun => "void GLFWwindowiconifyfun(void*,int)", :GLFWframebuffersizefun => "void GLFWframebuffersizefun(void*,int,int)", :GLFWmousebuttonfun => "void GLFWmousebuttonfun(void*,int,int,int)", :GLFWcursorposfun => "void GLFWcursorposfun(void*,double,double)", :GLFWcursorenterfun => "void GLFWcursorenterfun(void*,int)", :GLFWscrollfun => "void GLFWscrollfun(void*,double,double)", :GLFWkeyfun => "void GLFWkeyfun(void*,int,int,int,int)", :GLFWcharfun => "void GLFWcharfun(void*,unsigned int)", :GLFWmonitorfun => "void GLFWmonitorfun(void*,int)", }
- @@glfw_import_done =
false
Class Method Summary collapse
- .create_callback(sym, proc = nil, &blk) ⇒ Object
- .extern(signature, *opts) ⇒ Object
- .import_symbols ⇒ Object
- .load_dll(lib = nil, path = nil) ⇒ Object
-
.load_lib(lib = nil, path = nil) ⇒ Object
Load native library.
Class Method Details
.create_callback(sym, proc = nil, &blk) ⇒ Object
308 309 310 311 312 313 314 |
# File 'lib/glfw.rb', line 308 def self.create_callback( sym, proc=nil, &blk ) if block_given? return bind( @@glfw_cb_signature[sym], nil, &blk ) else return bind( @@glfw_cb_signature[sym], nil, &proc ) end end |
.extern(signature, *opts) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/glfw.rb', line 14 def self.extern(signature, *opts) symname, ctype, argtype = parse_signature(signature, @type_alias) opt = (opts) f = import_function(symname, ctype, argtype, opt[:call_type]) name = symname.gsub(/@.+/,'') GLFW_FUNCTIONS_MAP[name] = f begin /^(.+?):(\d+)/ =~ caller.first file, line = $1, $2.to_i rescue file, line = __FILE__, __LINE__+3 end args_str="*args" module_eval(<<-EOS, file, line) def #{name}(*args, &block) GLFW_FUNCTIONS_MAP['#{name}'].call(*args,&block) end EOS module_function(name) f end |
.import_symbols ⇒ Object
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
# File 'lib/glfw.rb', line 361 def self.import_symbols # function extern 'int glfwInit()' extern 'void glfwTerminate()' extern 'void glfwGetVersion(int*, int*, int*)' extern 'const char* glfwGetVersionString()' extern 'void* glfwSetErrorCallback(void*)' extern 'void** glfwGetMonitors(int*)' extern 'void* glfwGetPrimaryMonitor()' extern 'void glfwGetMonitorPos(void*, int*, int*)' extern 'void glfwGetMonitorPhysicalSize(void*, int*, int*)' extern 'const char* glfwGetMonitorName(void*)' extern 'void* glfwSetMonitorCallback(void*)' extern 'const void* glfwGetVideoModes(void*, int*)' extern 'const void* glfwGetVideoMode(void*)' extern 'void glfwSetGamma(void*, float)' extern 'const void* glfwGetGammaRamp(void*)' extern 'void glfwSetGammaRamp(void*, const void*)' extern 'void glfwDefaultWindowHints()' extern 'void glfwWindowHint(int, int)' extern 'void* glfwCreateWindow(int, int, const char*, void*, void*)' extern 'void glfwDestroyWindow(void*)' extern 'int glfwWindowShouldClose(void*)' extern 'void glfwSetWindowShouldClose(void* window, int)' extern 'void glfwSetWindowTitle(void*, const char*)' extern 'void glfwGetWindowPos(void*, int*, int*)' extern 'void glfwSetWindowPos(void*, int, int)' extern 'void glfwGetWindowSize(void*, int*, int*)' extern 'void glfwSetWindowSize(void*, int, int)' extern 'void glfwGetFramebufferSize(void*, int*, int*)' extern 'void glfwGetWindowFrameSize(void*, int*, int*, int*, int*)' extern 'void glfwIconifyWindow(void*)' extern 'void glfwRestoreWindow(void*)' extern 'void glfwShowWindow(void*)' extern 'void glfwHideWindow(void*)' extern 'void* glfwGetWindowMonitor(void*)' extern 'int glfwGetWindowAttrib(void*, int)' extern 'void glfwSetWindowUserPointer(void*, void*)' extern 'void* glfwGetWindowUserPointer(void*)' extern 'void* glfwSetWindowPosCallback(void*, void*)' extern 'void* glfwSetWindowSizeCallback(void*, void*)' extern 'void* glfwSetWindowCloseCallback(void*, void*)' extern 'void* glfwSetWindowRefreshCallback(void*, void*)' extern 'void* glfwSetWindowFocusCallback(void*, void*)' extern 'void* glfwSetWindowIconifyCallback(void*, void*)' extern 'void* glfwSetFramebufferSizeCallback(void*, void*)' extern 'void glfwPollEvents()' extern 'void glfwWaitEvents()' extern 'void glfwPostEmptyEvent()' extern 'int glfwGetInputMode(void*, int)' extern 'void glfwSetInputMode(void*, int, int)' extern 'int glfwGetKey(void*, int)' extern 'int glfwGetMouseButton(void*, int)' extern 'void glfwGetCursorPos(void*, double*, double*)' extern 'void glfwSetCursorPos(void*, double, double)' extern 'void* glfwCreateCursor(void*, int, int)' extern 'void* glfwCreateStandardCursor(int)' extern 'void glfwDestroyCursor(void*)' extern 'void glfwSetCursor(void*, void*)' extern 'void* glfwSetKeyCallback(void*, void*)' extern 'void* glfwSetCharCallback(void*, void*)' extern 'void* glfwSetCharModsCallback(void*, void*)' extern 'void* glfwSetMouseButtonCallback(void*, void*)' extern 'void* glfwSetCursorPosCallback(void*, void*)' extern 'void* glfwSetCursorEnterCallback(void*, void*)' extern 'void* glfwSetScrollCallback(void*, void*)' extern 'void* glfwSetDropCallback(void*, void*)' extern 'int glfwJoystickPresent(int)' extern 'const float* glfwGetJoystickAxes(int, int*)' extern 'const unsigned char* glfwGetJoystickButtons(int, int*)' extern 'const char* glfwGetJoystickName(int)' extern 'void glfwSetClipboardString(void*, const char*)' extern 'const char* glfwGetClipboardString(void*)' extern 'double glfwGetTime()' extern 'void glfwSetTime(double)' extern 'void glfwMakeContextCurrent(void*)' extern 'void* glfwGetCurrentContext()' extern 'void glfwSwapBuffers(void*)' extern 'void glfwSwapInterval(int)' extern 'int glfwExtensionSupported(const char*)' extern 'void* glfwGetProcAddress(const char*)' @@glfw_import_done = true end |
.load_dll(lib = nil, path = nil) ⇒ Object
356 357 358 359 |
# File 'lib/glfw.rb', line 356 def self.load_dll(lib = nil, path = nil) puts "Warning GLFW.load_dll is deprecated, use GLFW.load_lib instead" self.load_lib(lib, path) end |
.load_lib(lib = nil, path = nil) ⇒ Object
Load native library.
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 |
# File 'lib/glfw.rb', line 336 def self.load_lib(lib = nil, path = nil) if lib == nil && path == nil case OpenGL.get_platform when :OPENGL_PLATFORM_WINDOWS lib, path = 'GLFW3.dll', Dir.pwd when :OPENGL_PLATFORM_MACOSX lib, path = 'libglfw.dylib', Dir.pwd else lib = 'libglfw.so' end end if path dlload (path + '/' + lib) else dlload (lib) end import_symbols() unless @@glfw_import_done end |