2023-01-05 13:25:55 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*  xr_interface_extension.h                                              */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                         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.                 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifndef XR_INTERFACE_EXTENSION_H 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define XR_INTERFACE_EXTENSION_H 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-09 00:47:36 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "servers/xr/xr_interface.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  XRInterfaceExtension  :  public  XRInterface  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDCLASS ( XRInterfaceExtension ,  XRInterface ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								public : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								private : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									bool  can_add_blits  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Vector < BlitToScreen >  blits ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								protected : 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_THREAD_SAFE_CLASS_ 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-01 16:42:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									static  void  _bind_methods ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								public : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									/** general interface information **/ 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 11:34:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  StringName  get_name ( )  const  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  uint32_t  get_capabilities ( )  const  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( StringName ,  _get_name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( uint32_t ,  _get_capabilities ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 11:34:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  bool  is_initialized ( )  const  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  bool  initialize ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  void  uninitialize ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 12:26:10 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  Dictionary  get_system_info ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( bool ,  _is_initialized ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( bool ,  _initialize ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0 ( _uninitialize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 12:26:10 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( Dictionary ,  _get_system_info ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-29 16:05:11 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									/** input and output **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  PackedStringArray  get_suggested_tracker_names ( )  const  override ;  /* return a list of likely/suggested tracker names */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  PackedStringArray  get_suggested_pose_names ( const  StringName  & p_tracker_name )  const  override ;  /* return a list of likely/suggested action names for this tracker */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  TrackingStatus  get_tracking_status ( )  const  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-29 16:05:11 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  void  trigger_haptic_pulse ( const  String  & p_action_name ,  const  StringName  & p_tracker_name ,  double  p_frequency ,  double  p_amplitude ,  double  p_duration_sec ,  double  p_delay_sec  =  0 )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( PackedStringArray ,  _get_suggested_tracker_names ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL1RC ( PackedStringArray ,  _get_suggested_pose_names ,  const  StringName  & ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-15 20:33:20 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( XRInterface : : TrackingStatus ,  _get_tracking_status ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-29 16:05:11 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL6 ( _trigger_haptic_pulse ,  const  String  & ,  const  StringName  & ,  double ,  double ,  double ,  double ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									/** specific to VR **/ 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-27 21:51:30 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  bool  supports_play_area_mode ( XRInterface : : PlayAreaMode  p_mode )  override ;  /* query if this interface supports this play area mode */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  XRInterface : : PlayAreaMode  get_play_area_mode ( )  const  override ;  /* get the current play area mode */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  bool  set_play_area_mode ( XRInterface : : PlayAreaMode  p_mode )  override ;  /* change the play area mode, note that this should return false if the mode is not available */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  PackedVector3Array  get_play_area ( )  const  override ;  /* if available, returns an array of vectors denoting the play area the player can move around in */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL1RC ( bool ,  _supports_play_area_mode ,  XRInterface : : PlayAreaMode ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-15 20:33:20 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( XRInterface : : PlayAreaMode ,  _get_play_area_mode ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL1RC ( bool ,  _set_play_area_mode ,  XRInterface : : PlayAreaMode ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-27 21:51:30 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( PackedVector3Array ,  _get_play_area ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									/** specific to AR **/ 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 11:34:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  bool  get_anchor_detection_is_enabled ( )  const  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  void  set_anchor_detection_is_enabled ( bool  p_enable )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  int  get_camera_feed_id ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( bool ,  _get_anchor_detection_is_enabled ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL1 ( _set_anchor_detection_is_enabled ,  bool ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0RC ( int ,  _get_camera_feed_id ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									/** rendering and internal **/ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  Size2  get_render_target_size ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-07 23:19:04 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  uint32_t  get_view_count ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  Transform3D  get_camera_transform ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  Transform3D  get_transform_for_view ( uint32_t  p_view ,  const  Transform3D  & p_cam_transform )  override ; 
							 
						 
					
						
							
								
									
										
										
											
												Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
											 
										 
										
											2022-07-20 01:11:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  Projection  get_projection_for_view ( uint32_t  p_view ,  double  p_aspect ,  double  p_z_near ,  double  p_z_far )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-11 22:33:54 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  RID  get_vrs_texture ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-01 18:10:53 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  RID  get_color_texture ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  RID  get_depth_texture ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  RID  get_velocity_texture ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( Size2 ,  _get_render_target_size ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( uint32_t ,  _get_view_count ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( Transform3D ,  _get_camera_transform ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL2R ( Transform3D ,  _get_transform_for_view ,  uint32_t ,  const  Transform3D  & ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-28 14:32:40 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL4R ( PackedFloat64Array ,  _get_projection_for_view ,  uint32_t ,  double ,  double ,  double ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-11 22:33:54 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( RID ,  _get_vrs_texture ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-01 18:10:53 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( RID ,  _get_color_texture ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( RID ,  _get_depth_texture ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0R ( RID ,  _get_velocity_texture ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-28 14:32:40 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									void  add_blit ( RID  p_render_target ,  Rect2  p_src_rect ,  Rect2i  p_dst_rect ,  bool  p_use_layer  =  false ,  uint32_t  p_layer  =  0 ,  bool  p_apply_lens_distortion  =  false ,  Vector2  p_eye_center  =  Vector2 ( ) ,  double  p_k1  =  0.0 ,  double  p_k2  =  0.0 ,  double  p_upscale  =  1.0 ,  double  p_aspect_ratio  =  1.0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 11:34:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  void  process ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 12:25:20 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									virtual  void  pre_render ( )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  bool  pre_draw_viewport ( RID  p_render_target )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  Vector < BlitToScreen >  post_draw_viewport ( RID  p_render_target ,  const  Rect2  & p_screen_rect )  override ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									virtual  void  end_frame ( )  override ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-07 23:19:04 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 15:23:16 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0 ( _process ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-26 12:25:20 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									GDVIRTUAL0 ( _pre_render ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL1R ( bool ,  _pre_draw_viewport ,  RID ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL2 ( _post_draw_viewport ,  RID ,  const  Rect2  & ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GDVIRTUAL0 ( _end_frame ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-29 12:52:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									/* access to some internals we need */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									RID  get_render_target_texture ( RID  p_render_target ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// RID get_render_target_depth(RID p_render_target);
 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-08 00:51:17 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-23 23:41:51 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# endif  // XR_INTERFACE_EXTENSION_H