Add fix to partial cache refresh

This commit is contained in:
Yousef Khadadeh 2025-08-08 09:56:50 +03:00
parent e9bcedb7ba
commit c8b6ed58e7
2 changed files with 57 additions and 65 deletions

View file

@ -22,7 +22,8 @@ class DrawingProgramCacheBVHNode {
sk_sp<SkSurface> surface;
std::chrono::steady_clock::time_point lastRenderTime;
DrawingProgramCache* attachedCache;
//std::optional<SCollision::AABB<WorldScalar>> invalidBounds;
std::optional<SCollision::AABB<WorldScalar>> invalidBounds;
bool isInvalid = false;
};
std::optional<DrawCacheData> drawCache;
@ -69,7 +70,7 @@ class DrawingProgramCache {
const std::chrono::steady_clock::time_point& get_last_bvh_build_time() const;
void clear_own_cached_surfaces();
private:
uint64_t draw_cache_image_to_canvas(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr<DrawingProgramCacheBVHNode>& bvhNode);
void draw_cache_image_to_canvas(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr<DrawingProgramCacheBVHNode>& bvhNode);
void force_rebuild_dont_include_objs(std::vector<CollabListType::ObjectInfoPtr> componentsToBuild, const std::unordered_set<CollabListType::ObjectInfoPtr>& objsToNotInclude);
void force_rebuild(const std::vector<CollabListType::ObjectInfoPtr>& componentsToBuild);