Selection and transformation works with layers
This commit is contained in:
parent
7549ad23a1
commit
3df74095a3
16 changed files with 789 additions and 176 deletions
|
|
@ -67,18 +67,18 @@ void CanvasComponentContainer::set_owner_obj_info(const ObjInfoSharedPtr& ownerO
|
|||
void CanvasComponentContainer::commit_update(DrawingProgram& drawP) {
|
||||
auto lockedObjInfo = objInfo.lock();
|
||||
if(worldAABB.has_value()) // This is the only point where worldAABB could be nullopt
|
||||
drawP.drawCache.preupdate_component(lockedObjInfo);
|
||||
drawP.preupdate_component(lockedObjInfo);
|
||||
get_comp().initialize_draw_data(drawP);
|
||||
calculate_world_bounds();
|
||||
drawP.drawCache.preupdate_component(lockedObjInfo);
|
||||
drawP.preupdate_component(lockedObjInfo);
|
||||
}
|
||||
|
||||
void CanvasComponentContainer::commit_transform(DrawingProgram& drawP) {
|
||||
auto lockedObjInfo = objInfo.lock();
|
||||
if(worldAABB.has_value()) // This is the only point where worldAABB could be nullopt
|
||||
drawP.drawCache.preupdate_component(lockedObjInfo);
|
||||
drawP.preupdate_component(lockedObjInfo);
|
||||
calculate_world_bounds();
|
||||
drawP.drawCache.preupdate_component(lockedObjInfo);
|
||||
drawP.preupdate_component(lockedObjInfo);
|
||||
}
|
||||
|
||||
void CanvasComponentContainer::commit_update_dont_invalidate_cache(DrawingProgram& drawP) {
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
#include "CanvasComponentAllocator.hpp"
|
||||
|
||||
class DrawingProgram;
|
||||
class DrawingProgramCacheBVHNode;
|
||||
class DrawingProgramLayerListItem;
|
||||
struct DrawingProgramCacheBVHNode;
|
||||
|
||||
class CanvasComponentContainer {
|
||||
public:
|
||||
|
|
@ -45,7 +45,7 @@ class CanvasComponentContainer {
|
|||
void set_owner_obj_info(const ObjInfoSharedPtr& ownerObjInfo);
|
||||
void send_comp_update(DrawingProgram& drawP, bool finalUpdate);
|
||||
|
||||
std::weak_ptr<DrawingProgramCacheBVHNode> parentBvhNode; // Should be removed later, the new cache uses an unordered_map to map objects to their cache node
|
||||
std::weak_ptr<DrawingProgramCacheBVHNode> cacheParentBvhNode;
|
||||
DrawingProgramLayerListItem* parentLayer = nullptr;
|
||||
CoordSpaceHelper coords;
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ void ImageCanvasComponent::update(DrawingProgram& drawP) {
|
|||
ResourceDisplay* display = drawP.world.drawData.rMan->get_display_data(d.imageID);
|
||||
if(display) {
|
||||
if(display->update_draw())
|
||||
drawP.drawCache.invalidate_cache_at_aabb(compContainer->get_world_bounds());
|
||||
drawP.invalidate_cache_at_component(compContainer->objInfo.lock());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue