glfw3 0.3.2 → 0.3.3
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 +4 -4
 - data/ext/glfw3/glfw3.c +123 -74
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: af1da580f8de9e21f650115855184766da438c18
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2c1f559d4044a53985c76c373fa38dcf62aa03b1
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: d784dbdccdef6a614369f6e87145687a1caacfc1b7a6500d23378032a3b329ef7f5e700d2afbf67ea1b6fb15faef3b762b0c194b101e6affdf34a7914522cd39
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 8c04f83251a478714379caa99d78fe86f7354482941918540d2ab233703704eb9d0aed3d64868933bbc8176ac2ceade5187f85a557a04dd6e2bd962292bc866e
         
     | 
    
        data/ext/glfw3/glfw3.c
    CHANGED
    
    | 
         @@ -9,23 +9,50 @@ typedef struct s_rb_glfw_error 
     | 
|
| 
       9 
9 
     | 
    
         
             
            } rb_glfw_error_t;
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            static const char * 
     | 
| 
       13 
     | 
    
         
            -
            static const char * 
     | 
| 
       14 
     | 
    
         
            -
            static const char * 
     | 
| 
       15 
     | 
    
         
            -
            static const char * 
     | 
| 
       16 
     | 
    
         
            -
            static const char * 
     | 
| 
       17 
     | 
    
         
            -
            static const char * 
     | 
| 
       18 
     | 
    
         
            -
            static const char * 
     | 
| 
       19 
     | 
    
         
            -
            static const char * 
     | 
| 
       20 
     | 
    
         
            -
            static const char * 
     | 
| 
       21 
     | 
    
         
            -
            static const char * 
     | 
| 
       22 
     | 
    
         
            -
            static const char * 
     | 
| 
       23 
     | 
    
         
            -
            static const char * 
     | 
| 
       24 
     | 
    
         
            -
            static const char * 
     | 
| 
       25 
     | 
    
         
            -
            static const char * 
     | 
| 
       26 
     | 
    
         
            -
            static const char * 
     | 
| 
       27 
     | 
    
         
            -
            static const char * 
     | 
| 
       28 
     | 
    
         
            -
            static const char * 
     | 
| 
      
 12 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_INTERNAL_NAME                   = "@__internal_window";
         
     | 
| 
      
 13 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_KEY_CALLBACK_NAME               = "@__key_callback";
         
     | 
| 
      
 14 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_CHAR_CALLBACK_NAME              = "@__char_callback";
         
     | 
| 
      
 15 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK_NAME      = "@__mouse_button_callback";
         
     | 
| 
      
 16 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK_NAME   = "@__cursor_position_callback";
         
     | 
| 
      
 17 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK_NAME      = "@__cursor_enter_callback";
         
     | 
| 
      
 18 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_SCROLL_CALLBACK_NAME            = "@__scroll_callback";
         
     | 
| 
      
 19 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_POSITION_CALLBACK_NAME          = "@__position_callback";
         
     | 
| 
      
 20 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_SIZE_CALLBACK_NAME              = "@__size_callback";
         
     | 
| 
      
 21 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_CLOSE_CALLBACK_NAME             = "@__close_callback";
         
     | 
| 
      
 22 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_REFRESH_CALLBACK_NAME           = "@__refresh_callback";
         
     | 
| 
      
 23 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_FOCUS_CALLBACK_NAME             = "@__focus_callback";
         
     | 
| 
      
 24 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_ICONIFY_CALLBACK_NAME           = "@__iconify_callback";
         
     | 
| 
      
 25 
     | 
    
         
            +
            static const char *kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK_NAME  = "@__framebuffer_size_callback";
         
     | 
| 
      
 26 
     | 
    
         
            +
            static const char *kRB_CVAR_WINDOW_WINDOWS_NAME                    = "@@__windows";
         
     | 
| 
      
 27 
     | 
    
         
            +
            static const char *kRB_CVAR_GLFW_ERROR_CALLBACK_NAME               = "@@__error_callback";
         
     | 
| 
      
 28 
     | 
    
         
            +
            static const char *kRB_CVAR_GLFW_MONITOR_CALLBACK_NAME             = "@@__monitor_callback";
         
     | 
| 
      
 29 
     | 
    
         
            +
            static const char *kRB_CALL_NAME                                   = "call";
         
     | 
| 
      
 30 
     | 
    
         
            +
            static const char *kRB_RED_NAME                                    = "red";
         
     | 
| 
      
 31 
     | 
    
         
            +
            static const char *kRB_GREEN_NAME                                  = "green";
         
     | 
| 
      
 32 
     | 
    
         
            +
            static const char *kRB_BLUE_NAME                                   = "blue";
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_INTERNAL;
         
     | 
