Removed the remnants of RasterizerScene.

This commit is contained in:
Relintai 2023-12-17 01:55:41 +01:00
parent dfeeb606e8
commit 88e8d53c52
8 changed files with 0 additions and 228 deletions

View File

@ -36,19 +36,6 @@
#include "servers/rendering/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include "servers/rendering_server.h" #include "servers/rendering_server.h"
class RasterizerSceneDummy : public RasterizerScene {
public:
void render_scene(const Transform &p_cam_transform, const Projection &p_cam_projection, const int p_eye, bool p_cam_ortogonal, InstanceBase **p_cull_result, int p_cull_count) {}
void set_scene_pass(uint64_t p_pass) {}
void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) {}
bool free(RID p_rid) { return true; }
RasterizerSceneDummy() {}
~RasterizerSceneDummy() {}
};
class RasterizerStorageDummy : public RasterizerStorage { class RasterizerStorageDummy : public RasterizerStorage {
public: public:
/* TEXTURE API */ /* TEXTURE API */
@ -214,9 +201,6 @@ public:
bool material_is_animated(RID p_material) { return false; } bool material_is_animated(RID p_material) { return false; }
bool material_casts_shadows(RID p_material) { return false; } bool material_casts_shadows(RID p_material) { return false; }
void material_add_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) {}
void material_remove_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) {}
/* MESH API */ /* MESH API */
RID mesh_create() { RID mesh_create() {
@ -460,7 +444,6 @@ class RasterizerDummy : public Rasterizer {
protected: protected:
RasterizerCanvasDummy canvas; RasterizerCanvasDummy canvas;
RasterizerStorageDummy storage; RasterizerStorageDummy storage;
RasterizerSceneDummy scene;
public: public:
RasterizerStorage *get_storage() { return &storage; } RasterizerStorage *get_storage() { return &storage; }

View File

@ -1670,32 +1670,6 @@ bool RasterizerStorageGLES2::material_uses_ensure_correct_normals(RID p_material
return material->shader->spatial.uses_ensure_correct_normals; return material->shader->spatial.uses_ensure_correct_normals;
} }
void RasterizerStorageGLES2::material_add_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) {
Material *material = material_owner.getornull(p_material);
ERR_FAIL_COND(!material);
RBMap<RasterizerScene::InstanceBase *, int>::Element *E = material->instance_owners.find(p_instance);
if (E) {
E->get()++;
} else {
material->instance_owners[p_instance] = 1;
}
}
void RasterizerStorageGLES2::material_remove_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) {
Material *material = material_owner.getornull(p_material);
ERR_FAIL_COND(!material);
RBMap<RasterizerScene::InstanceBase *, int>::Element *E = material->instance_owners.find(p_instance);
ERR_FAIL_COND(!E);
E->get()--;
if (E->get() == 0) {
material->instance_owners.erase(E);
}
}
void RasterizerStorageGLES2::material_set_render_priority(RID p_material, int priority) { void RasterizerStorageGLES2::material_set_render_priority(RID p_material, int priority) {
ERR_FAIL_COND(priority < RS::MATERIAL_RENDER_PRIORITY_MIN); ERR_FAIL_COND(priority < RS::MATERIAL_RENDER_PRIORITY_MIN);
ERR_FAIL_COND(priority > RS::MATERIAL_RENDER_PRIORITY_MAX); ERR_FAIL_COND(priority > RS::MATERIAL_RENDER_PRIORITY_MAX);
@ -3233,53 +3207,6 @@ void RasterizerStorageGLES2::update_dirty_blend_shapes() {
} }
} }
////////
void RasterizerStorageGLES2::instance_add_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance) {
}
void RasterizerStorageGLES2::instance_remove_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance) {
}
void RasterizerStorageGLES2::instance_add_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance) {
Instantiable *inst = nullptr;
switch (p_instance->base_type) {
case RS::INSTANCE_MESH: {
inst = mesh_owner.getornull(p_base);
ERR_FAIL_COND(!inst);
} break;
case RS::INSTANCE_MULTIMESH: {
inst = multimesh_owner.getornull(p_base);
ERR_FAIL_COND(!inst);
} break;
default: {
ERR_FAIL();
}
}
inst->instance_list.add(&p_instance->dependency_item);
}
void RasterizerStorageGLES2::instance_remove_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance) {
Instantiable *inst = nullptr;
switch (p_instance->base_type) {
case RS::INSTANCE_MESH: {
inst = mesh_owner.getornull(p_base);
ERR_FAIL_COND(!inst);
} break;
case RS::INSTANCE_MULTIMESH: {
inst = multimesh_owner.getornull(p_base);
ERR_FAIL_COND(!inst);
} break;
default: {
ERR_FAIL();
}
}
inst->instance_list.remove(&p_instance->dependency_item);
}
/* RENDER TARGET */ /* RENDER TARGET */
void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) {
@ -4084,24 +4011,6 @@ bool RasterizerStorageGLES2::free(RID p_rid) {
g->material = RID(); g->material = RID();
} }
for (RBMap<RasterizerScene::InstanceBase *, int>::Element *E = m->instance_owners.front(); E; E = E->next()) {
RasterizerScene::InstanceBase *ins = E->key();
if (ins->material_override == p_rid) {
ins->material_override = RID();
}
if (ins->material_overlay == p_rid) {
ins->material_overlay = RID();
}
for (int i = 0; i < ins->materials.size(); i++) {
if (ins->materials[i] == p_rid) {
ins->materials.write[i] = RID();
}
}
}
material_owner.free(p_rid); material_owner.free(p_rid);
memdelete(m); memdelete(m);

