aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-10-13 13:33:16 +0000
committerGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-10-13 13:33:16 +0000
commit0f0cfaecf2c52e5fcb033c43df06f07a81c7b0c2 (patch)
treee353dc169afbde9ab2cef36cb44f7df0d5b7572a
parentd0d0e65a6313f01dfd952e8cc214a7c193bec57a (diff)
check-point for reviving animator
git-svn-id: http://skia.googlecode.com/svn/trunk@380 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--include/config/SkUserConfig.h2
-rw-r--r--samplecode/SampleAnimator.cpp88
-rw-r--r--src/animator/SkDrawPaint.cpp2
-rw-r--r--src/animator/SkSnapshot.cpp1
-rw-r--r--src/views/SkTextBox.cpp2
5 files changed, 92 insertions, 3 deletions
diff --git a/include/config/SkUserConfig.h b/include/config/SkUserConfig.h
index ccdf40fe92..8f63ce45a7 100644
--- a/include/config/SkUserConfig.h
+++ b/include/config/SkUserConfig.h
@@ -122,7 +122,7 @@
so this flag is optional.
*/
#ifdef SK_DEBUG
-#define SK_SUPPORT_UNITTEST
+//#define SK_SUPPORT_UNITTEST
#endif
#endif
diff --git a/samplecode/SampleAnimator.cpp b/samplecode/SampleAnimator.cpp
new file mode 100644
index 0000000000..76b1975f92
--- /dev/null
+++ b/samplecode/SampleAnimator.cpp
@@ -0,0 +1,88 @@
+#include "SampleCode.h"
+#include "SkView.h"
+#include "SkCanvas.h"
+
+#include "SkAnimator.h"
+#include "SkStream.h"
+
+class SkAnimatorView : public SkView {
+public:
+ SkAnimatorView();
+ virtual ~SkAnimatorView();
+
+ void setURIBase(const char dir[]);
+
+ SkAnimator* getAnimator() const { return fAnimator; }
+
+ bool decodeFile(const char path[]);
+ bool decodeMemory(const void* buffer, size_t size);
+ bool decodeStream(SkStream* stream);
+
+protected:
+ // overrides
+ virtual void onDraw(SkCanvas*);
+
+private:
+ SkString fBaseURI;
+ SkAnimator* fAnimator;
+
+ typedef SkView INHERITED;
+};
+
+SkAnimatorView::SkAnimatorView() : fAnimator(NULL) {
+}
+
+SkAnimatorView::~SkAnimatorView() {
+ delete fAnimator;
+}
+
+void SkAnimatorView::setURIBase(const char dir[]) {
+ fBaseURI.set(dir);
+}
+
+bool SkAnimatorView::decodeFile(const char path[]) {
+ SkFILEStream* is = new SkFILEStream(path);
+ SkAutoUnref aur(is);
+ return is->isValid() && this->decodeStream(is);
+}
+
+bool SkAnimatorView::decodeMemory(const void* buffer, size_t size) {
+ SkMemoryStream* is = new SkMemoryStream(buffer, size);
+ SkAutoUnref aur(is);
+ return this->decodeStream(is);
+}
+
+bool SkAnimatorView::decodeStream(SkStream* stream) {
+ delete fAnimator;
+ fAnimator = new SkAnimator;
+ fAnimator->setURIBase(fBaseURI.c_str());
+ if (!fAnimator->decodeStream(stream)) {
+ delete fAnimator;
+ fAnimator = NULL;
+ return false;
+ }
+ return true;
+}
+
+#include "SkTime.h"
+
+void SkAnimatorView::onDraw(SkCanvas* canvas) {
+ if (fAnimator) {
+ canvas->drawColor(SK_ColorWHITE);
+ fAnimator->draw(canvas, SkTime::GetMSecs());
+ this->inval(NULL);
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+
+static SkView* MyFactory() {
+ SkAnimatorView* av = new SkAnimatorView;
+// av->decodeFile("/skimages/test.xml");
+ av->setURIBase("/skia/trunk/animations/");
+ av->decodeFile("/skia/trunk/animations/movie#1.xml");
+ return av;
+}
+
+static SkViewRegister reg(MyFactory);
+
diff --git a/src/animator/SkDrawPaint.cpp b/src/animator/SkDrawPaint.cpp
index d4837b568d..0c23771240 100644
--- a/src/animator/SkDrawPaint.cpp
+++ b/src/animator/SkDrawPaint.cpp
@@ -273,5 +273,5 @@ void SkDrawPaint::setupPaint(SkPaint* paint) const {
if (underline != -1)
paint->setUnderlineText(SkToBool(underline));
if (xfermode != (SkXfermode::Mode) -1)
- paint->setXfermode((SkXfermode::Mode) xfermode);
+ paint->setXfermodeMode((SkXfermode::Mode) xfermode);
}
diff --git a/src/animator/SkSnapshot.cpp b/src/animator/SkSnapshot.cpp
index 0043ca5bd5..48d2438014 100644
--- a/src/animator/SkSnapshot.cpp
+++ b/src/animator/SkSnapshot.cpp
@@ -20,6 +20,7 @@
#include "SkSnapshot.h"
#include "SkAnimateMaker.h"
#include "SkCanvas.h"
+#include "SkImageEncoder.h"
#if SK_USE_CONDENSED_INFO == 0
diff --git a/src/views/SkTextBox.cpp b/src/views/SkTextBox.cpp
index 657f64805c..8bc82f3843 100644
--- a/src/views/SkTextBox.cpp
+++ b/src/views/SkTextBox.cpp
@@ -16,7 +16,7 @@
*/
#include "SkTextBox.h"
-#include "SkGlyphCache.h"
+#include "../src/core/SkGlyphCache.h"
#include "SkUtils.h"
#include "SkAutoKern.h"