summaryrefslogtreecommitdiffstats
path: root/servers/visual/rasterizer.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/visual/rasterizer.h')
-rw-r--r--servers/visual/rasterizer.h75
1 files changed, 33 insertions, 42 deletions
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index 838ddead75..56c6dfe30a 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -98,9 +98,6 @@ public:
//int baked_lightmap_id;
bool mirror : 8;
- bool depth_scale : 8;
- bool billboard : 8;
- bool billboard_y : 8;
bool receive_shadows : 8;
bool visible : 8;
@@ -120,9 +117,6 @@ public:
base_type = VS::INSTANCE_NONE;
cast_shadows = VS::SHADOW_CASTING_SETTING_ON;
receive_shadows = true;
- depth_scale = false;
- billboard = false;
- billboard_y = false;
visible = true;
depth_layer = 0;
layer_mask = 1;
@@ -198,10 +192,7 @@ public:
/* SHADER API */
- virtual RID shader_create(VS::ShaderMode p_mode = VS::SHADER_SPATIAL) = 0;
-
- virtual void shader_set_mode(RID p_shader, VS::ShaderMode p_mode) = 0;
- virtual VS::ShaderMode shader_get_mode(RID p_shader) const = 0;
+ virtual RID shader_create() = 0;
virtual void shader_set_code(RID p_shader, const String &p_code) = 0;
virtual String shader_get_code(RID p_shader) const = 0;
@@ -452,19 +443,19 @@ public:
virtual void particles_set_gravity(RID p_particles, const Vector3 &p_gravity) = 0;
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;
-
- virtual void particles_set_emission_shape(RID p_particles, VS::ParticlesEmissionShape p_shape) = 0;
- virtual void particles_set_emission_sphere_radius(RID p_particles, float p_radius) = 0;
- virtual void particles_set_emission_box_extents(RID p_particles, const Vector3 &p_extents) = 0;
- virtual void particles_set_emission_points(RID p_particles, const PoolVector<Vector3> &p_points) = 0;
+ 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;
virtual void particles_set_draw_order(RID p_particles, VS::ParticlesDrawOrder p_order) = 0;
virtual void particles_set_draw_passes(RID p_particles, int p_count) = 0;
- virtual void particles_set_draw_pass_material(RID p_particles, int p_pass, RID p_material) = 0;
virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) = 0;
+ virtual void particles_request_process(RID p_particles) = 0;
virtual Rect3 particles_get_current_aabb(RID p_particles) = 0;
+ virtual Rect3 particles_get_aabb(RID p_particles) const = 0;
+
+ virtual void particles_set_emission_transform(RID p_particles, const Transform &p_transform) = 0;
/* RENDER TARGET */
@@ -971,7 +962,7 @@ protected:
/* Fixed Material Shader API */
- union FixedSpatialMaterialShaderKey {
+ union SpatialMaterialShaderKey {
struct {
uint16_t texcoord_mask;
@@ -987,21 +978,21 @@ protected:
uint32_t key;
- _FORCE_INLINE_ bool operator<(const FixedSpatialMaterialShaderKey& p_key) const { return key<p_key.key; }
+ _FORCE_INLINE_ bool operator<(const SpatialMaterialShaderKey& p_key) const { return key<p_key.key; }
};
- struct FixedSpatialMaterialShader {
+ struct SpatialMaterialShader {
int refcount;
RID shader;
};
- Map<FixedSpatialMaterialShaderKey,FixedSpatialMaterialShader> fixed_material_shaders;
+ Map<SpatialMaterialShaderKey,SpatialMaterialShader> fixed_material_shaders;
- RID _create_shader(const FixedSpatialMaterialShaderKey& p_key);
- void _free_shader(const FixedSpatialMaterialShaderKey& p_key);
+ RID _create_shader(const SpatialMaterialShaderKey& p_key);
+ void _free_shader(const SpatialMaterialShaderKey& p_key);
- struct FixedSpatialMaterial {
+ struct SpatialMaterial {
RID self;
@@ -1012,19 +1003,19 @@ protected:
bool use_xy_normalmap;
float point_size;
Transform uv_xform;
- VS::FixedSpatialMaterialLightShader light_shader;
+ VS::SpatialMaterialLightShader light_shader;
RID texture[VS::FIXED_MATERIAL_PARAM_MAX];
Variant param[VS::FIXED_MATERIAL_PARAM_MAX];
- VS::FixedSpatialMaterialTexCoordMode texture_tc[VS::FIXED_MATERIAL_PARAM_MAX];
+ VS::SpatialMaterialTexCoordMode texture_tc[VS::FIXED_MATERIAL_PARAM_MAX];
- SelfList<FixedSpatialMaterial> dirty_list;
+ SelfList<SpatialMaterial> dirty_list;
- FixedSpatialMaterialShaderKey current_key;
+ SpatialMaterialShaderKey current_key;
- _FORCE_INLINE_ FixedSpatialMaterialShaderKey get_key() const {
+ _FORCE_INLINE_ SpatialMaterialShaderKey get_key() const {
- FixedSpatialMaterialShaderKey k;
+ SpatialMaterialShaderKey k;
k.key=0;
k.use_alpha=use_alpha;
k.use_color_array=use_color_array;
@@ -1045,7 +1036,7 @@ protected:
}
- FixedSpatialMaterial() : dirty_list(this) {
+ SpatialMaterial() : dirty_list(this) {
use_alpha=false;
use_color_array=false;
@@ -1077,9 +1068,9 @@ protected:
StringName _fixed_material_uv_xform_name;
StringName _fixed_material_point_size_name;
- Map<RID,FixedSpatialMaterial*> fixed_materials;
+ Map<RID,SpatialMaterial*> fixed_materials;
- SelfList<FixedSpatialMaterial>::List fixed_material_dirty_list;
+ SelfList<SpatialMaterial>::List fixed_material_dirty_list;
protected:
void _update_fixed_materials();
@@ -1166,23 +1157,23 @@ public:
virtual RID fixed_material_create();
- virtual void fixed_material_set_flag(RID p_material, VS::FixedSpatialMaterialFlags p_flag, bool p_enabled);
- virtual bool fixed_material_get_flag(RID p_material, VS::FixedSpatialMaterialFlags p_flag) const;
+ virtual void fixed_material_set_flag(RID p_material, VS::SpatialMaterialFlags p_flag, bool p_enabled);
+ virtual bool fixed_material_get_flag(RID p_material, VS::SpatialMaterialFlags p_flag) const;
- virtual void fixed_material_set_parameter(RID p_material, VS::FixedSpatialMaterialParam p_parameter, const Variant& p_value);
- virtual Variant fixed_material_get_parameter(RID p_material,VS::FixedSpatialMaterialParam p_parameter) const;
+ virtual void fixed_material_set_parameter(RID p_material, VS::SpatialMaterialParam p_parameter, const Variant& p_value);
+ virtual Variant fixed_material_get_parameter(RID p_material,VS::SpatialMaterialParam p_parameter) const;
- virtual void fixed_material_set_texture(RID p_material,VS::FixedSpatialMaterialParam p_parameter, RID p_texture);
- virtual RID fixed_material_get_texture(RID p_material,VS::FixedSpatialMaterialParam p_parameter) const;
+ virtual void fixed_material_set_texture(RID p_material,VS::SpatialMaterialParam p_parameter, RID p_texture);
+ virtual RID fixed_material_get_texture(RID p_material,VS::SpatialMaterialParam p_parameter) const;
- virtual void fixed_material_set_texcoord_mode(RID p_material,VS::FixedSpatialMaterialParam p_parameter, VS::FixedSpatialMaterialTexCoordMode p_mode);
- virtual VS::FixedSpatialMaterialTexCoordMode fixed_material_get_texcoord_mode(RID p_material,VS::FixedSpatialMaterialParam p_parameter) const;
+ virtual void fixed_material_set_texcoord_mode(RID p_material,VS::SpatialMaterialParam p_parameter, VS::SpatialMaterialTexCoordMode p_mode);
+ virtual VS::SpatialMaterialTexCoordMode fixed_material_get_texcoord_mode(RID p_material,VS::SpatialMaterialParam p_parameter) const;
virtual void fixed_material_set_uv_transform(RID p_material,const Transform& p_transform);
virtual Transform fixed_material_get_uv_transform(RID p_material) const;
- virtual void fixed_material_set_light_shader(RID p_material,VS::FixedSpatialMaterialLightShader p_shader);
- virtual VS::FixedSpatialMaterialLightShader fixed_material_get_light_shader(RID p_material) const;
+ virtual void fixed_material_set_light_shader(RID p_material,VS::SpatialMaterialLightShader p_shader);
+ virtual VS::SpatialMaterialLightShader fixed_material_get_light_shader(RID p_material) const;
virtual void fixed_material_set_point_size(RID p_material,float p_size);
virtual float fixed_material_get_point_size(RID p_material) const;