diff --git a/PanoPainter.xcodeproj/project.pbxproj b/PanoPainter.xcodeproj/project.pbxproj index a1f4460..fc7234e 100644 --- a/PanoPainter.xcodeproj/project.pbxproj +++ b/PanoPainter.xcodeproj/project.pbxproj @@ -208,6 +208,10 @@ ADD7D2AF1EBFA35F00D5A897 /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADD7D2AE1EBFA35F00D5A897 /* libcurl.a */; }; ADD7D2B11EBFA42600D5A897 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = ADD7D2B01EBFA42600D5A897 /* libz.tbd */; }; ADD7D2B31EBFA42C00D5A897 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADD7D2B21EBFA42C00D5A897 /* Security.framework */; }; + ADDC18C522B43004008D7F60 /* canvas_layer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADDC18C322B43004008D7F60 /* canvas_layer.cpp */; }; + ADDC18C622B43004008D7F60 /* canvas_layer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADDC18C322B43004008D7F60 /* canvas_layer.cpp */; }; + ADDC18C722B43004008D7F60 /* canvas_actions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADDC18C422B43004008D7F60 /* canvas_actions.cpp */; }; + ADDC18C822B43004008D7F60 /* canvas_actions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADDC18C422B43004008D7F60 /* canvas_actions.cpp */; }; ADE0862D212395B600945972 /* libSonarPenUniversal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADE0862C212395B500945972 /* libSonarPenUniversal.a */; }; ADE0862F21239C9200945972 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADE0862E21239C9100945972 /* AudioToolbox.framework */; }; ADE0863121239CDA00945972 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADE0863021239CD900945972 /* MediaPlayer.framework */; }; @@ -519,6 +523,10 @@ ADD7D2AE1EBFA35F00D5A897 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = "../../Downloads/curl-android-ios-master/prebuilt-with-ssl/iOS/arm64/libcurl.a"; sourceTree = ""; }; ADD7D2B01EBFA42600D5A897 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; }; ADD7D2B21EBFA42C00D5A897 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + ADDC18C122B43003008D7F60 /* canvas_layer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = canvas_layer.h; sourceTree = ""; }; + ADDC18C222B43003008D7F60 /* canvas_actions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = canvas_actions.h; sourceTree = ""; }; + ADDC18C322B43004008D7F60 /* canvas_layer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = canvas_layer.cpp; sourceTree = ""; }; + ADDC18C422B43004008D7F60 /* canvas_actions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = canvas_actions.cpp; sourceTree = ""; }; ADE0862C212395B500945972 /* libSonarPenUniversal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSonarPenUniversal.a; path = libs/libSonarPen/libSonarPenUniversal.a; sourceTree = ""; }; ADE0862E21239C9100945972 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; }; ADE0863021239CD900945972 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; }; @@ -821,10 +829,14 @@ AD4C08D41E89BD0F0051D85F /* brush.h */, ADF6C57F2231EB5D0097BFD9 /* binary_stream.cpp */, ADF6C57E2231EB5D0097BFD9 /* binary_stream.h */, - AD744B6C1EBC9EF700B66E30 /* canvas_modes.cpp */, - AD744B6D1EBC9EF800B66E30 /* canvas_modes.h */, AD4C08D51E89BD0F0051D85F /* canvas.cpp */, AD4C08D61E89BD0F0051D85F /* canvas.h */, + ADDC18C422B43004008D7F60 /* canvas_actions.cpp */, + ADDC18C222B43003008D7F60 /* canvas_actions.h */, + ADDC18C322B43004008D7F60 /* canvas_layer.cpp */, + ADDC18C122B43003008D7F60 /* canvas_layer.h */, + AD744B6C1EBC9EF700B66E30 /* canvas_modes.cpp */, + AD744B6D1EBC9EF800B66E30 /* canvas_modes.h */, ADB1C3D81EA3A156009A65BD /* event.cpp */, ADB1C3D91EA3A156009A65BD /* event.h */, AD95AEC31E41EDEC002DD03A /* font.cpp */, @@ -1427,9 +1439,11 @@ AD7FB088223E8A43005913AB /* YGEnums.cpp in Sources */, AD0E5CA31ECC6F2B00C35669 /* main.cpp in Sources */, AD0E5CB21ECC72AD00C35669 /* jpge.cpp in Sources */, + ADDC18C622B43004008D7F60 /* canvas_layer.cpp in Sources */, ADC6F4681F3E66FB004177FA /* app_dialogs.cpp in Sources */, ADE22BE7211904AB00D5F44B /* node_panel_grid.cpp in Sources */, AD0E5CD21ECC72AD00C35669 /* app_events.cpp in Sources */, + ADDC18C822B43004008D7F60 /* canvas_actions.cpp in Sources */, AD0E5CD11ECC72AD00C35669 /* app.cpp in Sources */, AD0E5CC21ECC72AD00C35669 /* node_image.cpp in Sources */, AD43268221599A5B006DE7F6 /* node_usermanual.cpp in Sources */, @@ -1565,6 +1579,7 @@ AD7FB087223E8A43005913AB /* YGEnums.cpp in Sources */, ADD6AFD81F94DEB000E92461 /* node_progress_bar.cpp in Sources */, AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */, + ADDC18C522B43004008D7F60 /* canvas_layer.cpp in Sources */, ADA3ABF6222C8C370083B825 /* node_panel_quick.cpp in Sources */, AD439B642210F5EA006EAE8E /* abr.cpp in Sources */, ADD7D2941EBF9E1C00D5A897 /* asset.cpp in Sources */, @@ -1597,6 +1612,7 @@ AD1063A81EC7AE92002A525F /* node_slider.cpp in Sources */, AD43268121599A5B006DE7F6 /* node_usermanual.cpp in Sources */, ADD7D2A21EBF9E1C00D5A897 /* util.cpp in Sources */, + ADDC18C722B43004008D7F60 /* canvas_actions.cpp in Sources */, ADD7D2791EBF9AE300D5A897 /* GameViewController.m in Sources */, AD4CEF142156B2C60097F4BD /* node_about.cpp in Sources */, AD439B602210F423006EAE8E /* format.cc in Sources */, diff --git a/src/canvas_layer.cpp b/src/canvas_layer.cpp index c638057..40a1c54 100644 --- a/src/canvas_layer.cpp +++ b/src/canvas_layer.cpp @@ -45,3 +45,17 @@ void Layer::Snapshot::optimize() //glm::vec2 bbsz = bbmax - bbmin; } } + +int Layer::Snapshot::memsize() const +{ + int ret = 0; + for (int i = 0; i < 6; i++) + { + if (m_dirty_face[i]) + { + glm::vec2 sz = zw(m_dirty_box[i]) - xy(m_dirty_box[i]); + ret += sz.x * sz.y * 4; + } + } + return ret; +} diff --git a/src/canvas_layer.h b/src/canvas_layer.h index ef0816a..052da29 100644 --- a/src/canvas_layer.h +++ b/src/canvas_layer.h @@ -36,6 +36,7 @@ public: void create(int w, int h); void clear(); void optimize(); + int memsize() const; }; void resize(int width, int height); bool create(int width, int height, std::string name); diff --git a/src/node_panel_layer.cpp b/src/node_panel_layer.cpp index 3c8f9d0..d70a391 100644 --- a/src/node_panel_layer.cpp +++ b/src/node_panel_layer.cpp @@ -409,11 +409,6 @@ void ActionLayerAdd::undo() m_panel->remove_layer((NodeLayer*)m_layer_node.get(), false); } -size_t ActionLayerAdd::memory() -{ - return 0; -} - /////////////////////////////////////////////////////////////////////////////// Action* ActionLayerRemove::get_redo() @@ -435,11 +430,6 @@ void ActionLayerRemove::undo() LOG("ActionLayerRemove::undo %s", name.c_str()); } -size_t ActionLayerRemove::memory() -{ - return 0; -} - /////////////////////////////////////////////////////////////////////////////// Action* ActionLayerMove::get_redo() @@ -462,11 +452,6 @@ void ActionLayerMove::undo() } } -size_t ActionLayerMove::memory() -{ - return 0; -} - /////////////////////////////////////////////////////////////////////////////// void ActionLayerMerge::undo() diff --git a/src/node_panel_layer.h b/src/node_panel_layer.h index 9ff3b7e..47762e3 100644 --- a/src/node_panel_layer.h +++ b/src/node_panel_layer.h @@ -88,7 +88,7 @@ public: virtual void run() override { } virtual Action* get_redo() override; virtual void undo() override; - virtual size_t memory() override; + virtual size_t memory() override { return 0; } }; class ActionLayerRemove : public Action @@ -96,12 +96,12 @@ class ActionLayerRemove : public Action public: NodePanelLayer* m_panel; std::shared_ptr m_layer_node; - std::shared_ptr m_layer; + std::shared_ptr m_layer; int m_layer_order; virtual void run() override { } virtual Action* get_redo() override; virtual void undo() override; - virtual size_t memory() override; + virtual size_t memory() override { return 0; } }; class ActionLayerMove : public Action @@ -113,7 +113,7 @@ public: virtual void run() override { } virtual Action* get_redo() override; virtual void undo() override; - virtual size_t memory() override; + virtual size_t memory() override { return 0; } }; struct ActionLayerMerge : public Action @@ -128,7 +128,7 @@ struct ActionLayerMerge : public Action std::array m_dirty_box; std::array m_dirty_face; virtual void run() override { } - virtual size_t memory() override { return 0; } + virtual size_t memory() override { return m_snap->memsize(); } virtual void undo() override; virtual Action* get_redo() override; };