[aseprite] 02/64: Add SpriteWrap::commitImages() to commit changes to images

Tobias Hansen thansen at moszumanska.debian.org
Tue Jun 21 14:42:59 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 84d8a7a4ec3e66b7c21bb5e3ab32ecf9c0018cf5
Author: David Capello <davidcapello at gmail.com>
Date:   Sat Apr 16 21:29:57 2016 -0300

    Add SpriteWrap::commitImages() to commit changes to images
    
    This might be useful to use before we execute commands like Sprite.resize
    or Sprite.crop, which they need all images in the most updated state.
---
 src/app/script/image_wrap.cpp   |  3 +++
 src/app/script/sprite_class.cpp |  4 ++++
 src/app/script/sprite_wrap.cpp  | 16 ++++++++++++----
 src/app/script/sprite_wrap.h    |  1 +
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/app/script/image_wrap.cpp b/src/app/script/image_wrap.cpp
index 9b6828a..4e475c0 100644
--- a/src/app/script/image_wrap.cpp
+++ b/src/app/script/image_wrap.cpp
@@ -39,6 +39,9 @@ void ImageWrap::commit()
                         m_backup.get(),
                         m_modifiedRegion, 0, 0,
                         true));
+
+  m_backup.reset(nullptr);
+  m_modifiedRegion.clear();
 }
 
 void ImageWrap::modifyRegion(const gfx::Region& rgn)
diff --git a/src/app/script/sprite_class.cpp b/src/app/script/sprite_class.cpp
index e1151b2..07aff91 100644
--- a/src/app/script/sprite_class.cpp
+++ b/src/app/script/sprite_class.cpp
@@ -58,6 +58,8 @@ script::result_t Sprite_resize(script::ContextHandle handle)
 
   auto wrap = (SpriteWrap*)ctx.getThis();
   if (wrap) {
+    wrap->commitImages();
+
     Document* doc = wrap->document();
     DocumentApi api(doc, wrap->transaction());
     api.setSpriteSize(doc->sprite(), w, h);
@@ -76,6 +78,8 @@ script::result_t Sprite_crop(script::ContextHandle handle)
 
   auto wrap = (SpriteWrap*)ctx.getThis();
   if (wrap) {
+    wrap->commitImages();
+
     Document* doc = wrap->document();
     DocumentApi api(doc, wrap->transaction());
     api.cropSprite(doc->sprite(), gfx::Rect(x, y, w, h));
diff --git a/src/app/script/sprite_wrap.cpp b/src/app/script/sprite_wrap.cpp
index cfdbbef..b3caa02 100644
--- a/src/app/script/sprite_wrap.cpp
+++ b/src/app/script/sprite_wrap.cpp
@@ -51,8 +51,7 @@ Transaction& SpriteWrap::transaction()
 
 void SpriteWrap::commit()
 {
-  for (auto it : m_images)
-    it.second->commit();
+  commitImages();
 
   if (m_transaction) {
     m_transaction->commit();
@@ -61,6 +60,12 @@ void SpriteWrap::commit()
   }
 }
 
+void SpriteWrap::commitImages()
+{
+  for (auto it : m_images)
+    it.second->commit();
+}
+
 app::Document* SpriteWrap::document()
 {
   return m_doc;
@@ -73,8 +78,11 @@ doc::Sprite* SpriteWrap::sprite()
 
 ImageWrap* SpriteWrap::activeImage()
 {
-  if (!m_view)
-    return nullptr;
+  if (!m_view) {
+    m_view = UIContext::instance()->getFirstDocumentView(m_doc);
+    if (!m_view)
+      return nullptr;
+  }
 
   doc::Site site;
   m_view->getSite(&site);
diff --git a/src/app/script/sprite_wrap.h b/src/app/script/sprite_wrap.h
index 5b4f05c..7085bcb 100644
--- a/src/app/script/sprite_wrap.h
+++ b/src/app/script/sprite_wrap.h
@@ -32,6 +32,7 @@ namespace app {
     ~SpriteWrap();
 
     void commit();
+    void commitImages();
     Transaction& transaction();
 
     app::Document* document();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list