From 03c453ac7dc2b22bfb864e563b7f3b8424bbcff4 Mon Sep 17 00:00:00 2001 From: hurikhan Date: Thu, 22 Jan 2015 05:35:39 +0900 Subject: [PATCH] * Cleanup for PR * Demo shows a Dialog with not implemented methods at startup --- README.md | 21 ---- demos/misc/window_management/control.gd | 68 +++++++++++- .../window_management/observer/observer.gd | 1 + .../observer/observer_hud.gd | 98 ------------------ .../window_management/window_management.scn | Bin 4268 -> 4744 bytes main/main.cpp | 1 + 6 files changed, 69 insertions(+), 120 deletions(-) delete mode 100644 demos/misc/window_management/observer/observer_hud.gd diff --git a/README.md b/README.md index 35841c8b29..3456290f74 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,3 @@ -### x11-window-management branch - -#### New GDScript Methods for the OS Class: -* int OS.get_screen_count() -* int OS.get_screen() -* void OS.set_screen(int screen) -* Vector2 OS.get_screen_position(int screen=0) -* Vector2 OS.get_screen_size(int screen=0) -* Vector2 OS.get_window_position() -* void OS.set_window_position(Vector2 position) -* Vector2 OS.get_window_size() -* void OS.set_window_size(Vector2 size) -* void OS.set_fullscreen(bool enabled) -* bool OS.is_fullscreen() - -#### Demo -A demo/test is available at "demos/misc/window-management" - -#### Scons Commandline -'''scons p=x11 experimental_wm_api=yes''' - ![GODOT](/logo.png) ### The Engine diff --git a/demos/misc/window_management/control.gd b/demos/misc/window_management/control.gd index 6dc9282149..d329237aed 100644 --- a/demos/misc/window_management/control.gd +++ b/demos/misc/window_management/control.gd @@ -19,6 +19,9 @@ func _fixed_process(delta): if(OS.is_maximized()): modetext += "Maximized\n" + if(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED): + modetext += "MouseGrab\n" + get_node("Label_Mode").set_text(modetext) get_node("Label_Position").set_text( str("Position:\n", OS.get_window_position() ) ) @@ -65,8 +68,71 @@ func _fixed_process(delta): get_node("Button_Mouse_Grab").set_pressed( Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED ) +func check_wm_api(): + var s = "" + if( !OS.has_method("get_screen_count") ): + s += " - get_screen_count()\n" + + if( !OS.has_method("get_screen") ): + s += " - get_screen()\n" + + if( !OS.has_method("set_screen") ): + s += " - set_screen()\n" + + if( !OS.has_method("get_screen_position") ): + s += " - get_screen_position()\n" + + if( !OS.has_method("get_screen_size") ): + s += " - get_screen_size()\n" + + if( !OS.has_method("get_window_position") ): + s += " - get_window_position()\n" + + if( !OS.has_method("set_window_position") ): + s += " - set_window_position()\n" + + if( !OS.has_method("get_window_size") ): + s += " - get_window_size()\n" + + if( !OS.has_method("set_window_size") ): + s += " - set_window_size()\n" + + if( !OS.has_method("set_fullscreen") ): + s += " - set_fullscreen()\n" + + if( !OS.has_method("is_fullscreen") ): + s += " - is_fullscreen()\n" + + if( !OS.has_method("set_resizable") ): + s += " - set_resizable()\n" + + if( !OS.has_method("is_resizable") ): + s += " - is_resizable()\n" + + if( !OS.has_method("set_minimized") ): + s += " - set_minimized()\n" + + if( !OS.has_method("is_minimized") ): + s += " - is_minimized()\n" + + if( !OS.has_method("set_maximized") ): + s += " - set_maximized()\n" + + if( !OS.has_method("is_maximized") ): + s += " - is_maximized()\n" + + if( s.length() == 0 ): + return true + else: + var text = get_node("ImplementationDialog/Text").get_text() + get_node("ImplementationDialog/Text").set_text( text + s ) + get_node("ImplementationDialog").show() + return false + + func _ready(): - set_fixed_process(true) + if( check_wm_api() ): + set_fixed_process(true) func _on_Button_MoveTo_pressed(): diff --git a/demos/misc/window_management/observer/observer.gd b/demos/misc/window_management/observer/observer.gd index 7bec0f5301..d27912a670 100644 --- a/demos/misc/window_management/observer/observer.gd +++ b/demos/misc/window_management/observer/observer.gd @@ -76,3 +76,4 @@ func _ready(): set_process_input(true) state = STATE_MENU + diff --git a/demos/misc/window_management/observer/observer_hud.gd b/demos/misc/window_management/observer/observer_hud.gd deleted file mode 100644 index 24e81b02ba..0000000000 --- a/demos/misc/window_management/observer/observer_hud.gd +++ /dev/null @@ -1,98 +0,0 @@ -var parent - -func printdebug(): - - var s - - if(parent.state == parent.STATE_GAME): - s = str( "TIME_FPS: ", Performance.get_monitor(Performance.TIME_FPS), "\n") - s += str("OBJECT_COUNT: ", Performance.get_monitor(Performance.OBJECT_COUNT), "\n") - s += str("OBJECT_RESOURCE_COUNT : ", Performance.get_monitor(Performance.OBJECT_RESOURCE_COUNT), "\n") - s += str("OBJECT_NODE_COUNT : ", Performance.get_monitor(Performance.OBJECT_NODE_COUNT), "\n") - s += str("RENDER_OBJECTS_IN_FRAME : ", Performance.get_monitor(Performance.RENDER_OBJECTS_IN_FRAME), "\n") - s += str("RENDER_VERTICES_IN_FRAME : ", Performance.get_monitor(Performance.RENDER_VERTICES_IN_FRAME), "\n") - s += str("RENDER_DRAW_CALLS_IN_FRAME : ", Performance.get_monitor(Performance.RENDER_DRAW_CALLS_IN_FRAME), "\n") - s += str("RENDER_VERTICES_IN_FRAME : ", Performance.get_monitor(Performance.RENDER_VERTICES_IN_FRAME), "\n") - # s += str("RENDER_USAGE_VIDEO_MEM_TOTAL : ", Performance.get_monitor(Performance.RENDER_USAGE_VIDEO_MEM_TOTAL), "\n") - # s += str("RENDER_VIDEO_MEM_USED : ", Performance.get_monitor(Performance.RENDER_VIDEO_MEM_USED), "\n") - # s += str("RENDER_TEXTURE_MEM_USED : ", Performance.get_monitor(Performance.RENDER_TEXTURE_MEM_USED), "\n") - # s += str("RENDER_VERTEX_MEM_USED : ", Performance.get_monitor(Performance.RENDER_VERTEX_MEM_USED), "\n") - s += str("CUBES: ", get_node("/root/World").world.size(), "\n") - else: - s = "" - - get_node("Label_Debug").set_text(s) - - -func _fixed_process(delta): - parent = get_parent() - - printdebug() - - if( parent.state == parent.STATE_MENU ): - get_node("Menu").show() - else: - get_node("Menu").hide() - - - -func _ready(): - set_fixed_process(true) - - -func _on_Fullscreen_toggled( pressed ): - if( pressed ): - OS.set_fullscreen(true) - else: - OS.set_fullscreen(false) - - -func _on_DebugInfo_toggled( pressed ): - if( pressed ): - get_node("Label_Debug").show() - else: - get_node("Label_Debug").hide() - - -func _on_Save_pressed(): - var file_dialog = get_node("Menu/SaveDialog") - file_dialog.clear_filters() - file_dialog.add_filter("*.json") - file_dialog.set_mode(3) - file_dialog.show() - file_dialog._update_file_list() - - -func _on_SaveDialog_file_selected( path ): - get_node("/root/World").save_world( path ) - - -func _on_Load_pressed(): - var file_dialog = get_node("Menu/LoadDialog") - file_dialog.clear_filters() - file_dialog.add_filter("*.json") - file_dialog.set_mode(0) - file_dialog.show() - file_dialog._update_file_list() - - -func _on_LoadDialog_file_selected( path ): - get_node("/root/World").load_world( path ) - - -func _on_Server_toggled( pressed ): - if pressed: - get_node("/root/World/Server").start() - get_node("Menu/Client").hide() - else: - get_node("/root/World/Server").stop() - get_node("Menu/Client").show() - - -func _on_Client_toggled( pressed ): - if pressed: - get_node("/root/World/Client").start() - get_node("Menu/Server").hide() - else: - get_node("/root/World/Client").stop() - get_node("Menu/Server").show() \ No newline at end of file diff --git a/demos/misc/window_management/window_management.scn b/demos/misc/window_management/window_management.scn index 40e6e64cef93a1b4cf0c8dd4d84a91c40582b950..bf7a0871e7c6ad7c8ab50d4335408fc8eb7f8867 100644 GIT binary patch delta 2736 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 Y0h93x+}uo{W+?*$Lr`##GpLyg0MxiFO8@`> delta 2118 zcmeBBU85)!6zuHG00IIG3_Eoh7$&nbFlewbFkEDsD0h&BAzFcXve~VJLQd&A_b4=RVUx+*MV1 zDN|m2a^eF9W(6rHp94}1c}kxi)H6xB^gBp7C^42Ls=a5*D=AL+#o(%7?jUo3!6Ti8 zfuX^k;QCa8BX#H@yU#=`9<*sIi;$1nc|B})Uz3i)gL@y*6@f` z6w~;bAm-rhVDIpaA$ieahhT^J1LB>o4f_x1J8V}uu5m?ClyVSo3|HfMz^Ut?!jzv@oP3*oLXZ04+ghfF z9Sj_p6QUeyT#6h79Jm>b8#=r?9E6-dGNq)ZspzOrVk*in(cqkH$EL3^ztPe`)v?2| z!9mgCkeUHQiK-++YJv>&n{{s-9VA>WCik+*J6baoC7K@G?zzQLfju>^EVC#-FW05| zA#VJ7h%?WcDQO4NzC_Ep zleIV_zdSx&C-(u1r}O6oNiAJf{Rb@4&Miz;d8vzEGM_zj#@1oGckJYRb{UrBRo+`C z_p?i+L}{;Nh}T}yrQvXxMK?!5rC4JwLu!Jmv$=yyR-B`a1A~LzGainPSq$+B3Jy9d zUmW@zgBO-|u(X^#=okViW^7hK2dr7dS{UFfcGPurV;OGB7YmDlkh< zmgSJtl2VXiU{+vu&|qL!U}p_ZF3Kz@Nf2XTQs8qCW8hF=XG<T2?M_Rpu6nj}_YI#9^QAxuMhd@VlM|lTD zhbqRDOhqTAykt<+oY+_I=pezsrr^X<5nq&Fk|4_TE=V)MG0>Y+A#>zu%nI%3qKP5GJ#Q|9c5d~{-q$^7{ShL0_ z=Of2D69Yp-LcQ}vj^YdpP{bEyraWLtcX|(s?gi%{(LLLRGeMszzbI2x=K+i11CCb= z6$#gvtlSC{vKV<89xzT$<5FULI=PceT1&+sLD0G0!Q~-?94OMC^1NqBE=o^)VGgq#7#vqkKF6gd!zjq0usn^AEjd50q$oefjm7zlgStZ>gOGy4vB`Yg z5@Ag)ZpO@Rr8zkbcNb_e6f96;Se2CSXwKlK7RHeR{A+;{4k!=36JJ~QMg zDl-)`C@9o0JW>3?@P7e=0$&1y1D}Fe(gp_xrx#9p4t;TucHn-%%-|5}5bGfA!0e#! zz;M9YiT{ASgZ2Yv2FE}LW`}Zjp9k#L4%rUwE{qQDPV*i3o%tNhUF;qBU3whY9rrtE zyX|Qbs(-~wG z)E%ZX$SSZqsC!L*!h5}5{V{{t1HH#C>JOM7yXZUAJ1{s%J1{s1J1{&^cYZ9~@8JDF z{V{{NLd#?AewWW6MZX_NK4xNI;9_QAU{FzDW?)iaW>8gNW)M(dW>8aLc3@{vS72x0 zQDA1!R$yk}QebA#0gLJ`U}w-%V0SQP&{tq*;80*@Fi>EwcaUc=T)@s?q`=O=uE6ZT zz`*RlqQJnQrNGQ!p}@@WUjdX)*%=r?at`ti%?#oSJPySS5)0TFq!rj1gcX<>WE7Yo zeqs<&U}lh0V0M_#Ag{pgz`&@$(7?c;*ucifpajy-psc{+F!_P;V+IWcXOOon73z%@ z9zD=_%%G`Y{($+hqyB^F$BvIdQdSD9!7@(n511c2`9Fw$?6m%Y@?!=Yh5HQF3d{All+2X?334$qxH@xknL+G)2#yF;)8!z1C{&cct_cRPJ|R%Wqd zU|`@>U}msaV0PeVbYN&;XK)1h!%2bNL7u@`f!&#z!DRuvBfIlz=lPR;1>~fh=Q}Vs z3Nv^raDW2BVgEy8VdvKmnT1`|y+{SlDCrLuFwGRz-FOHU(yuMFgPcK)2LS3jbpQYW diff --git a/main/main.cpp b/main/main.cpp index 27d7d97e85..f0e376a045 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -627,6 +627,7 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas } } + GLOBAL_DEF("display/width",video_mode.width); GLOBAL_DEF("display/height",video_mode.height); GLOBAL_DEF("display/fullscreen",video_mode.fullscreen);