| 
      
 36 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_KEY_CALLBACK;
         
     | 
| 
      
 37 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_CHAR_CALLBACK;
         
     | 
| 
      
 38 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK;
         
     | 
| 
      
 39 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK;
         
     | 
| 
      
 40 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK;
         
     | 
| 
      
 41 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_SCROLL_CALLBACK;
         
     | 
| 
      
 42 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_POSITION_CALLBACK;
         
     | 
| 
      
 43 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_SIZE_CALLBACK;
         
     | 
| 
      
 44 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_CLOSE_CALLBACK;
         
     | 
| 
      
 45 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_REFRESH_CALLBACK;
         
     | 
| 
      
 46 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_FOCUS_CALLBACK;
         
     | 
| 
      
 47 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_ICONIFY_CALLBACK;
         
     | 
| 
      
 48 
     | 
    
         
            +
            static ID kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK;
         
     | 
| 
      
 49 
     | 
    
         
            +
            static ID kRB_CVAR_WINDOW_WINDOWS;
         
     | 
| 
      
 50 
     | 
    
         
            +
            static ID kRB_CVAR_GLFW_ERROR_CALLBACK;
         
     | 
| 
      
 51 
     | 
    
         
            +
            static ID kRB_CVAR_GLFW_MONITOR_CALLBACK;
         
     | 
| 
      
 52 
     | 
    
         
            +
            static ID kRB_CALL;
         
     | 
| 
      
 53 
     | 
    
         
            +
            static ID kRB_RED;
         
     | 
| 
      
 54 
     | 
    
         
            +
            static ID kRB_GREEN;
         
     | 
| 
      
 55 
     | 
    
         
            +
            static ID kRB_BLUE;
         
     | 
| 
       29 
56 
     | 
    
         | 
| 
       30 
57 
     | 
    
         | 
| 
       31 
58 
     | 
    
         
             
            static VALUE s_glfw_module = Qundef;
         
     | 
| 
         @@ -106,14 +133,14 @@ static VALUE rb_glfw_version(VALUE self) 
     | 
|
| 
       106 
133 
     | 
    
         | 
| 
       107 
134 
     | 
    
         
             
            static void rb_glfw_error_callback(int error_code, const char *description)
         
     | 
| 
       108 
