aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-03-06 12:37:31 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-03-06 12:37:31 -0800
commit154f2b7fa71d78d29d010c808025f10a984c705c (patch)
tree183750497ae8087204eb55101815e091fe212349 /src/library_sdl.js
parent9b16e851b2639b9250bd00f81c1979375fc9455a (diff)
parentaaa428216a0c4b8b3b1ab76d53a0a61edf2c974e (diff)
Merge pull request #845 from MichaelRiss/FullScreenEnhancement
Improved fullscreen functionality.
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index d707a8bf..5033b27e 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -661,8 +661,8 @@ var LibrarySDL = {
{{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*0', '0', '0', 'i32') }}} // TODO
{{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*1', '0', '0', 'i32') }}} // TODO
{{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*2', '0', '0', 'void*') }}}
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*3', '0', 'SDL.defaults.width', 'i32') }}}
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*4', '0', 'SDL.defaults.height', 'i32') }}}
+ {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*3', '0', 'Module["canvas"].width', 'i32') }}}
+ {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*4', '0', 'Module["canvas"].height', 'i32') }}}
return ret;
},
@@ -919,7 +919,26 @@ var LibrarySDL = {
},
SDL_ShowCursor: function(toggle) {
- // TODO
+ switch (toggle) {
+ case 0: // SDL_DISABLE
+ if (Browser.isFullScreen) { // only try to lock the pointer when in full screen mode
+ Module['canvas'].requestPointerLock();
+ return 0;
+ } else { // else return SDL_ENABLE to indicate the failure
+ return 1;
+ }
+ break;
+ case 1: // SDL_ENABLE
+ Module['canvas'].exitPointerLock();
+ return 1;
+ break;
+ case -1: // SDL_QUERY
+ return !Browser.pointerLock;
+ break;
+ default:
+ console.log( "SDL_ShowCursor called with unknown toggle parameter value: " + toggle + "." );
+ break;
+ }
},
SDL_GetError: function() {
@@ -1075,6 +1094,15 @@ var LibrarySDL = {
},
SDL_WM_GrabInput: function() {},
+
+ SDL_WM_ToggleFullScreen: function(surf) {
+ if (Browser.isFullScreen) {
+ Module['canvas'].cancelFullScreen();
+ return 1;
+ } else {
+ return 0;
+ }
+ },
// SDL_Image