2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2020-03-28 13:19:05 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*  rendering_server.h                                                   */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                       This file is part of:                           */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                           GODOT ENGINE                                */  
						 
					
						
							
								
									
										
										
										
											2017-08-27 14:16:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*                      https://godotengine.org                          */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2020-01-01 11:16:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*                                                                       */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* 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 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifndef RENDERING_SERVER_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define RENDERING_SERVER_H 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-15 12:29:59 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/class_db.h" 
  
						 
					
						
							
								
									
										
										
										
											2018-09-11 18:13:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/image.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-05-25 20:20:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/math/geometry_3d.h" 
  
						 
					
						
							
								
									
										
										
										
											2018-09-11 18:13:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/math/transform_2d.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "core/rid.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/typed_array.h" 
  
						 
					
						
							
								
									
										
										
										
											2018-09-11 18:13:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/variant.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-03-03 22:51:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "servers/display_server.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-09-16 21:11:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "servers/rendering/rendering_device.h" 
  
						 
					
						
							
								
									
										
										
										
											2020-04-16 23:52:00 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "servers/rendering/shader_language.h" 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  RenderingServer  :  public  Object  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									GDCLASS ( RenderingServer ,  Object ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									static  RenderingServer  * singleton ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  mm_policy ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-14 18:06:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  render_loop_enabled  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  _camera_set_orthogonal ( RID  p_camera ,  float  p_size ,  float  p_z_near ,  float  p_z_far ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  _canvas_item_add_style_box ( RID  p_item ,  const  Rect2  & p_rect ,  const  Rect2  & p_source ,  RID  p_texture ,  const  Vector < float >  & p_margins ,  const  Color  & p_modulate  =  Color ( 1 ,  1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Array  _get_array_from_surface ( uint32_t  p_format ,  Vector < uint8_t >  p_vertex_data ,  int  p_vertex_len ,  Vector < uint8_t >  p_index_data ,  int  p_index_len )  const ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 23:55:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								protected :  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									RID  _make_test_cube ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-20 19:38:02 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  _free_internal_rids ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									RID  test_texture ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RID  white_texture ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-20 19:38:02 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RID  test_material ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Error  _surface_set_data ( Array  p_arrays ,  uint32_t  p_format ,  uint32_t  * p_offsets ,  uint32_t  p_stride ,  Vector < uint8_t >  & r_vertex_array ,  int  p_vertex_array_len ,  Vector < uint8_t >  & r_index_array ,  int  p_index_array_len ,  AABB  & r_aabb ,  Vector < AABB >  & r_bone_aabb ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 11:14:41 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									static  RenderingServer  * ( * create_func ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									static  void  _bind_methods ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									static  RenderingServer  * get_singleton ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									static  RenderingServer  * create ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										NO_INDEX_ARRAY  =  - 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_WEIGHTS_SIZE  =  4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_Z_MIN  =  - 4096 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_Z_MAX  =  4096 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										MAX_GLOW_LEVELS  =  7 , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										MAX_CURSORS  =  8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* TEXTURE API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  TextureLayeredType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_LAYERED_2D_ARRAY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_LAYERED_CUBEMAP , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_LAYERED_CUBEMAP_ARRAY , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  CubeMapLayer  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_LEFT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_RIGHT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_BOTTOM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_TOP , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_FRONT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CUBEMAP_LAYER_BACK 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-26 13:59:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_2d_create ( const  Ref < Image >  & p_image )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-17 07:33:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_2d_layered_create ( const  Vector < Ref < Image > >  & p_layers ,  TextureLayeredType  p_layered_type )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-09 12:40:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_3d_create ( Image : : Format ,  int  p_width ,  int  p_height ,  int  p_depth ,  bool  p_mipmaps ,  const  Vector < Ref < Image > >  & p_data )  =  0 ;  //all slices, then all the mipmaps, must be coherent
 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-24 16:13:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_proxy_create ( RID  p_base )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_2d_update_immediate ( RID  p_texture ,  const  Ref < Image >  & p_image ,  int  p_layer  =  0 )  =  0 ;  //mostly used for video and streaming
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  texture_2d_update ( RID  p_texture ,  const  Ref < Image >  & p_image ,  int  p_layer  =  0 )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-09 12:40:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_3d_update ( RID  p_texture ,  const  Vector < Ref < Image > >  & p_data )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-24 16:13:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_proxy_update ( RID  p_texture ,  RID  p_proxy_to )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									//these two APIs can be used together or in combination with the others.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  texture_2d_placeholder_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_2d_layered_placeholder_create ( TextureLayeredType  p_layered_type )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  texture_3d_placeholder_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Ref < Image >  texture_2d_get ( RID  p_texture )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Ref < Image >  texture_2d_layer_get ( RID  p_texture ,  int  p_layer )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-09 12:40:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Vector < Ref < Image > >  texture_3d_get ( RID  p_texture )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  texture_replace ( RID  p_texture ,  RID  p_by_texture )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  texture_set_size_override ( RID  p_texture ,  int  p_width ,  int  p_height )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// FIXME: Disabled during Vulkan refactoring, should be ported.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#if 0 
  
						 
					
						
							
								
									
										
										
										
											2017-08-21 00:17:24 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_bind ( RID  p_texture ,  uint32_t  p_texture_no )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_set_path ( RID  p_texture ,  const  String  & p_path )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  String  texture_get_path ( RID  p_texture )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									typedef  void  ( * TextureDetectCallback ) ( void  * ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-04 12:36:51 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_set_detect_3d_callback ( RID  p_texture ,  TextureDetectCallback  p_callback ,  void  * p_userdata )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-16 21:47:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_set_detect_normal_callback ( RID  p_texture ,  TextureDetectCallback  p_callback ,  void  * p_userdata )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-06 00:38:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  TextureDetectRoughnessChannel  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_DETECT_ROUGNHESS_R , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_DETECT_ROUGNHESS_G , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_DETECT_ROUGNHESS_B , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_DETECT_ROUGNHESS_A , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TEXTURE_DETECT_ROUGNHESS_GRAY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									typedef  void  ( * TextureDetectRoughnessCallback ) ( void  * ,  const  String  & ,  TextureDetectRoughnessChannel ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  texture_set_detect_roughness_callback ( RID  p_texture ,  TextureDetectRoughnessCallback  p_callback ,  void  * p_userdata )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-10-21 09:50:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  TextureInfo  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RID  texture ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-26 13:59:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										uint32_t  width ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										uint32_t  height ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										uint32_t  depth ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-21 09:50:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Image : : Format  format ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										int  bytes ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										String  path ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_debug_usage ( List < TextureInfo >  * r_info )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-20 00:24:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Array  _texture_debug_usage_bind ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-16 11:43:26 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  texture_set_force_redraw_if_visible ( RID  p_texture ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-04 15:55:20 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* SHADER API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ShaderMode  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SHADER_SPATIAL , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										SHADER_CANVAS_ITEM , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-01 22:16:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SHADER_PARTICLES , 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-15 19:58:38 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SHADER_SKY , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-10 18:31:01 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SHADER_MAX 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-06 23:36:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  shader_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  shader_set_code ( RID  p_shader ,  const  String  & p_code )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  String  shader_get_code ( RID  p_shader )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  shader_get_param_list ( RID  p_shader ,  List < PropertyInfo >  * p_param_list )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-20 00:24:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Array  _shader_get_param_list_bind ( RID  p_shader )  const ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-12 10:12:48 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Variant  shader_get_param_default ( RID  p_shader ,  const  StringName  & p_param )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-21 11:42:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  shader_set_default_texture_param ( RID  p_shader ,  const  StringName  & p_name ,  RID  p_texture )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  shader_get_default_texture_param ( RID  p_shader ,  const  StringName  & p_name )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* COMMON MATERIAL API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-01 12:56:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										MATERIAL_RENDER_PRIORITY_MIN  =  - 128 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										MATERIAL_RENDER_PRIORITY_MAX  =  127 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  material_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  material_set_shader ( RID  p_shader_material ,  RID  p_shader )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  material_set_param ( RID  p_material ,  const  StringName  & p_param ,  const  Variant  & p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Variant  material_get_param ( RID  p_material ,  const  StringName  & p_param )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-01 12:56:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  material_set_render_priority ( RID  p_material ,  int  priority )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-08 12:34:05 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  material_set_next_pass ( RID  p_material ,  RID  p_next_material )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* MESH API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ArrayType  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ARRAY_VERTEX  =  0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_NORMAL  =  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_TANGENT  =  2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COLOR  =  3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_TEX_UV  =  4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_TEX_UV2  =  5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_BONES  =  6 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_WEIGHTS  =  7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_INDEX  =  8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_MAX  =  9 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  ArrayFormat  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/* ARRAY FORMAT FLAGS */ 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ARRAY_FORMAT_VERTEX  =  1  < <  ARRAY_VERTEX ,  // mandatory
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_NORMAL  =  1  < <  ARRAY_NORMAL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_TANGENT  =  1  < <  ARRAY_TANGENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_COLOR  =  1  < <  ARRAY_COLOR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_TEX_UV  =  1  < <  ARRAY_TEX_UV , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_TEX_UV2  =  1  < <  ARRAY_TEX_UV2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_BONES  =  1  < <  ARRAY_BONES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_WEIGHTS  =  1  < <  ARRAY_WEIGHTS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FORMAT_INDEX  =  1  < <  ARRAY_INDEX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_BASE  =  ( ARRAY_INDEX  +  1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_NORMAL  =  1  < <  ( ARRAY_NORMAL  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_TANGENT  =  1  < <  ( ARRAY_TANGENT  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_COLOR  =  1  < <  ( ARRAY_COLOR  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_TEX_UV  =  1  < <  ( ARRAY_TEX_UV  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_TEX_UV2  =  1  < <  ( ARRAY_TEX_UV2  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_COMPRESS_INDEX  =  1  < <  ( ARRAY_INDEX  +  ARRAY_COMPRESS_BASE ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ARRAY_COMPRESS_DEFAULT  =  ARRAY_COMPRESS_NORMAL  |  ARRAY_COMPRESS_TANGENT  |  ARRAY_COMPRESS_COLOR  |  ARRAY_COMPRESS_TEX_UV  |  ARRAY_COMPRESS_TEX_UV2 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ARRAY_FLAG_USE_2D_VERTICES  =  ARRAY_COMPRESS_INDEX  < <  1 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 17:25:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ARRAY_FLAG_USE_DYNAMIC_UPDATE  =  ARRAY_COMPRESS_INDEX  < <  3 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  PrimitiveType  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										PRIMITIVE_POINTS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PRIMITIVE_LINES , 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										PRIMITIVE_LINE_STRIP , 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										PRIMITIVE_TRIANGLES , 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										PRIMITIVE_TRIANGLE_STRIP , 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										PRIMITIVE_MAX , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  SurfaceData  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PrimitiveType  primitive  =  PRIMITIVE_MAX ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										uint32_t  format  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Vector < uint8_t >  vertex_data ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										uint32_t  vertex_count  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Vector < uint8_t >  index_data ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										uint32_t  index_count  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										AABB  aabb ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										struct  LOD  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											float  edge_length ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											Vector < uint8_t >  index_data ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Vector < LOD >  lods ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Vector < AABB >  bone_aabbs ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-17 07:33:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Vector < Vector < uint8_t > >  blend_shapes ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RID  material ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  mesh_create_from_surfaces ( const  Vector < SurfaceData >  & p_surfaces )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  mesh_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-21 01:36:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  uint32_t  mesh_surface_get_format_offset ( uint32_t  p_format ,  int  p_vertex_len ,  int  p_index_len ,  int  p_array_index )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  uint32_t  mesh_surface_get_format_stride ( uint32_t  p_format ,  int  p_vertex_len ,  int  p_index_len )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/// Returns stride
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  uint32_t  mesh_surface_make_offsets_from_format ( uint32_t  p_format ,  int  p_vertex_len ,  int  p_index_len ,  uint32_t  * r_offsets )  const ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Error  mesh_create_surface_data_from_arrays ( SurfaceData  * r_surface_data ,  PrimitiveType  p_primitive ,  const  Array  & p_arrays ,  const  Array  & p_blend_shapes  =  Array ( ) ,  const  Dictionary  & p_lods  =  Dictionary ( ) ,  uint32_t  p_compress_format  =  ARRAY_COMPRESS_DEFAULT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Array  mesh_create_arrays_from_surface_data ( const  SurfaceData  & p_data )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Array  mesh_surface_get_arrays ( RID  p_mesh ,  int  p_surface )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Array  mesh_surface_get_blend_shape_arrays ( RID  p_mesh ,  int  p_surface )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Dictionary  mesh_surface_get_lods ( RID  p_mesh ,  int  p_surface )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  mesh_add_surface_from_arrays ( RID  p_mesh ,  PrimitiveType  p_primitive ,  const  Array  & p_arrays ,  const  Array  & p_blend_shapes  =  Array ( ) ,  const  Dictionary  & p_lods  =  Dictionary ( ) ,  uint32_t  p_compress_format  =  ARRAY_COMPRESS_DEFAULT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  mesh_add_surface ( RID  p_mesh ,  const  SurfaceData  & p_surface )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  int  mesh_get_blend_shape_count ( RID  p_mesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 08:34:00 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  BlendShapeMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BLEND_SHAPE_MODE_NORMALIZED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BLEND_SHAPE_MODE_RELATIVE , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_set_blend_shape_mode ( RID  p_mesh ,  BlendShapeMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  BlendShapeMode  mesh_get_blend_shape_mode ( RID  p_mesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_surface_update_region ( RID  p_mesh ,  int  p_surface ,  int  p_offset ,  const  Vector < uint8_t >  & p_data )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 17:25:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_surface_set_material ( RID  p_mesh ,  int  p_surface ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  mesh_surface_get_material ( RID  p_mesh ,  int  p_surface )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-18 19:40:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  SurfaceData  mesh_get_surface ( RID  p_mesh ,  int  p_surface )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  int  mesh_get_surface_count ( RID  p_mesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-04 22:50:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-16 21:09:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_set_custom_aabb ( RID  p_mesh ,  const  AABB  & p_aabb )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  AABB  mesh_get_custom_aabb ( RID  p_mesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-04 22:50:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_clear ( RID  p_mesh )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-20 13:03:46 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* MULTIMESH API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  multimesh_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  MultimeshTransformFormat  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										MULTIMESH_TRANSFORM_2D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										MULTIMESH_TRANSFORM_3D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-14 00:37:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  multimesh_allocate ( RID  p_multimesh ,  int  p_instances ,  MultimeshTransformFormat  p_transform_format ,  bool  p_use_colors  =  false ,  bool  p_use_custom_data  =  false )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  int  multimesh_get_instance_count ( RID  p_multimesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  multimesh_set_mesh ( RID  p_multimesh ,  RID  p_mesh )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  multimesh_instance_set_transform ( RID  p_multimesh ,  int  p_index ,  const  Transform  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  multimesh_instance_set_transform_2d ( RID  p_multimesh ,  int  p_index ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  multimesh_instance_set_color ( RID  p_multimesh ,  int  p_index ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-06 20:21:13 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  multimesh_instance_set_custom_data ( RID  p_multimesh ,  int  p_index ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  multimesh_get_mesh ( RID  p_multimesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-16 21:09:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  AABB  multimesh_get_aabb ( RID  p_multimesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Transform  multimesh_instance_get_transform ( RID  p_multimesh ,  int  p_index )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Transform2D  multimesh_instance_get_transform_2d ( RID  p_multimesh ,  int  p_index )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Color  multimesh_instance_get_color ( RID  p_multimesh ,  int  p_index )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-06 20:21:13 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Color  multimesh_instance_get_custom_data ( RID  p_multimesh ,  int  p_index )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  multimesh_set_buffer ( RID  p_multimesh ,  const  Vector < float >  & p_buffer )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < float >  multimesh_get_buffer ( RID  p_multimesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  multimesh_set_visible_instances ( RID  p_multimesh ,  int  p_visible )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  int  multimesh_get_visible_instances ( RID  p_multimesh )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* IMMEDIATE API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  immediate_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_begin ( RID  p_immediate ,  PrimitiveType  p_rimitive ,  RID  p_texture  =  RID ( ) )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_vertex ( RID  p_immediate ,  const  Vector3  & p_vertex )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_vertex_2d ( RID  p_immediate ,  const  Vector2  & p_vertex ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_normal ( RID  p_immediate ,  const  Vector3  & p_normal )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_tangent ( RID  p_immediate ,  const  Plane  & p_tangent )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_color ( RID  p_immediate ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_uv ( RID  p_immediate ,  const  Vector2  & tex_uv )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_uv2 ( RID  p_immediate ,  const  Vector2  & tex_uv )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_end ( RID  p_immediate )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_clear ( RID  p_immediate )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  immediate_set_material ( RID  p_immediate ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  immediate_get_material ( RID  p_immediate )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* SKELETON API */ 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  skeleton_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  skeleton_allocate ( RID  p_skeleton ,  int  p_bones ,  bool  p_2d_skeleton  =  false )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  int  skeleton_get_bone_count ( RID  p_skeleton )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  skeleton_bone_set_transform ( RID  p_skeleton ,  int  p_bone ,  const  Transform  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Transform  skeleton_bone_get_transform ( RID  p_skeleton ,  int  p_bone )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  skeleton_bone_set_transform_2d ( RID  p_skeleton ,  int  p_bone ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Transform2D  skeleton_bone_get_transform_2d ( RID  p_skeleton ,  int  p_bone )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-05-03 17:29:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  skeleton_set_base_transform_2d ( RID  p_skeleton ,  const  Transform2D  & p_base_transform )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* Light API */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  LightType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_OMNI , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_SPOT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  LightParam  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_ENERGY , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-19 21:45:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_INDIRECT_ENERGY , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SPECULAR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_RANGE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-09 15:11:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SIZE , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_ATTENUATION , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SPOT_ANGLE , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-27 11:50:26 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SPOT_ATTENUATION , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_MAX_DISTANCE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET , 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-07 14:38:17 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_FADE_START , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_NORMAL_BIAS , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-27 11:50:26 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_BIAS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-07 22:51:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_PANCAKE_SIZE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-10 02:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_BLUR , 
							 
						 
					
						
							
								
									
										
										
										
											2020-08-12 22:21:01 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_SHADOW_VOLUMETRIC_FOG_FADE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-07 22:51:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_PARAM_TRANSMITTANCE_BIAS , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										LIGHT_PARAM_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-09 23:34:01 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  directional_light_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  omni_light_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  spot_light_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  light_set_color ( RID  p_light ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_param ( RID  p_light ,  LightParam  p_param ,  float  p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_shadow ( RID  p_light ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_shadow_color ( RID  p_light ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_projector ( RID  p_light ,  RID  p_texture )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_negative ( RID  p_light ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_cull_mask ( RID  p_light ,  uint32_t  p_mask )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-19 20:06:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  light_set_reverse_cull_face_mode ( RID  p_light ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  LightBakeMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_BAKE_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_BAKE_DYNAMIC , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_BAKE_STATIC , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_bake_mode ( RID  p_light ,  LightBakeMode  p_bake_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_set_max_sdfgi_cascade ( RID  p_light ,  uint32_t  p_cascade )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// omni light
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  LightOmniShadowMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_OMNI_SHADOW_DUAL_PARABOLOID , 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 23:55:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_OMNI_SHADOW_CUBE , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  light_omni_set_shadow_mode ( RID  p_light ,  LightOmniShadowMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 23:55:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									// directional light
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  LightDirectionalShadowMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL , 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-04 22:50:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-01 14:18:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  light_directional_set_shadow_mode ( RID  p_light ,  LightDirectionalShadowMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_directional_set_blend_splits ( RID  p_light ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-07 18:00:47 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  LightDirectionalShadowDepthRangeMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  light_directional_set_shadow_depth_range_mode ( RID  p_light ,  LightDirectionalShadowDepthRangeMode  p_range_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* PROBE API */ 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  reflection_probe_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-19 13:23:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ReflectionProbeUpdateMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										REFLECTION_PROBE_UPDATE_ONCE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										REFLECTION_PROBE_UPDATE_ALWAYS , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_update_mode ( RID  p_probe ,  ReflectionProbeUpdateMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_intensity ( RID  p_probe ,  float  p_intensity )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ReflectionProbeAmbientMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										REFLECTION_PROBE_AMBIENT_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										REFLECTION_PROBE_AMBIENT_ENVIRONMENT , 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-01 14:18:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										REFLECTION_PROBE_AMBIENT_COLOR , 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_ambient_mode ( RID  p_probe ,  ReflectionProbeAmbientMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_ambient_color ( RID  p_probe ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_ambient_energy ( RID  p_probe ,  float  p_energy )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_max_distance ( RID  p_probe ,  float  p_distance )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_extents ( RID  p_probe ,  const  Vector3  & p_extents )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_origin_offset ( RID  p_probe ,  const  Vector3  & p_offset )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_as_interior ( RID  p_probe ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_enable_box_projection ( RID  p_probe ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_enable_shadows ( RID  p_probe ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_cull_mask ( RID  p_probe ,  uint32_t  p_layers )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 16:40:20 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  reflection_probe_set_resolution ( RID  p_probe ,  int  p_resolution )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-14 00:05:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* DECAL API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  DecalTexture  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DECAL_TEXTURE_ALBEDO , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DECAL_TEXTURE_NORMAL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DECAL_TEXTURE_ORM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DECAL_TEXTURE_EMISSION , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DECAL_TEXTURE_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  decal_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_extents ( RID  p_decal ,  const  Vector3  & p_extents )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_texture ( RID  p_decal ,  DecalTexture  p_type ,  RID  p_texture )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_emission_energy ( RID  p_decal ,  float  p_energy )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_albedo_mix ( RID  p_decal ,  float  p_mix )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_modulate ( RID  p_decal ,  const  Color  & p_modulate )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_cull_mask ( RID  p_decal ,  uint32_t  p_layers )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_distance_fade ( RID  p_decal ,  bool  p_enabled ,  float  p_begin ,  float  p_length )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_fade ( RID  p_decal ,  float  p_above ,  float  p_below )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  decal_set_normal_fade ( RID  p_decal ,  float  p_fade )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-20 00:21:07 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* GI PROBE API */ 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  gi_probe_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_allocate ( RID  p_gi_probe ,  const  Transform  & p_to_cell_xform ,  const  AABB  & p_aabb ,  const  Vector3i  & p_octree_size ,  const  Vector < uint8_t >  & p_octree_cells ,  const  Vector < uint8_t >  & p_data_cells ,  const  Vector < uint8_t >  & p_distance_field ,  const  Vector < int >  & p_level_counts )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  AABB  gi_probe_get_bounds ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector3i  gi_probe_get_octree_size ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Vector < uint8_t >  gi_probe_get_octree_cells ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < uint8_t >  gi_probe_get_data_cells ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < uint8_t >  gi_probe_get_distance_field ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < int >  gi_probe_get_level_counts ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Transform  gi_probe_get_to_cell_xform ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_dynamic_range ( RID  p_gi_probe ,  float  p_range )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_dynamic_range ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_propagation ( RID  p_gi_probe ,  float  p_range )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_propagation ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_energy ( RID  p_gi_probe ,  float  p_energy )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_energy ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-14 03:45:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_ao ( RID  p_gi_probe ,  float  p_ao )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_ao ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-04 18:17:53 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_ao_size ( RID  p_gi_probe ,  float  p_strength )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_ao_size ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-14 03:45:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_bias ( RID  p_gi_probe ,  float  p_bias )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_bias ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-14 10:31:38 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_normal_bias ( RID  p_gi_probe ,  float  p_range )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_normal_bias ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-16 08:55:11 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_interior ( RID  p_gi_probe ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  bool  gi_probe_is_interior ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-07-15 23:24:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_use_two_bounces ( RID  p_gi_probe ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  bool  gi_probe_is_using_two_bounces ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-06 05:12:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_anisotropy_strength ( RID  p_gi_probe ,  float  p_strength )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  gi_probe_get_anisotropy_strength ( RID  p_gi_probe )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-31 12:56:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  GIProbeQuality  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GI_PROBE_QUALITY_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GI_PROBE_QUALITY_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  gi_probe_set_quality ( GIProbeQuality )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* LIGHTMAP */ 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 08:59:46 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  lightmap_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  lightmap_set_textures ( RID  p_lightmap ,  RID  p_light ,  bool  p_uses_spherical_haromics )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  lightmap_set_probe_bounds ( RID  p_lightmap ,  const  AABB  & p_bounds )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  lightmap_set_probe_interior ( RID  p_lightmap ,  bool  p_interior )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  lightmap_set_probe_capture_data ( RID  p_lightmap ,  const  PackedVector3Array  & p_points ,  const  PackedColorArray  & p_point_sh ,  const  PackedInt32Array  & p_tetrahedra ,  const  PackedInt32Array  & p_bsp_tree )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  PackedVector3Array  lightmap_get_probe_capture_points ( RID  p_lightmap )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  PackedColorArray  lightmap_get_probe_capture_sh ( RID  p_lightmap )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  PackedInt32Array  lightmap_get_probe_capture_tetrahedra ( RID  p_lightmap )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  PackedInt32Array  lightmap_get_probe_capture_bsp_tree ( RID  p_lightmap )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  lightmap_set_probe_capture_update_speed ( float  p_speed )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 08:59:46 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-30 08:35:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* PARTICLES API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  particles_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-30 08:35:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-06 09:18:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_emitting ( RID  p_particles ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-23 05:08:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  bool  particles_get_emitting ( RID  p_particles )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_amount ( RID  p_particles ,  int  p_amount )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_lifetime ( RID  p_particles ,  float  p_lifetime )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-25 08:01:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_one_shot ( RID  p_particles ,  bool  p_one_shot )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_pre_process_time ( RID  p_particles ,  float  p_time )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_explosiveness_ratio ( RID  p_particles ,  float  p_ratio )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_randomness_ratio ( RID  p_particles ,  float  p_ratio )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-16 21:09:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_custom_aabb ( RID  p_particles ,  const  AABB  & p_aabb )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-08 22:38:11 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_speed_scale ( RID  p_particles ,  float  p_scale )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_use_local_coordinates ( RID  p_particles ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_process_material ( RID  p_particles ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-06 23:36:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_fixed_fps ( RID  p_particles ,  int  p_fps )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_fractional_delta ( RID  p_particles ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 21:29:49 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_collision_base_size ( RID  p_particles ,  float  p_size )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-09 09:51:17 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  bool  particles_is_inactive ( RID  p_particles )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_request_process ( RID  p_particles )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-25 08:01:15 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_restart ( RID  p_particles )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-31 12:56:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-06 09:18:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_subemitter ( RID  p_particles ,  RID  p_subemitter_particles )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ParticlesEmitFlags  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_EMIT_FLAG_POSITION  =  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_EMIT_FLAG_ROTATION_SCALE  =  2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_EMIT_FLAG_VELOCITY  =  4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_EMIT_FLAG_COLOR  =  8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_EMIT_FLAG_CUSTOM  =  16 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_emit ( RID  p_particles ,  const  Transform  & p_transform ,  const  Vector3  & p_velocity ,  const  Color  & p_color ,  const  Color  & p_custom ,  uint32_t  p_emit_flags )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-30 08:35:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ParticlesDrawOrder  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_DRAW_ORDER_INDEX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_DRAW_ORDER_LIFETIME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_DRAW_ORDER_VIEW_DEPTH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_draw_order ( RID  p_particles ,  ParticlesDrawOrder  p_order )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_draw_passes ( RID  p_particles ,  int  p_count )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_set_draw_pass_mesh ( RID  p_particles ,  int  p_pass ,  RID  p_mesh )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-16 21:09:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  AABB  particles_get_current_aabb ( RID  p_particles )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-21 16:25:45 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  particles_set_emission_transform ( RID  p_particles ,  const  Transform  & p_transform )  =  0 ;  //this is only used for 2D, in 3D it's automatic
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 21:29:49 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* PARTICLES COLLISION API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  particles_collision_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ParticlesCollisionType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_BOX_ATTRACT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_BOX_COLLIDE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_SDF_COLLIDE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_collision_type ( RID  p_particles_collision ,  ParticlesCollisionType  p_type )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_cull_mask ( RID  p_particles_collision ,  uint32_t  p_cull_mask )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_sphere_radius ( RID  p_particles_collision ,  float  p_radius )  =  0 ;  //for spheres
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_box_extents ( RID  p_particles_collision ,  const  Vector3  & p_extents )  =  0 ;  //for non-spheres
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_attractor_strength ( RID  p_particles_collision ,  float  p_strength )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_attractor_directionality ( RID  p_particles_collision ,  float  p_directionality )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_attractor_attenuation ( RID  p_particles_collision ,  float  p_curve )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_field_texture ( RID  p_particles_collision ,  RID  p_texture )  =  0 ;  //for SDF and vector field, heightfield is dynamic
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_height_field_update ( RID  p_particles_collision )  =  0 ;  //for SDF and vector field
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ParticlesCollisionHeightfieldResolution  {  //longest axis resolution
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  particles_collision_set_height_field_resolution ( RID  p_particles_collision ,  ParticlesCollisionHeightfieldResolution  p_resolution )  =  0 ;  //for SDF and vector field
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* CAMERA API */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  camera_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_set_perspective ( RID  p_camera ,  float  p_fovy_degrees ,  float  p_z_near ,  float  p_z_far )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_set_orthogonal ( RID  p_camera ,  float  p_size ,  float  p_z_near ,  float  p_z_far )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-02-19 17:17:02 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_set_frustum ( RID  p_camera ,  float  p_size ,  Vector2  p_offset ,  float  p_z_near ,  float  p_z_far )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_set_transform ( RID  p_camera ,  const  Transform  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_set_cull_mask ( RID  p_camera ,  uint32_t  p_layers )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_set_environment ( RID  p_camera ,  RID  p_env )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_set_camera_effects ( RID  p_camera ,  RID  p_camera_effects )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_set_use_vertical_aspect ( RID  p_camera ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* VIEWPORT TARGET API */ 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  viewport_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-09 00:47:36 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_use_xr ( RID  p_viewport ,  bool  p_use_xr )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_size ( RID  p_viewport ,  int  p_width ,  int  p_height )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_active ( RID  p_viewport ,  bool  p_active )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_parent_viewport ( RID  p_viewport ,  RID  p_parent_viewport )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-03 22:51:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_attach_to_screen ( RID  p_viewport ,  const  Rect2  & p_rect  =  Rect2 ( ) ,  DisplayServer : : WindowID  p_screen  =  DisplayServer : : MAIN_WINDOW_ID )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-08 11:25:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_render_direct_to_screen ( RID  p_viewport ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ViewportUpdateMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_UPDATE_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_UPDATE_ONCE ,  //then goes to disabled, must be manually updated
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_UPDATE_WHEN_VISIBLE ,  // default
 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-14 13:06:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_UPDATE_ALWAYS 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_update_mode ( RID  p_viewport ,  ViewportUpdateMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-14 22:43:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ViewportClearMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_CLEAR_ALWAYS , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-05 01:26:35 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_CLEAR_NEVER , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_CLEAR_ONLY_NEXT_FRAME 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_clear_mode ( RID  p_viewport ,  ViewportClearMode  p_clear_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  viewport_get_texture ( RID  p_viewport )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_hide_scenario ( RID  p_viewport ,  bool  p_hide )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_hide_canvas ( RID  p_viewport ,  bool  p_hide )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_disable_environment ( RID  p_viewport ,  bool  p_disable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_attach_camera ( RID  p_viewport ,  RID  p_camera )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_scenario ( RID  p_viewport ,  RID  p_scenario )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_attach_canvas ( RID  p_viewport ,  RID  p_canvas )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_remove_canvas ( RID  p_viewport ,  RID  p_canvas )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_canvas_transform ( RID  p_viewport ,  RID  p_canvas ,  const  Transform2D  & p_offset )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_transparent_background ( RID  p_viewport ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_global_canvas_transform ( RID  p_viewport ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-30 21:53:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_canvas_stacking ( RID  p_viewport ,  RID  p_canvas ,  int  p_layer ,  int  p_sublayer )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_shadow_atlas_size ( RID  p_viewport ,  int  p_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_shadow_atlas_quadrant_subdivision ( RID  p_viewport ,  int  p_quadrant ,  int  p_subdiv )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 23:55:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-01 22:16:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ViewportMSAA  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_MSAA_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_MSAA_2X , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_MSAA_4X , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_MSAA_8X , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_MSAA_16X , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 15:33:57 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_MSAA_MAX , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-01 22:16:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_msaa ( RID  p_viewport ,  ViewportMSAA  p_msaa )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-09 00:23:50 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 01:49:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ViewportScreenSpaceAA  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_SCREEN_SPACE_AA_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_SCREEN_SPACE_AA_FXAA , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_SCREEN_SPACE_AA_MAX , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 01:49:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-12 01:49:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_screen_space_aa ( RID  p_viewport ,  ViewportScreenSpaceAA  p_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 15:52:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ViewportRenderInfo  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_RENDER_INFO_MAX , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 15:52:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  int  viewport_get_render_info ( RID  p_viewport ,  ViewportRenderInfo  p_info )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ViewportDebugDraw  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_UNSHADED , 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-06 22:51:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_LIGHTING , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 15:52:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_OVERDRAW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_WIREFRAME , 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-26 20:09:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_GI_PROBE_ALBEDO , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_GI_PROBE_LIGHTING , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-05 10:27:43 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_GI_PROBE_EMISSION , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-03 17:39:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-11 22:26:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-25 07:18:55 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_SSAO , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-07 22:51:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_PSSM_SPLITS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-14 00:05:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_DECAL_ATLAS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_SDFGI , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_SDFGI_PROBES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										VIEWPORT_DEBUG_DRAW_GI_BUFFER , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 15:52:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  viewport_set_debug_draw ( RID  p_viewport ,  ViewportDebugDraw  p_draw )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-10 14:18:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  viewport_set_measure_render_time ( RID  p_viewport ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  viewport_get_measured_render_time_cpu ( RID  p_viewport )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  float  viewport_get_measured_render_time_gpu ( RID  p_viewport )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-06 22:51:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  directional_shadow_atlas_set_size ( int  p_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-26 17:43:58 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* SKY API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  SkyMode  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 17:07:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SKY_MODE_AUTOMATIC , 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-26 17:43:58 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SKY_MODE_QUALITY , 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-10 17:07:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SKY_MODE_INCREMENTAL , 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-26 17:43:58 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SKY_MODE_REALTIME 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  sky_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  sky_set_radiance_size ( RID  p_sky ,  int  p_radiance_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  sky_set_mode ( RID  p_sky ,  SkyMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-19 17:32:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  sky_set_material ( RID  p_sky ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Ref < Image >  sky_bake_panorama ( RID  p_sky ,  float  p_energy ,  bool  p_bake_irradiance ,  const  Size2i  & p_size )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-26 17:43:58 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* ENVIRONMENT API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  environment_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentBG  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 07:27:13 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_BG_CLEAR_COLOR , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										ENV_BG_COLOR , 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-25 13:53:59 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_BG_SKY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-16 00:47:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_BG_CANVAS , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 07:27:13 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_BG_KEEP , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-21 00:17:24 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_BG_CAMERA_FEED , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										ENV_BG_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-26 17:43:58 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  EnvironmentAmbientSource  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_AMBIENT_SOURCE_BG , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_AMBIENT_SOURCE_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_AMBIENT_SOURCE_COLOR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_AMBIENT_SOURCE_SKY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentReflectionSource  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_REFLECTION_SOURCE_BG , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_REFLECTION_SOURCE_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_REFLECTION_SOURCE_SKY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_background ( RID  p_env ,  EnvironmentBG  p_bg )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-25 13:53:59 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_sky ( RID  p_env ,  RID  p_sky )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-29 18:56:05 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_sky_custom_fov ( RID  p_env ,  float  p_scale )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-12-15 16:27:03 +11:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_sky_orientation ( RID  p_env ,  const  Basis  & p_orientation )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_bg_color ( RID  p_env ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_bg_energy ( RID  p_env ,  float  p_energy )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_canvas_max_layer ( RID  p_env ,  int  p_max_layer )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-25 07:18:55 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_ambient_light ( RID  p_env ,  const  Color  & p_color ,  EnvironmentAmbientSource  p_ambient  =  ENV_AMBIENT_SOURCE_BG ,  float  p_energy  =  1.0 ,  float  p_sky_contribution  =  0.0 ,  EnvironmentReflectionSource  p_reflection_source  =  ENV_REFLECTION_SOURCE_BG ,  const  Color  & p_ao_color  =  Color ( ) )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// FIXME: Disabled during Vulkan refactoring, should be ported.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#if 0 
  
						 
					
						
							
								
									
										
										
										
											2017-08-21 00:17:24 +10:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_camera_feed_id ( RID  p_env ,  int  p_camera_feed_id )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-11 15:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  EnvironmentGlowBlendMode  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-12 09:59:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_GLOW_BLEND_MODE_ADDITIVE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_GLOW_BLEND_MODE_SCREEN , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_GLOW_BLEND_MODE_SOFTLIGHT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_GLOW_BLEND_MODE_REPLACE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_GLOW_BLEND_MODE_MIX , 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-19 15:02:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_glow ( RID  p_env ,  bool  p_enable ,  Vector < float >  p_levels ,  float  p_intensity ,  float  p_strength ,  float  p_mix ,  float  p_bloom_threshold ,  EnvironmentGlowBlendMode  p_blend_mode ,  float  p_hdr_bleed_threshold ,  float  p_hdr_bleed_scale ,  float  p_hdr_luminance_cap )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-30 10:46:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_glow_set_use_bicubic_upscale ( bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-08-31 23:04:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_glow_set_use_high_quality ( bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-27 23:21:45 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  EnvironmentToneMapper  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_TONE_MAPPER_LINEAR , 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-26 12:29:20 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_TONE_MAPPER_REINHARD , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 20:48:09 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_TONE_MAPPER_FILMIC , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-07 17:49:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_TONE_MAPPER_ACES 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_tonemap ( RID  p_env ,  EnvironmentToneMapper  p_tone_mapper ,  float  p_exposure ,  float  p_white ,  bool  p_auto_exposure ,  float  p_min_luminance ,  float  p_max_luminance ,  float  p_auto_exp_speed ,  float  p_auto_exp_grey )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_adjustment ( RID  p_env ,  bool  p_enable ,  float  p_brightness ,  float  p_contrast ,  float  p_saturation ,  RID  p_ramp )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-01 23:24:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_ssr ( RID  p_env ,  bool  p_enable ,  int  p_max_steps ,  float  p_fade_in ,  float  p_fade_out ,  float  p_depth_tolerance )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentSSRRoughnessQuality  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSR_ROUGNESS_QUALITY_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSR_ROUGNESS_QUALITY_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSR_ROUGNESS_QUALITY_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSR_ROUGNESS_QUALITY_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_ssr_roughness_quality ( EnvironmentSSRRoughnessQuality  p_quality )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-22 13:52:31 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-14 23:47:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_ssao ( RID  p_env ,  bool  p_enable ,  float  p_rejection_radius ,  float  p_intensity ,  int  p_levels ,  float  p_light_affect ,  float  p_ao_channel_affect )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-25 07:18:55 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentSSAOQuality  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-14 23:47:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_SSAO_QUALITY_VERY_LOW , 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-25 07:18:55 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ENV_SSAO_QUALITY_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSAO_QUALITY_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSAO_QUALITY_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SSAO_QUALITY_ULTRA , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-14 23:47:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_ssao_settings ( EnvironmentSSAOQuality  p_quality ,  bool  p_full_samples ,  float  p_noise_tolerance ,  float  p_blur_tolerance ,  float  p_upsample_tolerance )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  EnvironmentSDFGICascades  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CASCADES_4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CASCADES_6 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CASCADES_8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentSDFGIYScale  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_Y_SCALE_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_Y_SCALE_75_PERCENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_Y_SCALE_50_PERCENT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-01 14:18:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_sdfgi ( RID  p_env ,  bool  p_enable ,  EnvironmentSDFGICascades  p_cascades ,  float  p_min_cell_size ,  EnvironmentSDFGIYScale  p_y_scale ,  bool  p_use_occlusion ,  bool  p_use_multibounce ,  bool  p_read_sky ,  float  p_energy ,  float  p_normal_bias ,  float  p_probe_bias )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentSDFGIRayCount  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_16 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_32 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_64 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_96 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_128 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_RAY_COUNT_MAX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_sdfgi_ray_count ( EnvironmentSDFGIRayCount  p_ray_count )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  EnvironmentSDFGIFramesToConverge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_5_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_10_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_15_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_20_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_25_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_IN_30_FRAMES , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_SDFGI_CONVERGE_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_sdfgi_frames_to_converge ( EnvironmentSDFGIFramesToConverge  p_frames )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-08-20 22:48:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_fog ( RID  p_env ,  bool  p_enable ,  const  Color  & p_light_color ,  float  p_light_energy ,  float  p_sun_scatter ,  float  p_density ,  float  p_height ,  float  p_height_density ,  float  p_aerial_perspective )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-06 23:16:17 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-08-12 22:21:01 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  EnvVolumetricFogShadowFilter  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_VOLUMETRIC_FOG_SHADOW_FILTER_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_VOLUMETRIC_FOG_SHADOW_FILTER_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_VOLUMETRIC_FOG_SHADOW_FILTER_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ENV_VOLUMETRIC_FOG_SHADOW_FILTER_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-05 14:31:56 +05:45 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_volumetric_fog ( RID  p_env ,  bool  p_enable ,  float  p_density ,  const  Color  & p_light ,  float  p_light_energy ,  float  p_length ,  float  p_detail_spread ,  float  p_gi_inject ,  EnvVolumetricFogShadowFilter  p_shadow_filter )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-08-12 22:21:01 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  environment_set_volumetric_fog_volume_size ( int  p_size ,  int  p_depth )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_volumetric_fog_filter_active ( bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_volumetric_fog_directional_shadow_shrink_size ( int  p_shrink_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  environment_set_volumetric_fog_positional_shadow_shrink_size ( int  p_shrink_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Ref < Image >  environment_bake_panorama ( RID  p_env ,  bool  p_bake_irradiance ,  const  Size2i  & p_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  screen_space_roughness_limiter_set_active ( bool  p_enable ,  float  p_amount ,  float  p_limit )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-26 20:09:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-03 23:42:26 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  SubSurfaceScatteringQuality  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SUB_SURFACE_SCATTERING_QUALITY_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SUB_SURFACE_SCATTERING_QUALITY_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SUB_SURFACE_SCATTERING_QUALITY_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SUB_SURFACE_SCATTERING_QUALITY_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  sub_surface_scattering_set_quality ( SubSurfaceScatteringQuality  p_quality )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  sub_surface_scattering_set_scale ( float  p_scale ,  float  p_depth_scale )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* CAMERA EFFECTS */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  camera_effects_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  DOFBlurQuality  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-15 21:23:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										DOF_BLUR_QUALITY_VERY_LOW , 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										DOF_BLUR_QUALITY_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DOF_BLUR_QUALITY_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DOF_BLUR_QUALITY_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-15 21:23:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_effects_set_dof_blur_quality ( DOFBlurQuality  p_quality ,  bool  p_use_jitter )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  DOFBokehShape  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DOF_BOKEH_BOX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DOF_BOKEH_HEXAGON , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DOF_BOKEH_CIRCLE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_effects_set_dof_blur_bokeh_shape ( DOFBokehShape  p_shape )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  camera_effects_set_dof_blur ( RID  p_camera_effects ,  bool  p_far_enable ,  float  p_far_distance ,  float  p_far_transition ,  bool  p_near_enable ,  float  p_near_distance ,  float  p_near_transition ,  float  p_amount )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  camera_effects_set_custom_exposure ( RID  p_camera_effects ,  bool  p_enable ,  float  p_exposure )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-10 02:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ShadowQuality  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_HARD , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_SOFT_LOW , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_SOFT_MEDIUM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_SOFT_HIGH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_SOFT_ULTRA , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_QUALITY_MAX 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-07 22:51:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-10 02:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  shadows_quality_set ( ShadowQuality  p_quality )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  directional_shadow_quality_set ( ShadowQuality  p_quality )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-07 22:51:52 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* SCENARIO API */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  scenario_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  ScenarioDebugMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SCENARIO_DEBUG_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SCENARIO_DEBUG_WIREFRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SCENARIO_DEBUG_OVERDRAW , 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-18 00:18:57 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										SCENARIO_DEBUG_SHADELESS , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  scenario_set_debug ( RID  p_scenario ,  ScenarioDebugMode  p_debug_mode )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  scenario_set_environment ( RID  p_scenario ,  RID  p_environment )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  scenario_set_fallback_environment ( RID  p_scenario ,  RID  p_environment )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-01-13 15:37:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  scenario_set_camera_effects ( RID  p_scenario ,  RID  p_camera_effects )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* INSTANCING API */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  InstanceType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INSTANCE_NONE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INSTANCE_MESH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INSTANCE_MULTIMESH , 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_IMMEDIATE , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										INSTANCE_PARTICLES , 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 21:29:49 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_PARTICLES_COLLISION , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										INSTANCE_LIGHT , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_REFLECTION_PROBE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-14 00:05:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_DECAL , 
							 
						 
					
						
							
								
									
										
										
										
											2016-12-20 00:21:07 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_GI_PROBE , 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_LIGHTMAP , 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 11:14:41 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_MAX , 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-27 22:54:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-06 23:36:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_GEOMETRY_MASK  =  ( 1  < <  INSTANCE_MESH )  |  ( 1  < <  INSTANCE_MULTIMESH )  |  ( 1  < <  INSTANCE_IMMEDIATE )  |  ( 1  < <  INSTANCE_PARTICLES ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									virtual  RID  instance_create2 ( RID  p_base ,  RID  p_scenario ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-21 21:32:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  instance_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-01-21 21:32:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_set_base ( RID  p_instance ,  RID  p_base )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_set_scenario ( RID  p_instance ,  RID  p_scenario )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_set_layer_mask ( RID  p_instance ,  uint32_t  p_mask )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_set_transform ( RID  p_instance ,  const  Transform  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-09 05:21:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_attach_object_instance_id ( RID  p_instance ,  ObjectID  p_id )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_set_blend_shape_weight ( RID  p_instance ,  int  p_shape ,  float  p_weight )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_set_surface_material ( RID  p_instance ,  int  p_surface ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_set_visible ( RID  p_instance ,  bool  p_visible )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-27 14:18:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-20 20:54:26 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_set_custom_aabb ( RID  p_instance ,  AABB  aabb )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_attach_skeleton ( RID  p_instance ,  RID  p_skeleton )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_set_exterior ( RID  p_instance ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_set_extra_visibility_margin ( RID  p_instance ,  real_t  p_margin )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// don't use these in a game!
 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-16 21:09:00 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Vector < ObjectID >  instances_cull_aabb ( const  AABB  & p_aabb ,  RID  p_scenario  =  RID ( ) )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  Vector < ObjectID >  instances_cull_ray ( const  Vector3  & p_from ,  const  Vector3  & p_to ,  RID  p_scenario  =  RID ( ) )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < ObjectID >  instances_cull_convex ( const  Vector < Plane >  & p_convex ,  RID  p_scenario  =  RID ( ) )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
											
												Added all missing VisualServer bindings
- Added bindings for multimesh, immediate, skeleton, light, reflection probe, gi probe, lightmap, particles, camera, environment, scenario, instance
- Removed draw and sync, were duplicates of force_* equivalents
- Bumped binders max arguments from 11 to 13
- Wrote some wrappers as not all methods were variant-friendly
											 
										 
										
											2018-01-20 16:18:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Array  _instances_cull_aabb_bind ( const  AABB  & p_aabb ,  RID  p_scenario  =  RID ( ) )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Array  _instances_cull_ray_bind ( const  Vector3  & p_from ,  const  Vector3  & p_to ,  RID  p_scenario  =  RID ( ) )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Array  _instances_cull_convex_bind ( const  Array  & p_convex ,  RID  p_scenario  =  RID ( ) )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  InstanceFlags  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_FLAG_USE_BAKED_LIGHT , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-10 23:14:56 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_FLAG_USE_DYNAMIC_GI , 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-27 08:58:56 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										INSTANCE_FLAG_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-07 23:00:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  ShadowCastingSetting  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_CASTING_SETTING_OFF , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_CASTING_SETTING_ON , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_CASTING_SETTING_DOUBLE_SIDED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										SHADOW_CASTING_SETTING_SHADOWS_ONLY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_flag ( RID  p_instance ,  InstanceFlags  p_flags ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-07 23:00:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_cast_shadows_setting ( RID  p_instance ,  ShadowCastingSetting  p_shadow_casting_setting )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_material_override ( RID  p_instance ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-11 10:41:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_draw_range ( RID  p_instance ,  float  p_min ,  float  p_max ,  float  p_min_margin ,  float  p_max_margin )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_as_instance_lod ( RID  p_instance ,  RID  p_as_lod_of_instance )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_lightmap ( RID  p_instance ,  RID  p_lightmap ,  const  Rect2  & p_lightmap_uv_scale ,  int  p_lightmap_slice )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-16 23:52:00 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  instance_geometry_set_shader_parameter ( RID  p_instance ,  const  StringName  & ,  const  Variant  & p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Variant  instance_geometry_get_shader_parameter ( RID  p_instance ,  const  StringName  & )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Variant  instance_geometry_get_shader_parameter_default_value ( RID  p_instance ,  const  StringName  & )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  instance_geometry_get_shader_parameter_list ( RID  p_instance ,  List < PropertyInfo >  * p_parameters )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-01 09:34:23 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* Bake 3D objects */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  BakeChannels  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BAKE_CHANNEL_ALBEDO_ALPHA , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BAKE_CHANNEL_NORMAL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BAKE_CHANNEL_ORM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BAKE_CHANNEL_EMISSION 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  TypedArray < Image >  bake_render_uv2 ( RID  p_base ,  const  Vector < RID >  & p_material_overrides ,  const  Size2i  & p_image_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* CANVAS (2D) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  canvas_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_set_item_mirroring ( RID  p_canvas ,  RID  p_item ,  const  Point2  & p_mirroring )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_set_modulate ( RID  p_canvas ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-05 10:24:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_set_parent ( RID  p_canvas ,  RID  p_parent ,  float  p_scale )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_set_disable_scale ( bool  p_disable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  canvas_item_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_parent ( RID  p_item ,  RID  p_parent )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_visible ( RID  p_item ,  bool  p_visible )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_light_mask ( RID  p_item ,  int  p_mask )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-18 19:39:44 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 16:48:32 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_update_when_visible ( RID  p_item ,  bool  p_update )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_transform ( RID  p_item ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_clip ( RID  p_item ,  bool  p_clip )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_distance_field_mode ( RID  p_item ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_custom_rect ( RID  p_item ,  bool  p_custom_rect ,  const  Rect2  & p_rect  =  Rect2 ( ) )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_modulate ( RID  p_item ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_self_modulate ( RID  p_item ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_draw_behind_parent ( RID  p_item ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  NinePatchAxisMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										NINE_PATCH_STRETCH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										NINE_PATCH_TILE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										NINE_PATCH_TILE_FIT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  CanvasItemTextureFilter  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  //uses canvas item setting for draw command, uses global setting for canvas item
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_NEAREST , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_LINEAR , 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-20 01:31:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS , 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-21 11:31:30 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS , 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-20 01:31:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC , 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-21 11:31:30 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC , 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_FILTER_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  CanvasItemTextureRepeat  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ,  //uses canvas item setting for draw command, uses global setting for canvas item
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_REPEAT_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_REPEAT_ENABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_REPEAT_MIRROR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_ITEM_TEXTURE_REPEAT_MAX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									//takes effect only for new draw commands
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_default_texture_filter ( RID  p_item ,  CanvasItemTextureFilter  p_filter )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_default_texture_repeat ( RID  p_item ,  CanvasItemTextureRepeat  p_repeat )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-24 22:24:07 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_line ( RID  p_item ,  const  Point2  & p_from ,  const  Point2  & p_to ,  const  Color  & p_color ,  float  p_width  =  1.0 )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_polyline ( RID  p_item ,  const  Vector < Point2 >  & p_points ,  const  Vector < Color >  & p_colors ,  float  p_width  =  1.0 )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_multiline ( RID  p_item ,  const  Vector < Point2 >  & p_points ,  const  Vector < Color >  & p_colors ,  float  p_width  =  1.0 )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_rect ( RID  p_item ,  const  Rect2  & p_rect ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_circle ( RID  p_item ,  const  Point2  & p_pos ,  float  p_radius ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_texture_rect ( RID  p_item ,  const  Rect2  & p_rect ,  RID  p_texture ,  bool  p_tile  =  false ,  const  Color  & p_modulate  =  Color ( 1 ,  1 ,  1 ) ,  bool  p_transpose  =  false ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_texture_rect_region ( RID  p_item ,  const  Rect2  & p_rect ,  RID  p_texture ,  const  Rect2  & p_src_rect ,  const  Color  & p_modulate  =  Color ( 1 ,  1 ,  1 ) ,  bool  p_transpose  =  false ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  bool  p_clip_uv  =  false ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_nine_patch ( RID  p_item ,  const  Rect2  & p_rect ,  const  Rect2  & p_source ,  RID  p_texture ,  const  Vector2  & p_topleft ,  const  Vector2  & p_bottomright ,  NinePatchAxisMode  p_x_axis_mode  =  NINE_PATCH_STRETCH ,  NinePatchAxisMode  p_y_axis_mode  =  NINE_PATCH_STRETCH ,  bool  p_draw_center  =  true ,  const  Color  & p_modulate  =  Color ( 1 ,  1 ,  1 ) ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_primitive ( RID  p_item ,  const  Vector < Point2 >  & p_points ,  const  Vector < Color >  & p_colors ,  const  Vector < Point2 >  & p_uvs ,  RID  p_texture ,  float  p_width  =  1.0 ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-24 22:24:07 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_polygon ( RID  p_item ,  const  Vector < Point2 >  & p_points ,  const  Vector < Color >  & p_colors ,  const  Vector < Point2 >  & p_uvs  =  Vector < Point2 > ( ) ,  RID  p_texture  =  RID ( ) ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_triangle_array ( RID  p_item ,  const  Vector < int >  & p_indices ,  const  Vector < Point2 >  & p_points ,  const  Vector < Color >  & p_colors ,  const  Vector < Point2 >  & p_uvs  =  Vector < Point2 > ( ) ,  const  Vector < int >  & p_bones  =  Vector < int > ( ) ,  const  Vector < float >  & p_weights  =  Vector < float > ( ) ,  RID  p_texture  =  RID ( ) ,  int  p_count  =  - 1 ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-15 23:45:24 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_mesh ( RID  p_item ,  const  RID  & p_mesh ,  const  Transform2D  & p_transform  =  Transform2D ( ) ,  const  Color  & p_modulate  =  Color ( 1 ,  1 ,  1 ) ,  RID  p_texture  =  RID ( ) ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_multimesh ( RID  p_item ,  RID  p_mesh ,  RID  p_texture  =  RID ( ) ,  RID  p_normal_map  =  RID ( ) ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_particles ( RID  p_item ,  RID  p_particles ,  RID  p_texture ,  RID  p_normal_map ,  RID  p_specular_map  =  RID ( ) ,  const  Color  & p_specular_color_shininess  =  Color ( ) ,  CanvasItemTextureFilter  p_texture_filter  =  CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ,  CanvasItemTextureRepeat  =  CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_set_transform ( RID  p_item ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_add_clip_ignore ( RID  p_item ,  bool  p_ignore )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_sort_children_by_y ( RID  p_item ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-29 23:06:03 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_z_index ( RID  p_item ,  int  p_z )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_z_as_relative_to_parent ( RID  p_item ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_copy_to_backbuffer ( RID  p_item ,  bool  p_enable ,  const  Rect2  & p_rect )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-21 17:23:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_attach_skeleton ( RID  p_item ,  RID  p_skeleton )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_item_clear ( RID  p_item )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_draw_index ( RID  p_item ,  int  p_index )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_material ( RID  p_item ,  RID  p_material )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_item_set_use_parent_material ( RID  p_item ,  bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  canvas_light_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_attach_to_canvas ( RID  p_light ,  RID  p_canvas )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_enabled ( RID  p_light ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_scale ( RID  p_light ,  float  p_scale )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_transform ( RID  p_light ,  const  Transform2D  & p_transform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_texture ( RID  p_light ,  RID  p_texture )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_texture_offset ( RID  p_light ,  const  Vector2  & p_offset )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_color ( RID  p_light ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_height ( RID  p_light ,  float  p_height )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_energy ( RID  p_light ,  float  p_energy )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_z_range ( RID  p_light ,  int  p_min_z ,  int  p_max_z )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_layer_range ( RID  p_light ,  int  p_min_layer ,  int  p_max_layer )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_item_cull_mask ( RID  p_light ,  int  p_mask )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_item_shadow_cull_mask ( RID  p_light ,  int  p_mask )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-22 11:07:16 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-03 01:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  CanvasLightMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_MODE_ADD , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_MODE_SUB , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_MODE_MIX , 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 20:25:08 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_LIGHT_MODE_MASK , 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-03 01:43:37 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_mode ( RID  p_light ,  CanvasLightMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  CanvasLightShadowFilter  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_FILTER_NONE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_FILTER_PCF5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_LIGHT_FILTER_PCF13 , 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-07 01:49:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										CANVAS_LIGHT_FILTER_MAX 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_shadow_enabled ( RID  p_light ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_shadow_buffer_size ( RID  p_light ,  int  p_size )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_shadow_filter ( RID  p_light ,  CanvasLightShadowFilter  p_filter )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_shadow_color ( RID  p_light ,  const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-13 01:23:04 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_light_set_shadow_smooth ( RID  p_light ,  float  p_smooth )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-02 00:54:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  canvas_light_occluder_create ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_occluder_attach_to_canvas ( RID  p_occluder ,  RID  p_canvas )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_occluder_set_enabled ( RID  p_occluder ,  bool  p_enabled )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_occluder_set_polygon ( RID  p_occluder ,  RID  p_polygon )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_occluder_set_transform ( RID  p_occluder ,  const  Transform2D  & p_xform )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_light_occluder_set_light_mask ( RID  p_occluder ,  int  p_mask )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-22 11:07:16 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  canvas_occluder_polygon_create ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_occluder_polygon_set_shape ( RID  p_occluder_polygon ,  const  Vector < Vector2 >  & p_shape ,  bool  p_closed )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  canvas_occluder_polygon_set_shape_as_lines ( RID  p_occluder_polygon ,  const  Vector < Vector2 >  & p_shape )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 16:33:42 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-02 00:54:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									enum  CanvasOccluderPolygonCullMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_OCCLUDER_POLYGON_CULL_DISABLED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  canvas_occluder_polygon_set_cull_mode ( RID  p_occluder_polygon ,  CanvasOccluderPolygonCullMode  p_mode )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-22 11:07:16 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-16 23:52:00 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* GLOBAL VARIABLES */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  GlobalVariableType  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_BOOL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_BVEC2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_BVEC3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_BVEC4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_INT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_IVEC2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_IVEC3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_IVEC4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_RECT2I , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_UINT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_UVEC2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_UVEC3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_UVEC4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_FLOAT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_VEC2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_VEC3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_VEC4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_COLOR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_RECT2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_MAT2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_MAT3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_MAT4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_TRANSFORM_2D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_TRANSFORM , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_SAMPLER2D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_SAMPLER2DARRAY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_SAMPLER3D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_SAMPLERCUBE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										GLOBAL_VAR_TYPE_MAX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variable_add ( const  StringName  & p_name ,  GlobalVariableType  p_type ,  const  Variant  & p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variable_remove ( const  StringName  & p_name )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < StringName >  global_variable_get_list ( )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variable_set ( const  StringName  & p_name ,  const  Variant  & p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variable_set_override ( const  StringName  & p_name ,  const  Variant  & p_value )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Variant  global_variable_get ( const  StringName  & p_name )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  GlobalVariableType  global_variable_get_type ( const  StringName  & p_name )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variables_load_settings ( bool  p_load_textures )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  global_variables_clear ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									static  ShaderLanguage : : DataType  global_variable_type_get_shader_datatype ( GlobalVariableType  p_type ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* BLACK BARS */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  black_bars_set_margins ( int  p_left ,  int  p_top ,  int  p_right ,  int  p_bottom )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  black_bars_set_images ( RID  p_left ,  RID  p_top ,  RID  p_right ,  RID  p_bottom )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* FREE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  free ( RID  p_rid )  =  0 ;  ///< free RIDs associated with the visual server
 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-09 00:23:50 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  request_frame_drawn_callback ( Object  * p_where ,  const  StringName  & p_method ,  const  Variant  & p_userdata )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* EVENT QUEUING */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-05-09 08:11:43 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  draw ( bool  p_swap_buffers  =  true ,  double  frame_step  =  0.0 )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  sync ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  bool  has_changed ( )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  init ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  finish ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* STATUS INFORMATION */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  RenderInfo  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_OBJECTS_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_VERTICES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_MATERIAL_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_SHADER_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_SURFACE_CHANGES_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_DRAW_CALLS_IN_FRAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_USAGE_VIDEO_MEM_TOTAL , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_VIDEO_MEM_USED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_TEXTURE_MEM_USED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										INFO_VERTEX_MEM_USED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  int  get_render_info ( RenderInfo  p_info )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-13 20:08:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  String  get_video_adapter_name ( )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  String  get_video_adapter_vendor ( )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-20 17:58:06 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  FrameProfileArea  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										String  name ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  gpu_msec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  cpu_msec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  void  set_frame_profiling_enabled ( bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  Vector < FrameProfileArea >  get_frame_profile ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  uint64_t  get_frame_profile_frame ( )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* TESTING */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-09 00:00:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  get_test_cube ( )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  RID  get_test_texture ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 10:56:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  get_white_texture ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  sdfgi_set_debug_probe_select ( const  Vector3  & p_position ,  const  Vector3  & p_dir )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  RID  make_sphere_mesh ( int  p_lats ,  int  p_lons ,  float  p_radius ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-25 20:20:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_add_surface_from_mesh_data ( RID  p_mesh ,  const  Geometry3D : : MeshData  & p_mesh_data ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  mesh_add_surface_from_planes ( RID  p_mesh ,  const  Vector < Plane >  & p_planes ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-13 22:37:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  set_boot_image ( const  Ref < Image >  & p_image ,  const  Color  & p_color ,  bool  p_scale ,  bool  p_use_filter  =  true )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  set_default_clear_color ( const  Color  & p_color )  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									enum  Features  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										FEATURE_SHADERS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										FEATURE_MULTITHREADED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  bool  has_feature ( Features  p_feature )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  bool  has_os_feature ( const  String  & p_feature )  const  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-06 00:38:39 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 15:52:03 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  set_debug_generate_wireframes ( bool  p_generate )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-16 17:09:25 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  void  call_set_use_vsync ( bool  p_enable )  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 20:32:40 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									virtual  bool  is_low_end ( )  const  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-16 21:11:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RenderingDevice  * create_local_rendering_device ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-14 18:06:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  is_render_loop_enabled ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  set_render_loop_enabled ( bool  p_enabled ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RenderingServer ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									virtual  ~ RenderingServer ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// make variant understand the enums
  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : TextureLayeredType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CubeMapLayer ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ShaderMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ArrayType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ArrayFormat ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : PrimitiveType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : BlendShapeMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : MultimeshTransformFormat ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightParam ) ;  
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightBakeMode ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightOmniShadowMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightDirectionalShadowMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : LightDirectionalShadowDepthRangeMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ReflectionProbeUpdateMode ) ;  
						 
					
						
							
								
									
										
										
										
											2020-06-25 10:33:28 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ReflectionProbeAmbientMode ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-14 00:05:21 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : DecalTexture ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ParticlesDrawOrder ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportUpdateMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportClearMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportMSAA ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportScreenSpaceAA ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportRenderInfo ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ViewportDebugDraw ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : SkyMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentBG ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentAmbientSource ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentReflectionSource ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentGlowBlendMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentToneMapper ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentSSRRoughnessQuality ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : EnvironmentSSAOQuality ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : SubSurfaceScatteringQuality ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : DOFBlurQuality ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : DOFBokehShape ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ShadowQuality ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ScenarioDebugMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : InstanceType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : InstanceFlags ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : ShadowCastingSetting ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : NinePatchAxisMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CanvasItemTextureFilter ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CanvasItemTextureRepeat ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CanvasLightMode ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CanvasLightShadowFilter ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : CanvasOccluderPolygonCullMode ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-16 23:52:00 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : GlobalVariableType ) ;  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : RenderInfo ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( RenderingServer : : Features ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Alias to make it easier to use.
  
						 
					
						
							
								
									
										
										
										
											2020-03-27 15:21:27 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# define RS RenderingServer 
  
						 
					
						
							
								
									
										
										
										
											2014-02-09 22:10:30 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-20 11:48:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif  // RENDERING_SERVER_H