135 
     | 
    
         
             
            {
         
     | 
| 
       109 
     | 
    
         
            -
              VALUE lambda = rb_cvar_get(s_glfw_module,  
     | 
| 
      
 136 
     | 
    
         
            +
              VALUE lambda = rb_cvar_get(s_glfw_module, kRB_CVAR_GLFW_ERROR_CALLBACK);
         
     | 
| 
       110 
137 
     | 
    
         | 
| 
       111 
138 
     | 
    
         
             
              if (RTEST(lambda)) {
         
     | 
| 
       112 
139 
     | 
    
         
             
                VALUE rb_description = rb_str_new2(description);
         
     | 
| 
       113 
140 
     | 
    
         
             
                VALUE rb_error_code = INT2FIX(error_code);
         
     | 
| 
       114 
141 
     | 
    
         
             
                OBJ_FREEZE(rb_description);
         
     | 
| 
       115 
142 
     | 
    
         
             
                OBJ_FREEZE(rb_error_code);
         
     | 
| 
       116 
     | 
    
         
            -
                rb_funcall(lambda,  
     | 
| 
      
 143 
     | 
    
         
            +
                rb_funcall(lambda, kRB_CALL, 2, rb_error_code, rb_description);
         
     | 
| 
       117 
144 
     | 
    
         
             
              } else {
         
     | 
| 
       118 
145 
     | 
    
         
             
                rb_raise(rb_eRuntimeError, "GLFW Error 0x%X: %s", error_code, description);
         
     | 
| 
       119 
146 
     | 
    
         
             
              }
         
     | 
| 
         @@ -231,11 +258,11 @@ VALUE rb_monitor_name(VALUE self) 
     | 
|
| 
       231 
258 
     | 
    
         | 
| 
       232 
259 
     | 
    
         
             
            static void rb_glfw_monitor_callback(GLFWmonitor *monitor, int message)
         
     | 
| 
       233 
260 
     | 
    
         
             
            {
         
     | 
| 
       234 
     | 
    
         
            -
              VALUE lambda = rb_cvar_get(s_glfw_module,  
     | 
| 
      
 261 
     | 
    
         
            +
              VALUE lambda = rb_cvar_get(s_glfw_module, kRB_CVAR_GLFW_MONITOR_CALLBACK);
         
     | 
| 
       235 
262 
     | 
    
         
             
              if (RTEST(lambda)) {
         
     | 
| 
       236 
263 
     | 
    
         
             
                VALUE rb_monitor = Data_Wrap_Struct(s_glfw_monitor_klass, 0, 0, monitor);
         
     | 
| 
       237 
264 
     | 
    
         
             
                rb_obj_call_init(rb_monitor, 0, 0);
         
     | 
| 
       238 
     | 
    
         
            -
                rb_funcall(lambda,  
     | 
| 
      
 265 
     | 
    
         
            +
                rb_funcall(lambda, kRB_CALL, 2, rb_monitor, INT2FIX(message));
         
     | 
| 
       239 
266 
     | 
    
         
             
              }
         
     | 
| 
       240 
267 
     | 
    
         
             
            }
         
     | 
| 
       241 
268 
     | 
    
         | 
| 
         @@ -435,9 +462,9 @@ static VALUE rb_monitor_get_gamma_ramp(VALUE self) 
     | 
|
| 
       435 
462 
     | 
    
         
             
                rb_ary_push(rb_blue, INT2NUM(ramp->blue[ramp_index]));
         
     | 
| 
       436 
463 
     | 
    
         
             
              }
         
     | 
| 
       437 
464 
     | 
    
         | 
| 
       438 
     | 
    
         
            -
              rb_hash_aset(rb_gamma_hash, ID2SYM( 
     | 
| 
       439 
     | 
    
         
            -
              rb_hash_aset(rb_gamma_hash, ID2SYM( 
     | 
| 
       440 
     | 
    
         
            -
              rb_hash_aset(rb_gamma_hash, ID2SYM( 
     | 
| 
      
 465 
     | 
    
         
            +
              rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_RED), rb_red);
         
     | 
| 
      
 466 
     | 
    
         
            +
              rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_GREEN), rb_green);
         
     | 
| 
      
 467 
     | 
    
         
            +
              rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_BLUE), rb_blue);
         
     | 
| 
       441 
468 
     | 
    
         | 
| 
       442 
469 
     | 
    
         
             
              return rb_gamma_hash;
         
     | 
| 
       443 
470 
     | 
    
         
             
            }
         
     | 
| 
         @@ -475,9 +502,9 @@ static VALUE rb_monitor_set_gamma_ramp(VALUE self, VALUE ramp_hash) 
     | 
|
| 
       475 
502 
     | 
    
         | 
| 
       476 
503 
     | 
    
         
             
              Data_Get_Struct(self, GLFWmonitor, monitor);
         
     | 
| 
       477 
504 
     | 
    
         | 
| 
       478 
     | 
    
         
            -
              rb_red = rb_hash_aref(ramp_hash, ID2SYM( 
     | 
| 
       479 
     | 
    
         
            -
              rb_green = rb_hash_aref(ramp_hash, ID2SYM( 
     | 
| 
       480 
     | 
    
         
            -
              rb_blue = rb_hash_aref(ramp_hash, ID2SYM( 
     | 
| 
      
 505 
     | 
    
         
            +
              rb_red = rb_hash_aref(ramp_hash, ID2SYM(kRB_RED));
         
     | 
| 
      
 506 
     | 
    
         
            +
              rb_green = rb_hash_aref(ramp_hash, ID2SYM(kRB_GREEN));
         
     | 
| 
      
 507 
     | 
    
         
            +
              rb_blue = rb_hash_aref(ramp_hash, ID2SYM(kRB_BLUE));
         
     | 
| 
       481 
508 
     | 
    
         | 
| 
       482 
509 
     | 
    
         
             
              if (!(RTEST(rb_red) && RTEST(rb_green) && RTEST(rb_blue))) {
         
     | 
| 
       483 
510 
     | 
    
         
             
                rb_raise(rb_eArgError, "Ramp Hash must contain :red, :green, and :blue arrays");
         
     | 
| 
         @@ -555,7 +582,7 @@ static GLFWwindow *rb_get_window(VALUE rb_window) 
     | 
|
| 
       555 
582 
     | 
    
         
             
            {
         
     | 
| 
       556 
583 
     | 
    
         
             
              GLFWwindow *window = NULL;
         
     | 
| 
       557 
584 
     | 
    
         
             
              if (RTEST(rb_window)) {
         
     | 
| 
       558 
     | 
    
         
            -
                ID ivar_window =  
     | 
| 
      
 585 
     | 
    
         
            +
                ID ivar_window = kRB_IVAR_WINDOW_INTERNAL;
         
     | 
| 
       559 
586 
     | 
    
         
             
                VALUE rb_window_data = Qnil;
         
     | 
| 
       560 
587 
     | 
    
         
             
                if (RTEST((rb_window_data = rb_ivar_get(rb_window, ivar_window)))) {
         
     | 
| 
       561 
588 
     | 
    
         
             
                  Data_Get_Struct(rb_window_data, GLFWwindow, window);
         
     | 
| 
         @@ -578,7 +605,7 @@ static GLFWwindow *rb_get_window(VALUE rb_window) 
     | 
|
| 
       578 
605 
     | 
    
         
             
             */
         
     | 
| 
       579 
606 
     | 
    
         
             
            static VALUE rb_window_new(int argc, VALUE *argv, VALUE self)
         
     | 
| 
       580 
607 
     | 
    
         
             
            {
         
     | 
| 
       581 
     | 
    
         
            -
              ID ivar_window =  
     | 
| 
      
 608 
     | 
    
         
            +
              ID ivar_window = kRB_IVAR_WINDOW_INTERNAL;
         
     | 
| 
       582 
609 
     | 
    
         
             
              VALUE rb_width, rb_height, rb_title, rb_monitor, rb_share;
         
     | 
| 
       583 
610 
     | 
    
         
             
              VALUE rb_window;
         
     | 
| 
       584 
611 
     | 
    
         
             
              VALUE rb_window_data;
         
     | 
| 
         @@ -625,25 +652,25 @@ static VALUE rb_window_new(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       625 
652 
     | 
    
         
             
              rb_window = rb_obj_alloc(s_glfw_window_klass);
         
     | 
| 
       626 
653 
     | 
    
         | 
| 
       627 
654 
     | 
    
         
             
              rb_ivar_set(rb_window, ivar_window, rb_window_data);
         
     | 
| 
       628 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       629 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       630 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       631 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       632 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       633 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       634 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       635 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       636 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       637 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       638 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       639 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
       640 
     | 
    
         
            -
              rb_ivar_set(rb_window,  
     | 
| 
      
 655 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_KEY_CALLBACK, Qnil);
         
     | 
| 
      
 656 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CHAR_CALLBACK, Qnil);
         
     | 
| 
      
 657 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK, Qnil);
         
     | 
| 
      
 658 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK, Qnil);
         
     | 
| 
      
 659 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK, Qnil);
         
     | 
| 
      
 660 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_SCROLL_CALLBACK, Qnil);
         
     | 
| 
      
 661 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_POSITION_CALLBACK, Qnil);
         
     | 
| 
      
 662 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_SIZE_CALLBACK, Qnil);
         
     | 
| 
      
 663 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CLOSE_CALLBACK, Qnil);
         
     | 
| 
      
 664 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_REFRESH_CALLBACK, Qnil);
         
     | 
| 
      
 665 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_FOCUS_CALLBACK, Qnil);
         
     | 
| 
      
 666 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_ICONIFY_CALLBACK, Qnil);
         
     | 
| 
      
 667 
     | 
    
         
            +
              rb_ivar_set(rb_window, kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK, Qnil);
         
     | 
| 
       641 
668 
     | 
    
         | 
| 
       642 
669 
     | 
    
         
             
              glfwSetWindowUserPointer(window, (void *)rb_window);
         
     | 
| 
       643 
670 
     | 
    
         
             
              rb_obj_call_init(rb_window, 0, 0);
         
     | 
| 
       644 
671 
     | 
    
         | 
| 
       645 
672 
     | 
    
         
             
              // Store the window so it can't go out of scope until explicitly destroyed.
         
     | 
| 
       646 
     | 
    
         
            -
              rb_windows = rb_cvar_get(self,  
     | 
| 
      
 673 
     | 
    
         
            +
              rb_windows = rb_cvar_get(self, kRB_CVAR_WINDOW_WINDOWS);
         
     | 
| 
       647 
674 
     | 
    
         
             
              rb_hash_aset(rb_windows, INT2FIX((int)window), rb_window);
         
     | 
| 
       648 
675 
     | 
    
         | 
| 
       649 
676 
     | 
    
         
             
              return rb_window;
         
     | 
| 
         @@ -661,8 +688,8 @@ static VALUE rb_window_destroy(VALUE self) 
     | 
|
| 
       661 
688 
     | 
    
         
             
              GLFWwindow *window = rb_get_window(self);
         
     | 
| 
       662 
689 
     | 
    
         
             
              if (window) {
         
     | 
| 
       663 
690 
     | 
    
         
             
                glfwDestroyWindow(window);
         
     | 
| 
       664 
     | 
    
         
            -
                rb_ivar_set(self,  
     | 
| 
       665 
     | 
    
         
            -
                VALUE rb_windows = rb_cvar_get(s_glfw_window_klass,  
     | 
| 
      
 691 
     | 
    
         
            +
                rb_ivar_set(self, kRB_IVAR_WINDOW_INTERNAL, Qnil);
         
     | 
| 
      
 692 
     | 
    
         
            +
                VALUE rb_windows = rb_cvar_get(s_glfw_window_klass, kRB_CVAR_WINDOW_WINDOWS);
         
     | 
| 
       666 
693 
     | 
    
         
             
                rb_hash_delete(rb_windows, INT2FIX((int)window));
         
     | 
| 
       667 
694 
     | 
    
         
             
              }
         
     | 
| 
       668 
695 
     | 
    
         
             
              return self;
         
     | 
| 
         @@ -888,8 +915,8 @@ static VALUE rb_window_get_monitor(VALUE self) 
     | 
|
| 
       888 
915 
     | 
    
         
             
            static void rb_window_window_position_callback(GLFWwindow *window, int x, int y)
         
     | 
| 
       889 
916 
     | 
    
         
             
            {
         
     | 
| 
       890 
917 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       891 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       892 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 918 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_POSITION_CALLBACK);
         
     | 
| 
      
 919 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(x), INT2FIX(y));
         
     | 
| 
       893 
920 
     | 
    
         
             
            }
         
     | 
| 
       894 
921 
     | 
    
         | 
| 
       895 
922 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_window_position_callback, rb_window_window_position_callback, glfwSetWindowPosCallback);
         
     | 
| 
         @@ -899,8 +926,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_window_position_callback, rb_window_window_ 
     | 
|
| 
       899 
926 
     | 
    
         
             
            static void rb_window_window_size_callback(GLFWwindow *window, int width, int height)
         
     | 
| 
       900 
927 
     | 
    
         
             
            {
         
     | 
| 
       901 
928 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       902 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       903 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 929 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_SIZE_CALLBACK);
         
     | 
| 
      
 930 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(width), INT2FIX(height));
         
     | 
| 
       904 
931 
     | 
    
         
             
            }
         
     | 
| 
       905 
932 
     | 
    
         | 
| 
       906 
933 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_window_size_callback, rb_window_window_size_callback, glfwSetWindowSizeCallback);
         
     | 
| 
         @@ -910,8 +937,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_window_size_callback, rb_window_window_size 
     | 
|
| 
       910 
937 
     | 
    
         
             
            static void rb_window_close_callback(GLFWwindow *window)
         
     | 
| 
       911 
938 
     | 
    
         
             
            {
         
     | 
| 
       912 
939 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       913 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       914 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 940 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CLOSE_CALLBACK);
         
     | 
| 
      
 941 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 1, rb_window);
         
     | 
