| Index: samplecode/SamplePicture.cpp
|
| diff --git a/samplecode/SamplePicture.cpp b/samplecode/SamplePicture.cpp
|
| deleted file mode 100644
|
| index eb2cd733fe61a05d5b7402ac2e1f131b6e21cf10..0000000000000000000000000000000000000000
|
| --- a/samplecode/SamplePicture.cpp
|
| +++ /dev/null
|
| @@ -1,179 +0,0 @@
|
| -/*
|
| - * 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 "gm.h"
|
| -
|
| -#include "Resources.h"
|
| -#include "SampleCode.h"
|
| -#include "SkCanvas.h"
|
| -#include "SkColorFilter.h"
|
| -#include "SkColorPriv.h"
|
| -#include "SkData.h"
|
| -#include "SkImageGenerator.h"
|
| -#include "SkDumpCanvas.h"
|
| -#include "SkGradientShader.h"
|
| -#include "SkGraphics.h"
|
| -#include "SkImageDecoder.h"
|
| -#include "SkOSFile.h"
|
| -#include "SkPath.h"
|
| -#include "SkPicture.h"
|
| -#include "SkPictureRecorder.h"
|
| -#include "SkRandom.h"
|
| -#include "SkRegion.h"
|
| -#include "SkShader.h"
|
| -#include "SkStream.h"
|
| -#include "SkTime.h"
|
| -#include "SkTypeface.h"
|
| -#include "SkUtils.h"
|
| -#include "SkView.h"
|
| -#include "SkXMLParser.h"
|
| -#include "SkXfermode.h"
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -static SkBitmap load_bitmap() {
|
| - SkBitmap bm;
|
| - SkString pngFilename = GetResourcePath("mandrill_512.png");
|
| - SkAutoDataUnref data(SkData::NewFromFileName(pngFilename.c_str()));
|
| - if (data.get() != nullptr) {
|
| - SkInstallDiscardablePixelRef(data, &bm);
|
| - }
|
| - return bm;
|
| -}
|
| -
|
| -static void drawCircle(SkCanvas* canvas, int r, SkColor color) {
|
| - SkPaint paint;
|
| - paint.setAntiAlias(true);
|
| - paint.setColor(color);
|
| -
|
| - canvas->drawCircle(SkIntToScalar(r), SkIntToScalar(r), SkIntToScalar(r),
|
| - paint);
|
| -}
|
| -
|
| -class PictureView : public SampleView {
|
| - SkBitmap fBitmap;
|
| -public:
|
| - PictureView() {
|
| -
|
| - fBitmap = load_bitmap();
|
| -
|
| - SkPictureRecorder recorder;
|
| -
|
| - recorder.beginRecording(100, 100, nullptr, 0);
|
| - fSubPicture = recorder.endRecording();
|
| -
|
| - SkCanvas* canvas = recorder.beginRecording(100, 100, nullptr, 0);
|
| - SkPaint paint;
|
| - paint.setAntiAlias(true);
|
| -
|
| - canvas->drawBitmap(fBitmap, 0, 0, nullptr);
|
| -
|
| - drawCircle(canvas, 50, SK_ColorBLACK);
|
| - canvas->drawPicture(fSubPicture);
|
| - canvas->translate(SkIntToScalar(50), 0);
|
| - canvas->drawPicture(fSubPicture);
|
| - canvas->translate(0, SkIntToScalar(50));
|
| - canvas->drawPicture(fSubPicture);
|
| - canvas->translate(SkIntToScalar(-50), 0);
|
| - canvas->drawPicture(fSubPicture);
|
| -
|
| - fPicture = recorder.endRecording();
|
| -
|
| - // fPicture now has (4) references to fSubPicture. We can release our ref,
|
| - // and just unref fPicture in our destructor, and it will in turn take care of
|
| - // the other references to fSubPicture
|
| - fSubPicture->unref();
|
| - }
|
| -
|
| - virtual ~PictureView() {
|
| - fPicture->unref();
|
| - }
|
| -
|
| -protected:
|
| - // overrides from SkEventSink
|
| - bool onQuery(SkEvent* evt) override {
|
| - if (SampleCode::TitleQ(*evt)) {
|
| - SampleCode::TitleR(evt, "Picture");
|
| - return true;
|
| - }
|
| - return this->INHERITED::onQuery(evt);
|
| - }
|
| -
|
| - void drawSomething(SkCanvas* canvas) {
|
| - SkPaint paint;
|
| -
|
| - canvas->save();
|
| - canvas->scale(0.5f, 0.5f);
|
| - canvas->drawBitmap(fBitmap, 0, 0, nullptr);
|
| - canvas->restore();
|
| -
|
| - paint.setAntiAlias(true);
|
| -
|
| - paint.setColor(SK_ColorRED);
|
| - canvas->drawCircle(SkIntToScalar(50), SkIntToScalar(50),
|
| - SkIntToScalar(40), paint);
|
| - paint.setColor(SK_ColorBLACK);
|
| - paint.setTextSize(SkIntToScalar(40));
|
| - canvas->drawText("Picture", 7, SkIntToScalar(50), SkIntToScalar(62),
|
| - paint);
|
| -
|
| - }
|
| -
|
| - void onDrawContent(SkCanvas* canvas) override {
|
| - this->drawSomething(canvas);
|
| -
|
| - SkPictureRecorder recorder;
|
| - this->drawSomething(recorder.beginRecording(100, 100, nullptr, 0));
|
| - SkAutoTUnref<SkPicture> pict(recorder.endRecording());
|
| -
|
| - canvas->save();
|
| - canvas->translate(SkIntToScalar(300), SkIntToScalar(50));
|
| - canvas->scale(-SK_Scalar1, -SK_Scalar1);
|
| - canvas->translate(-SkIntToScalar(100), -SkIntToScalar(50));
|
| - canvas->drawPicture(pict);
|
| - canvas->restore();
|
| -
|
| - canvas->save();
|
| - canvas->translate(SkIntToScalar(200), SkIntToScalar(150));
|
| - canvas->scale(SK_Scalar1, -SK_Scalar1);
|
| - canvas->translate(0, -SkIntToScalar(50));
|
| - canvas->drawPicture(pict);
|
| - canvas->restore();
|
| -
|
| - canvas->save();
|
| - canvas->translate(SkIntToScalar(100), SkIntToScalar(100));
|
| - canvas->scale(-SK_Scalar1, SK_Scalar1);
|
| - canvas->translate(-SkIntToScalar(100), 0);
|
| - canvas->drawPicture(pict);
|
| - canvas->restore();
|
| - }
|
| -
|
| -private:
|
| - #define INVAL_ALL_TYPE "inval-all"
|
| -
|
| - void delayInval(SkMSec delay) {
|
| - (new SkEvent(INVAL_ALL_TYPE, this->getSinkID()))->postDelay(delay);
|
| - }
|
| -
|
| - bool onEvent(const SkEvent& evt) override {
|
| - if (evt.isType(INVAL_ALL_TYPE)) {
|
| - this->inval(nullptr);
|
| - return true;
|
| - }
|
| - return this->INHERITED::onEvent(evt);
|
| - }
|
| -
|
| - SkPicture* fPicture;
|
| - SkPicture* fSubPicture;
|
| -
|
| - typedef SampleView INHERITED;
|
| -};
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -
|
| -static SkView* MyFactory() { return new PictureView; }
|
| -static SkViewRegister reg(MyFactory);
|
|
|