View File

@ -172,23 +172,10 @@ public:
///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////
struct Instantiable : public RID_Data { struct Instantiable : public RID_Data {
SelfList<RasterizerScene::InstanceBase>::List instance_list;
_FORCE_INLINE_ void instance_change_notify(bool p_aabb, bool p_materials) { _FORCE_INLINE_ void instance_change_notify(bool p_aabb, bool p_materials) {
SelfList<RasterizerScene::InstanceBase> *instances = instance_list.first();
while (instances) {
instances->self()->base_changed(p_aabb, p_materials);
instances = instances->next();
}
} }
_FORCE_INLINE_ void instance_remove_deps() { _FORCE_INLINE_ void instance_remove_deps() {
SelfList<RasterizerScene::InstanceBase> *instances = instance_list.first();
while (instances) {
instances->self()->base_removed();
instances = instances->next();
}
} }
Instantiable() {} Instantiable() {}
@ -542,7 +529,6 @@ public:
uint64_t last_pass; uint64_t last_pass;
RBMap<Geometry *, int> geometry_owners; RBMap<Geometry *, int> geometry_owners;
RBMap<RasterizerScene::InstanceBase *, int> instance_owners;
bool can_cast_shadow_cache; bool can_cast_shadow_cache;
bool is_animated_cache; bool is_animated_cache;
@ -586,9 +572,6 @@ public:
virtual bool material_uses_tangents(RID p_material); virtual bool material_uses_tangents(RID p_material);
virtual bool material_uses_ensure_correct_normals(RID p_material); virtual bool material_uses_ensure_correct_normals(RID p_material);
virtual void material_add_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance);
virtual void material_remove_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance);
virtual void material_set_render_priority(RID p_material, int priority); virtual void material_set_render_priority(RID p_material, int priority);
void update_dirty_materials(); void update_dirty_materials();
@ -810,14 +793,6 @@ public:
void update_dirty_multimeshes(); void update_dirty_multimeshes();
/* INSTANCE */
virtual void instance_add_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance);
virtual void instance_remove_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance);
virtual void instance_add_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance);
virtual void instance_remove_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance);
/* RENDER TARGET */ /* RENDER TARGET */
struct RenderTarget : public RID_Data { struct RenderTarget : public RID_Data {

View File

@ -36,85 +36,6 @@
#include "core/containers/self_list.h" #include "core/containers/self_list.h"
class RasterizerScene {
public:
struct InstanceBase : RID_Data {
RS::InstanceType base_type;
RID base;
RID skeleton;
RID material_override;
RID material_overlay;
// This is the main transform to be drawn with ..
// This will either be the interpolated transform (when using fixed timestep interpolation)
// or the ONLY transform (when not using FTI).
Transform transform;
// for interpolation we store the current transform (this physics tick)
// and the transform in the previous tick
Transform transform_curr;
Transform transform_prev;
int depth_layer;
uint32_t layer_mask;
//RID sampled_light;
Vector<RID> materials;
Vector<RID> light_instances;
PoolVector<float> blend_values;
//fit in 32 bits
bool mirror : 1;
bool receive_shadows : 1;
bool visible : 1;
bool redraw_if_visible : 1;
bool on_interpolate_list : 1;
bool on_interpolate_transform_list : 1;
bool interpolated : 1;
TransformInterpolator::Method interpolation_method : 3;
// For fixed timestep interpolation.
// Note 32 bits is plenty for checksum, no need for real_t
float transform_checksum_curr;
float transform_checksum_prev;
float depth; //used for sorting
SelfList<InstanceBase> dependency_item;
virtual void base_removed() = 0;
virtual void base_changed(bool p_aabb, bool p_materials) = 0;
InstanceBase() :
dependency_item(this) {
base_type = RS::INSTANCE_NONE;
receive_shadows = true;
visible = true;
depth_layer = 0;
layer_mask = 1;
redraw_if_visible = false;
on_interpolate_list = false;
on_interpolate_transform_list = false;
interpolated = true;
interpolation_method = TransformInterpolator::INTERP_LERP;
transform_checksum_curr = 0.0;
transform_checksum_prev = 0.0;
}
};
virtual void render_scene(const Transform &p_cam_transform, const Projection &p_cam_projection, const int p_eye, bool p_cam_ortogonal, InstanceBase **p_cull_result, int p_cull_count) = 0;
virtual void set_scene_pass(uint64_t p_pass) = 0;
virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) = 0;
virtual bool free(RID p_rid) = 0;
virtual ~RasterizerScene() {}
};
class RasterizerStorage { class RasterizerStorage {
public: public:
/* TEXTURE API */ /* TEXTURE API */
@ -208,9 +129,6 @@ public:
virtual bool material_uses_tangents(RID p_material); virtual bool material_uses_tangents(RID p_material);
virtual bool material_uses_ensure_correct_normals(RID p_material); virtual bool material_uses_ensure_correct_normals(RID p_material);
virtual void material_add_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) = 0;
virtual void material_remove_instance_owner(RID p_material, RasterizerScene::InstanceBase *p_instance) = 0;
/* MESH API */ /* MESH API */
virtual RID mesh_create() = 0; virtual RID mesh_create() = 0;
@ -332,12 +250,6 @@ private:
void _multimesh_add_to_interpolation_lists(RID p_multimesh, MMInterpolator &r_mmi); void _multimesh_add_to_interpolation_lists(RID p_multimesh, MMInterpolator &r_mmi);
public: public:
virtual void instance_add_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance) = 0;
virtual void instance_remove_skeleton(RID p_skeleton, RasterizerScene::InstanceBase *p_instance) = 0;
virtual void instance_add_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance) = 0;
virtual void instance_remove_dependency(RID p_base, RasterizerScene::InstanceBase *p_instance) = 0;
/* RENDER TARGET */ /* RENDER TARGET */
enum RenderTargetFlags { enum RenderTargetFlags {

View File

@ -32,7 +32,6 @@
RasterizerStorage *RenderingServerGlobals::storage = nullptr; RasterizerStorage *RenderingServerGlobals::storage = nullptr;
RasterizerCanvas *RenderingServerGlobals::canvas_render = nullptr; RasterizerCanvas *RenderingServerGlobals::canvas_render = nullptr;
RasterizerScene *RenderingServerGlobals::scene_render = nullptr;
Rasterizer *RenderingServerGlobals::rasterizer = nullptr; Rasterizer *RenderingServerGlobals::rasterizer = nullptr;
RenderingServerCanvas *RenderingServerGlobals::canvas = nullptr; RenderingServerCanvas *RenderingServerGlobals::canvas = nullptr;

View File

@ -39,7 +39,6 @@ class RenderingServerGlobals {
public: public:
static RasterizerStorage *storage; static RasterizerStorage *storage;
static RasterizerCanvas *canvas_render; static RasterizerCanvas *canvas_render;
static RasterizerScene *scene_render;
static Rasterizer *rasterizer; static Rasterizer *rasterizer;
static RenderingServerCanvas *canvas; static RenderingServerCanvas *canvas;

View File

@ -78,9 +78,6 @@ void RenderingServerRaster::free(RID p_rid) {
if (RSG::viewport->free(p_rid)) { if (RSG::viewport->free(p_rid)) {
return; return;
} }
if (RSG::scene_render->free(p_rid)) {
return;
}
ERR_FAIL_MSG("Invalid RID."); ERR_FAIL_MSG("Invalid RID.");
} }

View File

@ -128,7 +128,6 @@ void RenderingServerViewport::draw_viewports() {
RSG::storage->render_target_set_external_texture(vp->render_target, 0, 0); RSG::storage->render_target_set_external_texture(vp->render_target, 0, 0);
RSG::rasterizer->set_current_render_target(vp->render_target); RSG::rasterizer->set_current_render_target(vp->render_target);
RSG::scene_render->set_debug_draw_mode(vp->debug_draw);
RSG::storage->render_info_begin_capture(); RSG::storage->render_info_begin_capture();
// render standard mono camera // render standard mono camera
@ -153,7 +152,6 @@ void RenderingServerViewport::draw_viewports() {
if (vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) { if (vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) {
vp->update_mode = RS::VIEWPORT_UPDATE_DISABLED; vp->update_mode = RS::VIEWPORT_UPDATE_DISABLED;
} }
RSG::scene_render->set_debug_draw_mode(RS::VIEWPORT_DEBUG_DRAW_DISABLED);
} }
} }