| 
       915 
942 
     | 
    
         
             
            }
         
     | 
| 
       916 
943 
     | 
    
         | 
| 
       917 
944 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_close_callback, rb_window_close_callback, glfwSetWindowCloseCallback);
         
     | 
| 
         @@ -921,8 +948,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_close_callback, rb_window_close_callback, g 
     | 
|
| 
       921 
948 
     | 
    
         
             
            static void rb_window_refresh_callback(GLFWwindow *window)
         
     | 
| 
       922 
949 
     | 
    
         
             
            {
         
     | 
| 
       923 
950 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       924 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       925 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 951 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_REFRESH_CALLBACK);
         
     | 
| 
      
 952 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 1, rb_window);
         
     | 
| 
       926 
953 
     | 
    
         
             
            }
         
     | 
| 
       927 
954 
     | 
    
         | 
| 
       928 
955 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_refresh_callback, rb_window_refresh_callback, glfwSetWindowRefreshCallback);
         
     | 
| 
         @@ -932,8 +959,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_refresh_callback, rb_window_refresh_callbac 
     | 
|
| 
       932 
959 
     | 
    
         
             
            static void rb_window_focus_callback(GLFWwindow *window, int focused)
         
     | 
| 
       933 
960 
     | 
    
         
             
            {
         
     | 
| 
       934 
961 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       935 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       936 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 962 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_FOCUS_CALLBACK);
         
     | 
