# HG changeset patch # User John Tsiombikas # Date 1308363228 -10800 # Node ID 06d05a65bd77d51bbbca4d915c315e7ee16b98a3 # Parent 56ae66e3299816161517384a53aa06a94dd787be - added glass_resize and glass_reshape_func diff -r 56ae66e32998 -r 06d05a65bd77 glass.js --- a/glass.js Sat Jun 18 05:13:01 2011 +0300 +++ b/glass.js Sat Jun 18 05:13:48 2011 +0300 @@ -16,6 +16,37 @@ along with this program. If not, see . */ +/* public interface + +bool glass_init(canvas-id, optional-console-textarea-id); +void glass_start(void); + +void glass_display_func(callback); +void glass_reshape_func(callback); +void glass_mouse_func(callback); +void glass_motion_func(callback); + +void glass_resize(x, y); + +WebGLTexture load_texture(uri); + +WebGLShader load_shader(uri, type); +WebGLShader create_shader(source, type, optional-sdrname); +WebGLProgram load_program(vertex-uri, fragment-uri); +WebGLProgram create_program(vertex-shader, fragment-shader); + +void set_uniform1i(program, uniform-name, value); +void set_uniform1f(program, uniform-name, value); +void set_uniform2f(program, uniform-name, x, y); +void set_uniform3f(program, uniform-name, x, y, z); +void set_uniform4f(program, uniform-name, x, y, z, w); +void set_uniform_matrix4fv(program, uniform-name, matrix); + +void request_redisplay(void); + +void logmsg(string); +*/ + var gl; var canvas, console; var glass_data_loaded, glass_data_count; @@ -23,6 +54,7 @@ var glass_start_time = 0; var glass_cb_disp = null; +var glass_cb_reshape = null; var glass_cb_mouse = null; var glass_cb_motion = null; @@ -73,6 +105,10 @@ } glass_start_time = get_msec(); + + if(glass_cb_reshape) { + glass_cb_reshape(canvas.width, canvas.height); + } glass_redraw(); } @@ -81,6 +117,11 @@ glass_cb_disp = func; } +function glass_reshape_func(func) +{ + glass_cb_reshape = func; +} + function glass_mouse_func(func) { glass_cb_mouse = func; @@ -91,6 +132,16 @@ glass_cb_motion = func; } +function glass_resize(x, y) +{ + canvas.width = x; + canvas.height = y; + + if(glass_cb_reshape) { + glass_cb_reshape(x, y); + } +} + function glass_redraw() {