# HG changeset patch # User John Tsiombikas # Date 1308364179 -10800 # Node ID 7b3ed284e4bb2b8fd006343675dae5f3c7acdb2d # Parent 06d05a65bd77d51bbbca4d915c315e7ee16b98a3 added glass_fullscreen diff -r 06d05a65bd77 -r 7b3ed284e4bb glass.js --- a/glass.js Sat Jun 18 05:13:48 2011 +0300 +++ b/glass.js Sat Jun 18 05:29:39 2011 +0300 @@ -49,9 +49,11 @@ var gl; var canvas, console; +var glass_orig_width, glass_orig_height; var glass_data_loaded, glass_data_count; var glass_progr_prog; var glass_start_time = 0; +var glass_fullscr = false; var glass_cb_disp = null; var glass_cb_reshape = null; @@ -76,6 +78,9 @@ return false; } + glass_orig_width = canvas.width; + glass_orig_height = canvas.height; + var vs = create_shader(glass_progr_vs_src, gl.VERTEX_SHADER); var ps = create_shader(glass_progr_ps_src, gl.FRAGMENT_SHADER); if(!vs || !ps || !(glass_progr_prog = create_program(vs, ps))) { @@ -134,14 +139,49 @@ function glass_resize(x, y) { - canvas.width = x; - canvas.height = y; + canvas.width = glass_orig_width = x; + canvas.height = glass_orig_height = y; if(glass_cb_reshape) { glass_cb_reshape(x, y); } } +function glass_fullscreen(state) +{ + if(state == null) { + glass_fullscr = !glass_fullscr; + } else { + glass_fullscr = state; + } + + if(glass_fullscr) { + canvas.style.position = "absolute"; + canvas.style.left = 0; + canvas.style.top = 0; + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + + window.onresize = function() { + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + if(glass_cb_reshape) { + glass_cb_reshape(canvas.width, canvas.height); + } + } + } else { + canvas.style.position = "static"; + canvas.width = glass_orig_width; + canvas.height = glass_orig_height; + + window.onresize = null; + } + + if(glass_cb_reshape) { + glass_cb_reshape(canvas.width, canvas.height); + } +} + function glass_redraw() {