| 
      
 963 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 2, rb_window, focused ? Qtrue : Qfalse);
         
     | 
| 
       937 
964 
     | 
    
         
             
            }
         
     | 
| 
       938 
965 
     | 
    
         | 
| 
       939 
966 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_focus_callback, rb_window_focus_callback, glfwSetWindowFocusCallback);
         
     | 
| 
         @@ -943,8 +970,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_focus_callback, rb_window_focus_callback, g 
     | 
|
| 
       943 
970 
     | 
    
         
             
            static void rb_window_iconify_callback(GLFWwindow *window, int iconified)
         
     | 
| 
       944 
971 
     | 
    
         
             
            {
         
     | 
| 
       945 
972 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       946 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       947 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 973 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_ICONIFY_CALLBACK);
         
     | 
| 
      
 974 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 2, rb_window, iconified ? Qtrue : Qfalse);
         
     | 
| 
       948 
975 
     | 
    
         
             
            }
         
     | 
| 
       949 
976 
     | 
    
         | 
| 
       950 
977 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_iconify_callback, rb_window_iconify_callback, glfwSetWindowIconifyCallback);
         
     | 
| 
         @@ -954,8 +981,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_iconify_callback, rb_window_iconify_callbac 
     | 
|
| 
       954 
981 
     | 
    
         
             
            static void rb_window_fbsize_callback(GLFWwindow *window, int width, int height)
         
     | 
