From 94d94a08558c83fb6e447c3e1ed858cf39c0e1ba Mon Sep 17 00:00:00 2001 From: hurikhan Date: Thu, 22 Jan 2015 01:14:50 +0900 Subject: [PATCH] * fix compilation without scons experimental_wm_api=yes * Extended the demo with an addional MouseGrab Test --- demos/misc/window_management/control.gd | 6 ++++-- demos/misc/window_management/engine.cfg | 7 +++++++ .../window_management/window_management.scn | Bin 4030 -> 4268 bytes platform/x11/os_x11.cpp | 10 +++++----- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/demos/misc/window_management/control.gd b/demos/misc/window_management/control.gd index 4929b1376cb..6dc92821490 100644 --- a/demos/misc/window_management/control.gd +++ b/demos/misc/window_management/control.gd @@ -33,7 +33,6 @@ func _fixed_process(delta): get_node("Label_Screen0_Position").set_text(str("Screen0 Position:\n",OS.get_screen_position() ) ) - if(OS.get_screen_count() > 1): get_node("Button_Screen0").show() get_node("Button_Screen1").show() @@ -63,6 +62,7 @@ func _fixed_process(delta): get_node("Button_FixedSize").set_pressed( !OS.is_resizable() ) get_node("Button_Minimized").set_pressed( OS.is_minimized() ) get_node("Button_Maximized").set_pressed( OS.is_maximized() ) + get_node("Button_Mouse_Grab").set_pressed( Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED ) func _ready(): @@ -113,4 +113,6 @@ func _on_Button_Maximized_pressed(): OS.set_maximized(true) - +func _on_Button_Mouse_Grab_pressed(): + var observer = get_node("../Observer") + observer.state = observer.STATE_GRAB diff --git a/demos/misc/window_management/engine.cfg b/demos/misc/window_management/engine.cfg index 6ce3d51aee2..c53bd45fb73 100644 --- a/demos/misc/window_management/engine.cfg +++ b/demos/misc/window_management/engine.cfg @@ -10,3 +10,10 @@ fullscreen=false resizable=true width=800 height=600 + +[input] + +move_forward=[key(W)] +move_backwards=[key(S)] +move_left=[key(A)] +move_right=[key(D)] diff --git a/demos/misc/window_management/window_management.scn b/demos/misc/window_management/window_management.scn index baf03bdfd16bbff6221d71f493bfcd44e5d7533a..40e6e64cef93a1b4cf0c8dd4d84a91c40582b950 100644 GIT binary patch literal 4268 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 - if (true) { - rasterizer = memnew( RasterizerGLES2 ); - } else { - //rasterizer = memnew( RasterizerGLES1 ); - }; + rasterizer = memnew( RasterizerGLES2 ); #endif visual_server = memnew( VisualServerRaster(rasterizer) ); @@ -1164,10 +1160,12 @@ void OS_X11::process_xevents() { case FocusIn: minimized = false; +#ifdef EXPERIMENTAL_WM_API if(current_videomode.fullscreen) { set_wm_fullscreen(true); visual_server->init(); } +#endif main_loop->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN); if (mouse_mode==MOUSE_MODE_CAPTURED) { XGrabPointer(x11_display, x11_window, True, @@ -1178,11 +1176,13 @@ void OS_X11::process_xevents() { break; case FocusOut: +#ifdef EXPERIMENTAL_WM_API if(current_videomode.fullscreen) { set_wm_fullscreen(false); set_minimized(true); visual_server->init(); } +#endif main_loop->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT); if (mouse_mode==MOUSE_MODE_CAPTURED) { //dear X11, I try, I really try, but you never work, you do whathever you want.