2023-01-05 13:25:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  editor_run_native.cpp                                                 */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                         This file is part of:                          */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                             GODOT ENGINE                               */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                        https://godotengine.org                         */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Permission is hereby granted, free of charge, to any person obtaining  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* a copy of this software and associated documentation files (the        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* "Software"), to deal in the Software without restriction, including    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* without limitation the rights to use, copy, modify, merge, publish,    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* distribute, sublicense, and/or sell copies of the Software, and to     */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* permit persons to whom the Software is furnished to do so, subject to  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* the following conditions:                                              */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* The above copyright notice and this permission notice shall be         */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* included in all copies or substantial portions of the Software.        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:50:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "editor_run_native.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-12 02:46:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "editor/editor_node.h" 
  
						 
					
						
							
								
									
										
										
										
											2022-07-31 21:14:15 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "editor/editor_settings.h" 
  
						 
					
						
							
								
									
										
										
										
											2023-04-12 21:02:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "editor/export/editor_export.h" 
  
						 
					
						
							
								
									
										
										
										
											2022-07-17 12:24:37 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "editor/export/editor_export_platform.h" 
  
						 
					
						
							
								
									
										
										
										
											2024-01-15 13:14:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "editor/themes/editor_scale.h" 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  EditorRunNative : : _notification ( int  p_what )  {  
						 
					
						
							
								
									
										
										
										
											2022-02-16 00:52:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									switch  ( p_what )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  NOTIFICATION_THEME_CHANGED :  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-10-09 15:21:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											remote_debug - > set_button_icon ( get_editor_theme_icon ( SNAME ( " PlayRemote " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-16 00:52:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										}  break ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-03 18:01:11 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-16 00:52:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  NOTIFICATION_PROCESS :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											bool  changed  =  EditorExport : : get_singleton ( ) - > poll_export_platforms ( )  | |  first ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-16 00:52:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( changed )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												PopupMenu  * popup  =  remote_debug - > get_popup ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												popup - > clear ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												int  device_shortcut_id  =  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-16 22:16:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												for  ( int  i  =  0 ;  i  <  EditorExport : : get_singleton ( ) - > get_export_preset_count ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													Ref < EditorExportPreset >  preset  =  EditorExport : : get_singleton ( ) - > get_export_preset ( i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													Ref < EditorExportPlatform >  eep  =  preset - > get_platform ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													if  ( eep . is_null ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-16 22:16:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													int  platform_idx  =  - 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													for  ( int  j  =  0 ;  j  <  EditorExport : : get_singleton ( ) - > get_export_platform_count ( ) ;  j + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( eep - > get_name ( )  = =  EditorExport : : get_singleton ( ) - > get_export_platform ( j ) - > get_name ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															platform_idx  =  j ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-16 00:25:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															break ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-16 22:16:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													int  dc  =  MIN ( eep - > get_options_count ( ) ,  9000 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-16 22:16:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													String  error ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-16 00:25:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													if  ( dc  >  0  & &  preset - > is_runnable ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														popup - > add_icon_item ( eep - > get_run_icon ( ) ,  eep - > get_name ( ) ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														popup - > set_item_disabled ( - 1 ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														for  ( int  j  =  0 ;  j  <  dc ;  j + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-16 22:16:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															popup - > add_icon_item ( eep - > get_option_icon ( j ) ,  eep - > get_option_label ( j ) ,  10000  *  platform_idx  +  j ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															popup - > set_item_tooltip ( - 1 ,  eep - > get_option_tooltip ( j ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															popup - > set_item_indent ( - 1 ,  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															if  ( device_shortcut_id  < =  4 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																// Assign shortcuts for the first 4 devices added in the list.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																popup - > set_item_shortcut ( - 1 ,  ED_GET_SHORTCUT ( vformat ( " remote_deploy/deploy_to_device_%d " ,  device_shortcut_id ) ) ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																device_shortcut_id  + =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															} 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-20 17:01:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( popup - > get_item_count ( )  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													remote_debug - > set_disabled ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													remote_debug - > set_tooltip_text ( TTR ( " No Remote Deploy export presets configured. " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													remote_debug - > set_disabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													remote_debug - > set_tooltip_text ( TTR ( " Remote Deploy " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-16 00:52:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												first  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  break ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  EditorRunNative : : _confirm_run_native ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									run_confirmed  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									resume_run_native ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-12 21:02:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Error  EditorRunNative : : start_run_native ( int  p_id )  {  
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( p_id  <  0 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-20 12:24:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  OK ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 02:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  platform  =  p_id  /  10000 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  idx  =  p_id  %  10000 ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									resume_id  =  p_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-20 17:01:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! EditorNode : : get_singleton ( ) - > ensure_main_scene ( true ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  OK ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-20 17:01:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-23 20:14:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Ref < EditorExportPlatform >  eep  =  EditorExport : : get_singleton ( ) - > get_export_platform ( platform ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ERR_FAIL_COND_V ( eep . is_null ( ) ,  ERR_UNAVAILABLE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-23 20:14:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Ref < EditorExportPreset >  preset ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  ( int  i  =  0 ;  i  <  EditorExport : : get_singleton ( ) - > get_export_preset_count ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Ref < EditorExportPreset >  ep  =  EditorExport : : get_singleton ( ) - > get_export_preset ( i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ep - > is_runnable ( )  & &  ep - > get_platform ( )  = =  eep )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											preset  =  ep ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( preset . is_null ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-08-03 14:14:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										EditorNode : : get_singleton ( ) - > show_warning ( TTR ( " No runnable export preset found for this platform. \n Please add a runnable preset in the Export menu or define an existing preset as runnable. " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-20 12:24:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  ERR_UNAVAILABLE ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-08 20:08:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-23 20:14:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									String  architecture  =  eep - > get_device_architecture ( idx ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ! run_confirmed  & &  ! architecture . is_empty ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										String  preset_arch  =  " architectures/ "  +  architecture ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										bool  is_arch_enabled  =  preset - > get ( preset_arch ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! is_arch_enabled )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											String  warning_message  =  vformat ( TTR ( " Warning: The CPU architecture  \" %s \"  is not active in your export preset. \n \n " ) ,  Variant ( architecture ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											warning_message  + =  TTR ( " Run  \" Remote Deploy \"  anyway? " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											run_native_confirm - > set_text ( warning_message ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											run_native_confirm - > popup_centered ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  OK ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									run_confirmed  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-17 18:22:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									emit_signal ( SNAME ( " native_run " ) ,  preset ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-06 02:37:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-17 10:44:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									BitField < EditorExportPlatform : : DebugFlags >  flags  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-08 18:58:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  deploy_debug_remote  =  is_deploy_debug_remote_enabled ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  deploy_dumb  =  EditorSettings : : get_singleton ( ) - > get_project_metadata ( " debug_options " ,  " run_file_server " ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 13:56:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  debug_collisions  =  EditorSettings : : get_singleton ( ) - > get_project_metadata ( " debug_options " ,  " run_debug_collisions " ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-08 18:58:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  debug_navigation  =  EditorSettings : : get_singleton ( ) - > get_project_metadata ( " debug_options " ,  " run_debug_navigation " ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( deploy_debug_remote )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-17 10:44:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										flags . set_flag ( EditorExportPlatform : : DEBUG_FLAG_REMOTE_DEBUG ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( deploy_dumb )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-17 10:44:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										flags . set_flag ( EditorExportPlatform : : DEBUG_FLAG_DUMB_CLIENT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( debug_collisions )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-17 10:44:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										flags . set_flag ( EditorExportPlatform : : DEBUG_FLAG_VIEW_COLLISIONS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( debug_navigation )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-17 10:44:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										flags . set_flag ( EditorExportPlatform : : DEBUG_FLAG_VIEW_NAVIGATION ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-14 16:41:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-25 21:55:59 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 18:34:24 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									eep - > clear_messages ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Error  err  =  eep - > run ( preset ,  idx ,  flags ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 18:34:24 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									result_dialog_log - > clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( eep - > fill_log_messages ( result_dialog_log ,  err ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 10:46:53 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( eep - > get_worst_message_type ( )  > =  EditorExportPlatform : : EXPORT_MESSAGE_ERROR )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											result_dialog - > popup_centered_ratio ( 0.5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 18:34:24 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  err ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 02:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  EditorRunNative : : resume_run_native ( )  {  
						 
					
						
							
								
									
										
										
										
											2023-04-12 21:02:28 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									start_run_native ( resume_id ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 02:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								void  EditorRunNative : : _bind_methods ( )  {  
						 
					
						
							
								
									
										
										
										
											2020-03-16 09:37:43 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ADD_SIGNAL ( MethodInfo ( " native_run " ,  PropertyInfo ( Variant : : OBJECT ,  " preset " ,  PROPERTY_HINT_RESOURCE_TYPE ,  " EditorExportPreset " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  EditorRunNative : : is_deploy_debug_remote_enabled ( )  const  {  
						 
					
						
							
								
									
										
										
										
											2024-11-19 16:12:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  EditorSettings : : get_singleton ( ) - > get_project_metadata ( " debug_options " ,  " run_deploy_remote_debug " ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-20 13:03:46 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								EditorRunNative : : EditorRunNative ( )  {  
						 
					
						
							
								
									
										
										
										
											2024-10-18 19:07:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ED_SHORTCUT ( " remote_deploy/deploy_to_device_1 " ,  TTRC ( " Deploy to First Device in List " ) ,  KeyModifierMask : : SHIFT  |  Key : : F5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ED_SHORTCUT_OVERRIDE ( " remote_deploy/deploy_to_device_1 " ,  " macos " ,  KeyModifierMask : : META  |  KeyModifierMask : : SHIFT  |  Key : : B ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-10-18 19:07:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ED_SHORTCUT ( " remote_deploy/deploy_to_device_2 " ,  TTRC ( " Deploy to Second Device in List " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ED_SHORTCUT ( " remote_deploy/deploy_to_device_3 " ,  TTRC ( " Deploy to Third Device in List " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ED_SHORTCUT ( " remote_deploy/deploy_to_device_4 " ,  TTRC ( " Deploy to Fourth Device in List " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									remote_debug  =  memnew ( MenuButton ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-20 19:52:20 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									remote_debug - > set_flat ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									remote_debug - > set_theme_type_variation ( " RunBarButton " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-14 14:13:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									remote_debug - > get_popup ( ) - > connect ( SceneStringName ( id_pressed ) ,  callable_mp ( this ,  & EditorRunNative : : start_run_native ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-18 20:41:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									remote_debug - > set_tooltip_text ( TTR ( " Remote Deploy " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 23:15:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									remote_debug - > set_disabled ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-29 11:21:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									add_child ( remote_debug ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 18:34:24 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									result_dialog  =  memnew ( AcceptDialog ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result_dialog - > set_title ( TTR ( " Project Run " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result_dialog_log  =  memnew ( RichTextLabel ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result_dialog_log - > set_custom_minimum_size ( Size2 ( 300 ,  80 )  *  EDSCALE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result_dialog - > add_child ( result_dialog_log ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									add_child ( result_dialog ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									result_dialog - > hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									run_native_confirm  =  memnew ( ConfirmationDialog ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									add_child ( run_native_confirm ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-14 14:28:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									run_native_confirm - > connect ( SceneStringName ( confirmed ) ,  callable_mp ( this ,  & EditorRunNative : : _confirm_run_native ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 00:01:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									set_process ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}