| 
       955 
982 
     | 
    
         
             
            {
         
     | 
| 
       956 
983 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       957 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       958 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 984 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK);
         
     | 
| 
      
 985 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(width), INT2FIX(height));
         
     | 
| 
       959 
986 
     | 
    
         
             
            }
         
     | 
| 
       960 
987 
     | 
    
         | 
| 
       961 
988 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_fbsize_callback, rb_window_fbsize_callback, glfwSetFramebufferSizeCallback);
         
     | 
| 
         @@ -1104,8 +1131,8 @@ static VALUE rb_window_set_cursor_pos(VALUE self, VALUE x, VALUE y) 
     | 
|
| 
       1104 
1131 
     | 
    
         
             
            static void rb_window_key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
         
     | 
| 
       1105 
1132 
     | 
    
         
             
            {
         
     | 
| 
       1106 
1133 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1107 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1108 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1134 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_KEY_CALLBACK);
         
     | 
| 
      
 1135 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 5, rb_window, INT2FIX(key), INT2FIX(scancode), INT2FIX(action), INT2FIX(mods));
         
     | 
| 
       1109 
1136 
     | 
    
         
             
            }
         
     | 
| 
       1110 
1137 
     | 
    
         | 
| 
       1111 
1138 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_key_callback, rb_window_key_callback, glfwSetKeyCallback);
         
     | 
| 
         @@ -1115,8 +1142,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_key_callback, rb_window_key_callback, glfwS 
     | 
|
| 
       1115 
1142 
     | 
    
         
             
            static void rb_window_char_callback(GLFWwindow *window, unsigned int code)
         
     | 
| 
       1116 
1143 
     | 
    
         
             
            {
         
     | 
| 
       1117 
1144 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1118 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1119 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1145 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CHAR_CALLBACK);
         
     | 
| 
      
 1146 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 2, rb_window, UINT2NUM(code));
         
     | 
| 
       1120 
1147 
     | 
    
         
             
            }
         
     | 
| 
       1121 
1148 
     | 
    
         | 
| 
       1122 
1149 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_char_callback, rb_window_char_callback, glfwSetCharCallback);
         
     | 
| 
         @@ -1127,8 +1154,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_char_callback, rb_window_char_callback, glf 
     | 
|
| 
       1127 
1154 
     | 
    
         
             
            static void rb_window_mouse_button_callback(GLFWwindow *window, int button, int action, int mods)
         
     | 
| 
       1128 
1155 
     | 
    
         
             
            {
         
     | 
| 
       1129 
1156 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1130 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1131 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1157 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK);
         
     | 
| 
      
 1158 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 4, rb_window, INT2FIX(button), INT2FIX(action), INT2FIX(mods));
         
     | 
| 
       1132 
1159 
     | 
    
         
             
            }
         
     | 
| 
       1133 
1160 
     | 
    
         | 
| 
       1134 
1161 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_mouse_button_callback, rb_window_mouse_button_callback, glfwSetMouseButtonCallback);
         
     | 
| 
         @@ -1138,8 +1165,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_mouse_button_callback, rb_window_mouse_butt 
     | 
|
| 
       1138 
1165 
     | 
    
         
             
            static void rb_window_cursor_position_callback(GLFWwindow *window, double x, double y)
         
     | 
| 
       1139 
1166 
     | 
    
         
             
            {
         
     | 
| 
       1140 
1167 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1141 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1142 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1168 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK);
         
     | 
| 
      
 1169 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 4, rb_window, rb_float_new(x), rb_float_new(y));
         
     | 
| 
       1143 
1170 
     | 
    
         
             
            }
         
     | 
| 
       1144 
1171 
     | 
    
         | 
| 
       1145 
1172 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_position_callback, rb_window_cursor_position_callback, glfwSetCursorPosCallback);
         
     | 
| 
         @@ -1149,8 +1176,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_position_callback, rb_window_cursor_ 
     | 
