#pragma once #include #include "../../CanvasComponents/CanvasComponent.hpp" #include class DrawingProgramLayerListItem; class DrawingProgramLayerManager; class DrawingProgramLayer { public: void draw(SkCanvas* canvas, const DrawData& drawData) const; void set_component_list_callbacks(DrawingProgramLayerListItem& layerListItem, DrawingProgramLayerManager& layerMan); void commit_update_dont_invalidate_cache(DrawingProgramLayerManager& layerMan) const; void get_flattened_component_list(std::vector& objList) const; void set_to_erase(); void scale_up(const WorldScalar& scaleUpAmount); CanvasComponentContainer::NetListOwnerPtr components; private: std::function eraseCallback; };