Module: GLFW

Extended by:
Fiddle::Importer
Defined in:
lib/glfw.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_TRUE =

defines

1
GLFW_FALSE =

Available since GLFW 3.2

0
GLFW_RELEASE =

Available since GLFW 3.2

0
GLFW_PRESS =
1
GLFW_REPEAT =
2
GLFW_HAT_CENTERED =

Available since GLFW 3.3

0
GLFW_HAT_UP =

Available since GLFW 3.3

1
GLFW_HAT_RIGHT =

Available since GLFW 3.3

2
GLFW_HAT_DOWN =

Available since GLFW 3.3

4
GLFW_HAT_LEFT =

Available since GLFW 3.3

8
GLFW_HAT_RIGHT_UP =

Available since GLFW 3.3

(GLFW_HAT_RIGHT | GLFW_HAT_UP)
GLFW_HAT_RIGHT_DOWN =

Available since GLFW 3.3

(GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
GLFW_HAT_LEFT_UP =

Available since GLFW 3.3

(GLFW_HAT_LEFT  | GLFW_HAT_UP)
GLFW_HAT_LEFT_DOWN =

Available since GLFW 3.3

(GLFW_HAT_LEFT  | GLFW_HAT_DOWN)
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_MOD_CAPS_LOCK =

Available since GLFW 3.3

0x0010
GLFW_MOD_NUM_LOCK =

Available since GLFW 3.3

0x0020
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_GAMEPAD_BUTTON_A =

Available since GLFW 3.3

0
GLFW_GAMEPAD_BUTTON_B =

Available since GLFW 3.3

1
GLFW_GAMEPAD_BUTTON_X =

Available since GLFW 3.3

2
GLFW_GAMEPAD_BUTTON_Y =

Available since GLFW 3.3

3
GLFW_GAMEPAD_BUTTON_LEFT_BUMPER =

Available since GLFW 3.3

4
GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER =

Available since GLFW 3.3

5
GLFW_GAMEPAD_BUTTON_BACK =

Available since GLFW 3.3

6
GLFW_GAMEPAD_BUTTON_START =

Available since GLFW 3.3

7
GLFW_GAMEPAD_BUTTON_GUIDE =

Available since GLFW 3.3

8
GLFW_GAMEPAD_BUTTON_LEFT_THUMB =

Available since GLFW 3.3

9
GLFW_GAMEPAD_BUTTON_RIGHT_THUMB =

Available since GLFW 3.3

10
GLFW_GAMEPAD_BUTTON_DPAD_UP =

Available since GLFW 3.3

11
GLFW_GAMEPAD_BUTTON_DPAD_RIGHT =

Available since GLFW 3.3

12
GLFW_GAMEPAD_BUTTON_DPAD_DOWN =

Available since GLFW 3.3

13
GLFW_GAMEPAD_BUTTON_DPAD_LEFT =

Available since GLFW 3.3

14
GLFW_GAMEPAD_BUTTON_LAST =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_DPAD_LEFT
GLFW_GAMEPAD_BUTTON_CROSS =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_A
GLFW_GAMEPAD_BUTTON_CIRCLE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_B
GLFW_GAMEPAD_BUTTON_SQUARE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_X
GLFW_GAMEPAD_BUTTON_TRIANGLE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_Y
GLFW_GAMEPAD_AXIS_LEFT_X =

Available since GLFW 3.3

0
GLFW_GAMEPAD_AXIS_LEFT_Y =

Available since GLFW 3.3

1
GLFW_GAMEPAD_AXIS_RIGHT_X =

Available since GLFW 3.3

2
GLFW_GAMEPAD_AXIS_RIGHT_Y =

Available since GLFW 3.3

3
GLFW_GAMEPAD_AXIS_LEFT_TRIGGER =

Available since GLFW 3.3

4
GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER =

Available since GLFW 3.3

5
GLFW_GAMEPAD_AXIS_LAST =

Available since GLFW 3.3

GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
GLFW_NO_ERROR =

Available since GLFW 3.3

0
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_NO_WINDOW_CONTEXT =

Available since GLFW 3.2

0x0001000A
GLFW_FOCUSED =
0x00020001
GLFW_ICONIFIED =
0x00020002
GLFW_RESIZABLE =
0x00020003
GLFW_VISIBLE =
0x00020004
GLFW_DECORATED =
0x00020005
GLFW_AUTO_ICONIFY =

Available since GLFW 3.1

0x00020006
GLFW_FLOATING =

Available since GLFW 3.1

0x00020007
GLFW_MAXIMIZED =

Available since GLFW 3.2

0x00020008
GLFW_CENTER_CURSOR =

Available since GLFW 3.3

0x00020009
GLFW_TRANSPARENT_FRAMEBUFFER =

Available since GLFW 3.3

0x0002000A
GLFW_HOVERED =

Available since GLFW 3.3

0x0002000B
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_CONTEXT_NO_ERROR =
0x0002200A
GLFW_CONTEXT_CREATION_API =

Available since GLFW 3.2

0x0002200B
GLFW_COCOA_RETINA_FRAMEBUFFER =

Available since GLFW 3.3

0x00023001
GLFW_COCOA_FRAME_NAME =

Available since GLFW 3.3

0x00023002
GLFW_COCOA_GRAPHICS_SWITCHING =

Available since GLFW 3.3

0x00023003
GLFW_X11_CLASS_NAME =

Available since GLFW 3.3

0x00024001
GLFW_X11_INSTANCE_NAME =

Available since GLFW 3.3

0x00024002
GLFW_NO_API =

Available since GLFW 3.2

0
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_LOCK_KEY_MODS =

Available since GLFW 3.3

0x00033004
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_NATIVE_CONTEXT_API =

Available since GLFW 3.2

0x00036001
GLFW_EGL_CONTEXT_API =

Available since GLFW 3.2

0x00036002
GLFW_OSMESA_CONTEXT_API =

Available since GLFW 3.3

0x00036003
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_JOYSTICK_HAT_BUTTONS =

Available since GLFW 3.3

0x00050001
GLFW_COCOA_CHDIR_RESOURCES =

Available since GLFW 3.3

0x00051001
GLFW_COCOA_MENUBAR =

Available since GLFW 3.3

0x00051002
GLFW_DONT_CARE =
-1
GLFWerrorfun_cb_args =
[Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
GLFWerrorfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowposfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWwindowposfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowsizefun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWwindowsizefun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowclosefun_cb_args =
[Fiddle::TYPE_VOIDP]
GLFWwindowclosefun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowrefreshfun_cb_args =
[Fiddle::TYPE_VOIDP]
GLFWwindowrefreshfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowfocusfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWwindowfocusfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowiconifyfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWwindowiconifyfun_cb_retval =
Fiddle::TYPE_VOID
GLFWframebuffersizefun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWframebuffersizefun_cb_retval =
Fiddle::TYPE_VOID
GLFWmousebuttonfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWmousebuttonfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcursorposfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
GLFWcursorposfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcursorenterfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWcursorenterfun_cb_retval =
Fiddle::TYPE_VOID
GLFWscrollfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
GLFWscrollfun_cb_retval =
Fiddle::TYPE_VOID
GLFWkeyfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWkeyfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcharfun_cb_args =
[Fiddle::TYPE_VOIDP, -Fiddle::TYPE_INT]
GLFWcharfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcharmodsfun_cb_args =

Available since GLFW 3.1

[Fiddle::TYPE_VOIDP, -Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWcharmodsfun_cb_retval =

Available since GLFW 3.1

Fiddle::TYPE_VOID
GLFWdropfun_cb_args =

Available since GLFW 3.1

[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
GLFWdropfun_cb_retval =

Available since GLFW 3.1

Fiddle::TYPE_VOID
GLFWmonitorfun_cb_args =

Available since GLFW 3.0

[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWmonitorfun_cb_retval =

Available since GLFW 3.0

Fiddle::TYPE_VOID
GLFWjoystickfun_cb_args =

Available since GLFW 3.2

[Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWjoystickfun_cb_retval =

Available since GLFW 3.2

Fiddle::TYPE_VOID
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 =

Available since GLFW 3.1

struct(["int width",
"int height",
"unsigned char* pixels"])
GLFWgamepadstate =

Available since GLFW 3.3

struct(["unsigned char buttons[15]",
"float axes[6]"])
@@glfw_cb_function_signature =

typedefs

{
  :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)",
  :GLFWwindowmaximizefun     => "void GLFWwindowmaximizefun(void*,int)",
  :GLFWframebuffersizefun    => "void GLFWframebuffersizefun(void*,int,int)",
  :GLFWwindowcontentscalefun => "void GLFWwindowcontentscalefun(void*,float,float)",  # Available since GLFW 3.3
  :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)",
  :GLFWcharmodsfun           => "void GLFWcharmodsfun(void*,unsigned int,int)",       # Available since GLFW 3.1 / Scheduled for removal in version 4.0.
  :GLFWdropfun               => "void GLFWdropfun(void*,int,const char**)",           # Available since GLFW 3.1
  :GLFWmonitorfun            => "void GLFWmonitorfun(void*,int)",                     # Available since GLFW 3.0
  :GLFWjoystickfun           => "void GGLFWjoystickfun(int,int)",                     # Available since GLFW 3.2
}
@@glfw_cb_closure_signature =
{
  :GLFWerrorfun           => [GLFWerrorfun_cb_retval, GLFWerrorfun_cb_args],
  :GLFWwindowposfun       => [GLFWwindowposfun_cb_retval, GLFWwindowposfun_cb_args],
  :GLFWwindowsizefun      => [GLFWwindowsizefun_cb_retval, GLFWwindowsizefun_cb_args],
  :GLFWwindowclosefun     => [GLFWwindowclosefun_cb_retval, GLFWwindowclosefun_cb_args],
  :GLFWwindowrefreshfun   => [GLFWwindowrefreshfun_cb_retval, GLFWwindowrefreshfun_cb_args],
  :GLFWwindowfocusfun     => [GLFWwindowfocusfun_cb_retval, GLFWwindowfocusfun_cb_args],
  :GLFWwindowiconifyfun   => [GLFWwindowiconifyfun_cb_retval, GLFWwindowiconifyfun_cb_args],
  :GLFWframebuffersizefun => [GLFWframebuffersizefun_cb_retval, GLFWframebuffersizefun_cb_args],
  :GLFWmousebuttonfun     => [GLFWmousebuttonfun_cb_retval, GLFWmousebuttonfun_cb_args],
  :GLFWcursorposfun       => [GLFWcursorposfun_cb_retval, GLFWcursorposfun_cb_args],
  :GLFWcursorenterfun     => [GLFWcursorenterfun_cb_retval, GLFWcursorenterfun_cb_args],
  :GLFWscrollfun          => [GLFWscrollfun_cb_retval, GLFWscrollfun_cb_args],
  :GLFWkeyfun             => [GLFWkeyfun_cb_retval, GLFWkeyfun_cb_args],
  :GLFWcharfun            => [GLFWcharfun_cb_retval, GLFWcharfun_cb_args],
  :GLFWcharmodsfun        => [GLFWcharmodsfun_cb_retval, GLFWcharmodsfun_cb_args], # Available since GLFW 3.1
  :GLFWdropfun            => [GLFWdropfun_cb_retval, GLFWdropfun_cb_args],         # Available since GLFW 3.1
  :GLFWmonitorfun         => [GLFWmonitorfun_cb_retval, GLFWmonitorfun_cb_args],
  :GLFWjoystickfun        => [GLFWjoystickfun_cb_retval, GLFWjoystickfun_cb_args], # Available since GLFW 3.2
}
@@glfw_import_done =
false
@@lib_signature =
[
  'int glfwInit()',
  'void glfwTerminate()',
  'void glfwInitHint(int, int)',                                 # Available since GLFW 3.3
  'void glfwGetVersion(int*, int*, int*)',
  'const char* glfwGetVersionString()',
  'int glfwGetError(const char**)',                              # Available since GLFW 3.3
  'void* glfwSetErrorCallback(void*)',
  'void** glfwGetMonitors(int*)',
  'void* glfwGetPrimaryMonitor()',
  'void glfwGetMonitorPos(void*, int*, int*)',
  'void glfwGetMonitorPhysicalSize(void*, int*, int*)',
  'void glfwGetMonitorContentScale(void*, float*, float*)',      # Available since GLFW 3.3
  'const char* glfwGetMonitorName(void*)',
  'const void glfwSetMonitorUserPointer(void*, void*)',          # Available since GLFW 3.3
  'const void* glfwGetMonitorUserPointer(void**)',               # Available since GLFW 3.3
  'void* glfwSetMonitorCallback(void*)',                         # Available since GLFW 3.0
  'const void* glfwGetVideoModes(void*, int*)',
  'const void* glfwGetVideoMode(void*)',                         # Available since GLFW 3.0
  'void glfwSetGamma(void*, float)',                             # Available since GLFW 3.0
  'const void* glfwGetGammaRamp(void*)',                         # Available since GLFW 3.0
  'void glfwSetGammaRamp(void*, const void*)',                   # Available since GLFW 3.0
  'void glfwDefaultWindowHints()',                               # Available since GLFW 3.0
  'void glfwWindowHint(int, int)',                               # Available since GLFW 3.0
  'void glfwWindowHintString(int, const char*)',                 # Available since GLFW 3.3
  'void* glfwCreateWindow(int, int, const char*, void*, void*)', # Available since GLFW 3.0
  'void glfwDestroyWindow(void*)',                               # Available since GLFW 3.0
  'int glfwWindowShouldClose(void*)',                            # Available since GLFW 3.0
  'void glfwSetWindowShouldClose(void* window, int)',            # Available since GLFW 3.0
  'void glfwSetWindowTitle(void*, const char*)',
  'void glfwSetWindowIcon(void*, int, void*)',                   # Available since GLFW 3.2
  'void glfwGetWindowPos(void*, int*, int*)',                    # Available since GLFW 3.0
  'void glfwSetWindowPos(void*, int, int)',
  'void glfwGetWindowSize(void*, int*, int*)',
  'void glfwSetWindowSizeLimits(void*, int, int, int, int)',     # Available since GLFW 3.2
  'void glfwSetWindowAspectRatio(void*, int, int)',              # Available since GLFW 3.2
  'void glfwSetWindowSize(void*, int, int)',
  'void glfwGetFramebufferSize(void*, int*, int*)',              # Available since GLFW 3.0
  'void glfwGetWindowFrameSize(void*, int*, int*, int*, int*)',  # Available since GLFW 3.1
  'void glfwGetWindowContentScale(void*, float*, float*)',       # Available since GLFW 3.3
  'float glfwGetWindowOpacity(void*)',                           # Available since GLFW 3.3
  'void glfwSetWindowOpacity(void*, float)',                     # Available since GLFW 3.3
  'void glfwIconifyWindow(void*)',
  'void glfwRestoreWindow(void*)',
  'void glfwMaximizeWindow(void*)',                                   # Available since GLFW 3.2
  'void glfwShowWindow(void*)',                                       # Available since GLFW 3.0
  'void glfwHideWindow(void*)',                                       # Available since GLFW 3.0
  'void glfwFocusWindow(void*)',                                      # Available since GLFW 3.2
  'void glfwRequestWindowAttention(void*)',                           # Available since GLFW 3.3
  'void* glfwGetWindowMonitor(void*)',                                # Available since GLFW 3.0
  'void glfwSetWindowMonitor(void*, void*, int, int, int, int, int)', # Available since GLFW 3.2
  'int glfwGetWindowAttrib(void*, int)',                              # Available since GLFW 3.0
  'void glfwSetWindowAttrib(void*, int, int)',                        # Available since GLFW 3.3
  'void glfwSetWindowUserPointer(void*, void*)',                      # Available since GLFW 3.0
  'void* glfwGetWindowUserPointer(void*)',                            # Available since GLFW 3.0
  'void* glfwSetWindowPosCallback(void*, void*)',                     # Available since GLFW 3.0
  'void* glfwSetWindowSizeCallback(void*, void*)',
  'void* glfwSetWindowCloseCallback(void*, void*)',
  'void* glfwSetWindowRefreshCallback(void*, void*)',
  'void* glfwSetWindowFocusCallback(void*, void*)',                   # Available since GLFW 3.0
  'void* glfwSetWindowIconifyCallback(void*, void*)',                 # Available since GLFW 3.0
  'void* glfwSetWindowMaximizeCallback(void*, void*)',                # Available since GLFW 3.3
  'void* glfwSetFramebufferSizeCallback(void*, void*)',               # Available since GLFW 3.0
  'void* glfwSetWindowContentScaleCallback(void*, void*)',            # Available since GLFW 3.3
  'void glfwPollEvents()',
  'void glfwWaitEvents()',
  'void glfwWaitEventsTimeout(double)',              # Available since GLFW 3.2
  'void glfwPostEmptyEvent()',                       # Available since GLFW 3.1
  'int glfwGetInputMode(void*, int)',                # Available since GLFW 3.0
  'void glfwSetInputMode(void*, int, int)',          # Available since GLFW 3.0
  'const char* glfwGetKeyName(int, int)',            # Available since GLFW 3.2
  'int glfwGetKeyScancode(int)',                     # Available since GLFW 3.3
  'int glfwGetKey(void*, int)',
  'int glfwGetMouseButton(void*, int)',
  'void glfwGetCursorPos(void*, double*, double*)',  # Available since GLFW 3.0
  'void glfwSetCursorPos(void*, double, double)',    # Available since GLFW 3.0
  'void* glfwCreateCursor(void*, int, int)',         # Available since GLFW 3.1
  'void* glfwCreateStandardCursor(int)',             # Available since GLFW 3.1
  'void glfwDestroyCursor(void*)',                   # Available since GLFW 3.1
  'void glfwSetCursor(void*, void*)',                # Available since GLFW 3.1
  'void* glfwSetKeyCallback(void*, void*)',
  'void* glfwSetCharCallback(void*, void*)',
  'void* glfwSetCharModsCallback(void*, void*)',     # Available since GLFW 3.1 / Scheduled for removal in version 4.0.
  'void* glfwSetMouseButtonCallback(void*, void*)',
  'void* glfwSetCursorPosCallback(void*, void*)',    # Available since GLFW 3.0
  'void* glfwSetCursorEnterCallback(void*, void*)',  # Available since GLFW 3.0
  'void* glfwSetScrollCallback(void*, void*)',       # Available since GLFW 3.0
  'void* glfwSetDropCallback(void*, void*)',         # Available since GLFW 3.1
   'int glfwJoystickPresent(int)',                        # Available since GLFW 3.0
  'const float* glfwGetJoystickAxes(int, int*)',         # Available since GLFW 3.0
  'const unsigned char* glfwGetJoystickButtons(int, int*)',
  'const unsigned char* glfwGetJoystickHats(int, int*)', # Available since GLFW 3.3
  'const char* glfwGetJoystickName(int)',                # Available since GLFW 3.0
  'const char* glfwGetJoystickGUID(int)',                # Available since GLFW 3.3
  'void glfwSetJoystickUserPointer(int, void*)',         # Available since GLFW 3.3
  'void* glfwGetJoystickUserPointer(int)',               # Available since GLFW 3.3
  'int glfwJoystickIsGamepad(int)',                      # Available since GLFW 3.3
  'void* glfwSetJoystickCallback(void*)',                # Available since GLFW 3.2
  'int glfwUpdateGamepadMappings(const char*)',          # Available since GLFW 3.3
  'const char* glfwGetGamepadName(int)',                 # Available since GLFW 3.3
  'int glfwGetGamepadState(int, void*)',                 # Available since GLFW 3.3
  'void glfwSetClipboardString(void*, const char*)',     # Available since GLFW 3.0
  'const char* glfwGetClipboardString(void*)',           # Available since GLFW 3.0
  'double glfwGetTime()',
  'void glfwSetTime(double)',
  'GLFWuint64 glfwGetTimerValue()',                  # Available since GLFW 3.2
  'GLFWuint64 glfwGetTimerFrequency()',              # Available since GLFW 3.2
  'void glfwMakeContextCurrent(void*)',              # Available since GLFW 3.0
  'void* glfwGetCurrentContext()',                   # Available since GLFW 3.0
  'void glfwSwapBuffers(void*)',
  'void glfwSwapInterval(int)',
  'int glfwExtensionSupported(const char*)',
  'void* glfwGetProcAddress(const char*)',
  # >>> Vulkan >>>
  'int glfwVulkanSupported()',                                     # Available since GLFW 3.2
  'const char** glfwGetRequiredInstanceExtensions(unsigned int*)', # Available since GLFW 3.2
# 'GLFWvkproc glfwGetInstanceProcAddress(void*, const char*)',
# 'int glfwGetPhysicalDevicePresentationSupport(void*, void*, unsigned int)',
# 'VkResult glfwCreateWindowSurface(void*, void*, const void*, void*)',
  # <<< Vulkan <<<
]

Class Method Summary collapse

Class Method Details

.create_callback(sym, proc = nil, &blk) ⇒ Object

NOTE : Use ‘create_callback_function’ for backward compatibility.



457
458
459
# File 'lib/glfw.rb', line 457

def self.create_callback( sym, proc=nil, &blk )
  return self.create_callback_closure( sym, proc, &blk )
end

.create_callback_closure(sym, proc = nil, &blk) ⇒ Object

Creates a callback as an instance of Fiddle::Closure::BlockCaller



446
447
448
449
450
451
452
453
454
# File 'lib/glfw.rb', line 446

def self.create_callback_closure( sym, proc=nil, &blk )
  cb_retval = @@glfw_cb_closure_signature[sym][0]
  cb_args   = @@glfw_cb_closure_signature[sym][1]
  if block_given?
    return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &blk )
  else
    return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &proc )
  end
end

.create_callback_function(sym, proc = nil, &blk) ⇒ Object

Creates a callback as an instance of Fiddle::Function



379
380
381
382
383
384
385
# File 'lib/glfw.rb', line 379

def self.create_callback_function( sym, proc=nil, &blk )
  if block_given?
    return bind( @@glfw_cb_function_signature[sym], nil, &blk )
  else
    return bind( @@glfw_cb_function_signature[sym], nil, &proc )
  end
end

.extern(signature, *opts) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/glfw.rb', line 15

def self.extern(signature, *opts)
  symname, ctype, argtype = parse_signature(signature, @type_alias)
  opt = parse_bind_options(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(output_error = false) ⇒ Object



634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
# File 'lib/glfw.rb', line 634

def self.import_symbols(output_error = false)
  typealias 'GLFWuint64', 'unsigned long long' # Available since GLFW 3.2

  # function
  @@lib_signature.each do |sig|
    begin
      extern sig
    rescue
      $stderr.puts("[Warning] Failed to import #{sig}.") if output_error
    end
  end

  ver_major = ' ' * 4
  ver_minor = ' ' * 4
  ver_rev   = ' ' * 4
  glfwGetVersion(ver_major, ver_minor, ver_rev)

  GLFW.const_set('GLFW_VERSION_MAJOR',  ver_major.unpack('L')[0])
  GLFW.const_set('GLFW_VERSION_MINOR',  ver_minor.unpack('L')[0])
  GLFW.const_set('GLFW_VERSION_REVISION', ver_rev.unpack('L')[0])

  @@glfw_import_done = true
end

.load_dll(lib = nil, path = nil) ⇒ Object



506
507
508
509
# File 'lib/glfw.rb', line 506

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, output_error = false) ⇒ Object

Load native library.



486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
# File 'lib/glfw.rb', line 486

def self.load_lib(lib = nil, path = nil, output_error = false)
  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(output_error) unless @@glfw_import_done
end