Przeglądaj źródła

allow additional onchange handlers

likely to rerender the scene.
Lucas Stadler 10 lat temu
rodzic
commit
78d7413bda
1 zmienionych plików z 9 dodań i 1 usunięć
  1. 9 1
      glsl/sliders.js

+ 9 - 1
glsl/sliders.js

@ -71,7 +71,7 @@ function addSliders(parent, sliders) {
71 71
  });
72 72
}
73 73
74
function initSliders(gl, program, sliders) {
74
function initSliders(gl, program, sliders, onChange) {
75 75
  return sliders.map(function(slider) {
76 76
    switch (slider.type) {
77 77
      case "float":
@ -79,6 +79,10 @@ function initSliders(gl, program, sliders) {
79 79
        
80 80
        slider.onChange = function(ev) {
81 81
          gl.uniform1f(slider.uniform, parseFloat(ev.target.value));
82
          
83
          if (onChange) {
84
            onChange(ev, slider);
85
          }
82 86
        }
83 87
        
84 88
        break;
@ -91,6 +95,10 @@ function initSliders(gl, program, sliders) {
91 95
        slider.onChange = function(ev, i) {
92 96
          slider.values[0] = parseFloat(ev.target.value);
93 97
          gl.uniform2f(slider.uniform, slider.values[0], slider.values[1]);
98
          
99
          if (onChange) {
100
            onChange(ev, slider, i);
101
          }
94 102
        }
95 103
        
96 104
        break;