From 24b2d47a90c8c9be621283b12f959bedb1de0944 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Mon, 21 Jul 2025 17:48:46 +0300 Subject: [PATCH] Removed updateDraw boolean --- src/DrawComponents/DrawComponent.cpp | 6 +----- src/DrawComponents/DrawComponent.hpp | 2 -- src/DrawingProgram/DrawingProgram.cpp | 3 --- src/DrawingProgram/DrawingProgramCache.cpp | 4 ++-- 4 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/DrawComponents/DrawComponent.cpp b/src/DrawComponents/DrawComponent.cpp index d55f931..b2d9957 100644 --- a/src/DrawComponents/DrawComponent.cpp +++ b/src/DrawComponents/DrawComponent.cpp @@ -112,19 +112,16 @@ void DrawComponent::temp_update(DrawingProgram& drawP) { drawP.compCache.preupdate_component(collabListInfo.lock()); worldAABB = std::nullopt; initialize_draw_data(drawP); - updateDraw = true; } void DrawComponent::transform_temp_update(DrawingProgram& drawP) { drawP.compCache.preupdate_component(collabListInfo.lock()); worldAABB = std::nullopt; - updateDraw = true; } void DrawComponent::final_update(DrawingProgram& drawP) { initialize_draw_data(drawP); finalize_update(drawP); - updateDraw = true; } void DrawComponent::client_send_place(DrawingProgram& drawP) { @@ -161,7 +158,6 @@ void DrawComponent::finalize_update(DrawingProgram& drawP, bool invalidateCache) if(invalidateCache) drawP.compCache.preupdate_component(collabListInfo.lock()); create_collider(drawP.colliderAllocated); - updateDraw = true; } bool DrawComponent::collides_with_world_coords(const CoordSpaceHelper& camCoords, const SCollision::ColliderCollection& checkAgainstWorld, bool colliderAllocated) { @@ -202,7 +198,7 @@ void DrawComponent::canvas_do_calculated_transform(SkCanvas* canvas) { void DrawComponent::calculate_draw_transform(const DrawData& drawData) { drawSetupData.shouldDraw = !drawData.clampDrawBetween || ((drawData.clampDrawMaximum >= coords.inverseScale) && (drawData.clampDrawMinimum < coords.inverseScale)); if(drawSetupData.shouldDraw) { - drawSetupData.shouldDraw = updateDraw || !worldAABB || SCollision::collide(*worldAABB, drawData.cam.viewingAreaGenerousCollider); + drawSetupData.shouldDraw = !worldAABB || SCollision::collide(*worldAABB, drawData.cam.viewingAreaGenerousCollider); if(drawSetupData.shouldDraw) { if(drawData.mipMapLevelTwo > coords.inverseScale) drawSetupData.mipmapLevel = 2; diff --git a/src/DrawComponents/DrawComponent.hpp b/src/DrawComponents/DrawComponent.hpp index 8773963..9fcfeb7 100644 --- a/src/DrawComponents/DrawComponent.hpp +++ b/src/DrawComponents/DrawComponent.hpp @@ -72,8 +72,6 @@ class DrawComponent { #ifndef IS_SERVER bool selected = false; - bool updateDraw = true; - bool globalCollisionCheck = false; std::chrono::time_point lastTransformTime; diff --git a/src/DrawingProgram/DrawingProgram.cpp b/src/DrawingProgram/DrawingProgram.cpp index 70cd802..67f6fb0 100644 --- a/src/DrawingProgram/DrawingProgram.cpp +++ b/src/DrawingProgram/DrawingProgram.cpp @@ -572,9 +572,6 @@ void DrawingProgram::draw(SkCanvas* canvas, const DrawData& drawData) { draw_components_to_canvas(drawProgCacheCanvas, drawData, false); canvas->drawImage(world.main.drawProgCache.surface->makeTemporaryImage(), 0, 0); } - - for(auto& c : components.client_list()) - c->obj->updateDraw = false; } switch(controls.selectedTool) { diff --git a/src/DrawingProgram/DrawingProgramCache.cpp b/src/DrawingProgram/DrawingProgramCache.cpp index a101db3..e42b0e7 100644 --- a/src/DrawingProgram/DrawingProgramCache.cpp +++ b/src/DrawingProgram/DrawingProgramCache.cpp @@ -24,7 +24,7 @@ void DrawingProgramCache::build(std::vector compo unsortedComponents.clear(); nodesWithCachedSurfaces.clear(); std::erase_if(components, [&](auto& c) { - if(!c->obj->worldAABB || c->obj->updateDraw) { + if(!c->obj->worldAABB) { unsortedComponents.emplace_back(c); c->obj->parentBvhNode.reset(); return true; @@ -36,7 +36,7 @@ void DrawingProgramCache::build(std::vector compo } void DrawingProgramCache::update() { - if(unsortedComponents.size() >= 1000 && (std::chrono::steady_clock::now() - lastBvhBuildTime) >= std::chrono::seconds(7)) + if(unsortedComponents.size() >= 1000 && (std::chrono::steady_clock::now() - lastBvhBuildTime) >= std::chrono::seconds(5)) force_rebuild(); }