diff options
| author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-06-04 12:05:43 +0000 |
|---|---|---|
| committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-06-04 12:05:43 +0000 |
| commit | 1830c7aa3c4045af438fb24ee0bd22598f1bfca7 (patch) | |
| tree | 50d3053bc3406df8d90c85d668121779551f9381 /samplecode/SamplePictFile.cpp | |
| parent | 5d0c62f0f654127b7d66358405d824266868bd1d (diff) | |
--pictureDir foo will load serialized pictures <>.skp from the foo directory
git-svn-id: http://skia.googlecode.com/svn/trunk@4132 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SamplePictFile.cpp')
| -rw-r--r-- | samplecode/SamplePictFile.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/samplecode/SamplePictFile.cpp b/samplecode/SamplePictFile.cpp new file mode 100644 index 0000000000..f81a02ad23 --- /dev/null +++ b/samplecode/SamplePictFile.cpp @@ -0,0 +1,78 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "SampleCode.h" +#include "SkDumpCanvas.h" +#include "SkView.h" +#include "SkCanvas.h" +#include "Sk64.h" +#include "SkGradientShader.h" +#include "SkGraphics.h" +#include "SkImageDecoder.h" +#include "SkPath.h" +#include "SkPicture.h" +#include "SkRandom.h" +#include "SkRegion.h" +#include "SkShader.h" +#include "SkUtils.h" +#include "SkColorPriv.h" +#include "SkColorFilter.h" +#include "SkTime.h" +#include "SkTypeface.h" +#include "SkXfermode.h" + +#include "SkStream.h" +#include "SkXMLParser.h" + +class PictFileView : public SampleView { + SkString fFilename; + SkPicture* fPicture; +public: + PictFileView(const char name[] = NULL) : fFilename(name) { + fPicture = NULL; + } + + virtual ~PictFileView() { + SkSafeUnref(fPicture); + } + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SkString name("P:"); + name.append(fFilename); + SampleCode::TitleR(evt, name.c_str()); + return true; + } + return this->INHERITED::onQuery(evt); + } + + virtual void onDrawContent(SkCanvas* canvas) { + if (NULL == fPicture) { + SkFILEStream stream(fFilename.c_str()); + fPicture = SkNEW_ARGS(SkPicture, (&stream)); + } + canvas->drawPicture(*fPicture); + } + +private: + typedef SampleView INHERITED; +}; + +SampleView* CreateSamplePictFileView(const char filename[]); +SampleView* CreateSamplePictFileView(const char filename[]) { + return new PictFileView(filename); +} + +////////////////////////////////////////////////////////////////////////////// + +#if 0 +static SkView* MyFactory() { return new PictFileView; } +static SkViewRegister reg(MyFactory); +#endif + |