|
| 
       1149 
1176 
     | 
    
         
             
            static void rb_window_cursor_enter_callback(GLFWwindow *window, int entered)
         
     | 
| 
       1150 
1177 
     | 
    
         
             
            {
         
     | 
| 
       1151 
1178 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1152 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1153 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1179 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK);
         
     | 
| 
      
 1180 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 2, rb_window, entered ? Qtrue : Qfalse);
         
     | 
| 
       1154 
1181 
     | 
    
         
             
            }
         
     | 
| 
       1155 
1182 
     | 
    
         | 
| 
       1156 
1183 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_enter_callback, rb_window_cursor_enter_callback, glfwSetCursorEnterCallback);
         
     | 
| 
         @@ -1160,8 +1187,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_enter_callback, rb_window_cursor_ent 
     | 
|
| 
       1160 
1187 
     | 
    
         
             
            static void rb_window_scroll_callback(GLFWwindow *window, double x, double y)
         
     | 
| 
       1161 
1188 
     | 
    
         
             
            {
         
     | 
| 
       1162 
1189 
     | 
    
         
             
              VALUE rb_window = rb_lookup_window(window);
         
     | 
| 
       1163 
     | 
    
         
            -
              VALUE rb_func = rb_ivar_get(rb_window,  
     | 
| 
       1164 
     | 
    
         
            -
              rb_funcall(rb_func,  
     | 
| 
      
 1190 
     | 
    
         
            +
              VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_SCROLL_CALLBACK);
         
     | 
| 
      
 1191 
     | 
    
         
            +
              rb_funcall(rb_func, kRB_CALL, 4, rb_window, rb_float_new(x), rb_float_new(y));
         
     | 
| 
       1165 
1192 
     | 
    
         
             
            }
         
     | 
| 
       1166 
1193 
     | 
    
         | 
| 
       1167 
1194 
     | 
    
         
             
            RB_ENABLE_CALLBACK_DEF(rb_window_set_scroll_callback, rb_window_scroll_callback, glfwSetScrollCallback);
         
     | 
| 
         @@ -1444,6 +1471,28 @@ static VALUE rb_glfw_extension_supported(VALUE self, VALUE extension) 
     | 
|
| 
       1444 
1471 
     | 
    
         | 
| 
       1445 
1472 
     | 
    
         
             
            void Init_glfw3(void)
         
     | 
| 
       1446 
1473 
     | 
    
         
             
            {
         
     | 
| 
      
 1474 
     | 
    
         
            +
              kRB_IVAR_WINDOW_INTERNAL                  = rb_intern(kRB_IVAR_WINDOW_INTERNAL_NAME);
         
     | 
| 
      
 1475 
     | 
    
         
            +
              kRB_IVAR_WINDOW_KEY_CALLBACK              = rb_intern(kRB_IVAR_WINDOW_KEY_CALLBACK_NAME);
         
     | 
| 
      
 1476 
     | 
    
         
            +
              kRB_IVAR_WINDOW_CHAR_CALLBACK             = rb_intern(kRB_IVAR_WINDOW_CHAR_CALLBACK_NAME);
         
     | 
| 
      
 1477 
     | 
    
         
            +
              kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK     = rb_intern(kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK_NAME);
         
     | 
| 
      
 1478 
     | 
    
         
            +
              kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK  = rb_intern(kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK_NAME);
         
     | 
| 
      
 1479 
     | 
    
         
            +
              kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK     = rb_intern(kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK_NAME);
         
     | 
| 
      
 1480 
     | 
    
         
            +
              kRB_IVAR_WINDOW_SCROLL_CALLBACK           = rb_intern(kRB_IVAR_WINDOW_SCROLL_CALLBACK_NAME);
         
     | 
| 
      
 1481 
     | 
    
         
            +
              kRB_IVAR_WINDOW_POSITION_CALLBACK         = rb_intern(kRB_IVAR_WINDOW_POSITION_CALLBACK_NAME);
         
     | 
| 
      
 1482 
     | 
    
         
            +
              kRB_IVAR_WINDOW_SIZE_CALLBACK             = rb_intern(kRB_IVAR_WINDOW_SIZE_CALLBACK_NAME);
         
     | 
| 
      
 1483 
     | 
    
         
            +
              kRB_IVAR_WINDOW_CLOSE_CALLBACK            = rb_intern(kRB_IVAR_WINDOW_CLOSE_CALLBACK_NAME);
         
     | 
| 
      
 1484 
     | 
    
         
            +
              kRB_IVAR_WINDOW_REFRESH_CALLBACK          = rb_intern(kRB_IVAR_WINDOW_REFRESH_CALLBACK_NAME);
         
     | 
| 
      
 1485 
     | 
    
         
            +
              kRB_IVAR_WINDOW_FOCUS_CALLBACK            = rb_intern(kRB_IVAR_WINDOW_FOCUS_CALLBACK_NAME);
         
     | 
| 
      
 1486 
     | 
    
         
            +
              kRB_IVAR_WINDOW_ICONIFY_CALLBACK          = rb_intern(kRB_IVAR_WINDOW_ICONIFY_CALLBACK_NAME);
         
     | 
| 
      
 1487 
     | 
    
         
            +
              kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK = rb_intern(kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK_NAME);
         
     | 
| 
      
 1488 
     | 
    
         
            +
              kRB_CVAR_WINDOW_WINDOWS                   = rb_intern(kRB_CVAR_WINDOW_WINDOWS_NAME);
         
     | 
| 
      
 1489 
     | 
    
         
            +
              kRB_CVAR_GLFW_ERROR_CALLBACK              = rb_intern(kRB_CVAR_GLFW_ERROR_CALLBACK_NAME);
         
     | 
| 
      
 1490 
     | 
    
         
            +
              kRB_CVAR_GLFW_MONITOR_CALLBACK            = rb_intern(kRB_CVAR_GLFW_MONITOR_CALLBACK_NAME);
         
     | 
| 
      
 1491 
     | 
    
         
            +
              kRB_CALL                                  = rb_intern(kRB_CALL_NAME);
         
     | 
| 
      
 1492 
     | 
    
         
            +
              kRB_RED                                   = rb_intern(kRB_RED_NAME);
         
     | 
| 
      
 1493 
     | 
    
         
            +
              kRB_GREEN                                 = rb_intern(kRB_GREEN_NAME);
         
     | 
| 
      
 1494 
     | 
    
         
            +
              kRB_BLUE                                  = rb_intern(kRB_BLUE_NAME);
         
     | 
| 
      
 1495 
     | 
    
         
            +
             
     | 
| 
       1447 
1496 
     | 
    
         
             
              s_glfw_module = rb_define_module("Glfw");
         
     | 
| 
       1448 
1497 
     | 
    
         
             
              s_glfw_monitor_klass = rb_define_class_under(s_glfw_module, "Monitor", rb_cObject);
         
     | 
| 
       1449 
1498 
     | 
    
         
             
              s_glfw_window_klass = rb_define_class_under(s_glfw_module, "Window", rb_cObject);
         
     | 
| 
         @@ -1513,11 +1562,11 @@ void Init_glfw3(void) 
     | 
|
| 
       1513 
1562 
     | 
    
         
             
              rb_define_method(s_glfw_window_klass, "set_scroll_callback__", rb_window_set_scroll_callback, 1);
         
     | 
| 
       1514 
1563 
     | 
    
         
             
              rb_define_method(s_glfw_window_klass, "clipboard_string=", rb_window_set_clipboard_string, 1);
         
     | 
| 
       1515 
1564 
     | 
    
         
             
              rb_define_method(s_glfw_window_klass, "clipboard_string", rb_window_get_clipboard_string, 0);
         
     | 
| 
       1516 
     | 
    
         
            -
              rb_cvar_set(s_glfw_window_klass,  
     | 
| 
      
 1565 
     | 
    
         
            +
              rb_cvar_set(s_glfw_window_klass, kRB_CVAR_WINDOW_WINDOWS, rb_hash_new());
         
     | 
| 
       1517 
1566 
     | 
    
         | 
| 
       1518 
1567 
     | 
    
         
             
              /* Glfw */
         
     | 
| 
       1519 
     | 
    
         
            -
              rb_cvar_set(s_glfw_module,  
     | 
| 
       1520 
     | 
    
         
            -
              rb_cvar_set(s_glfw_module,  
     | 
| 
      
 1568 
     | 
    
         
            +
              rb_cvar_set(s_glfw_module, kRB_CVAR_GLFW_ERROR_CALLBACK, Qnil);
         
     | 
| 
      
 1569 
     | 
    
         
            +
              rb_cvar_set(s_glfw_module, kRB_CVAR_GLFW_MONITOR_CALLBACK, Qnil);
         
     | 
| 
       1521 
1570 
     | 
    
         
             
              rb_define_singleton_method(s_glfw_module, "version", rb_glfw_version, 0);
         
     | 
| 
       1522 
1571 
     | 
    
         
             
              rb_define_singleton_method(s_glfw_module, "terminate", rb_glfw_terminate, 0);
         
     | 
| 
       1523 
1572 
     | 
    
         
             
              rb_define_singleton_method(s_glfw_module, "init", rb_glfw_init, 0);
         
     |