| Index: samplecode/SampleBitmapRect.cpp
|
| diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
|
| index 006b9195543de58fd2e0944376294d651955ffcf..82d1098a35a7b7e32115a9bdd9a68dff725dd9c1 100644
|
| --- a/samplecode/SampleBitmapRect.cpp
|
| +++ b/samplecode/SampleBitmapRect.cpp
|
| @@ -1,11 +1,12 @@
|
| -
|
| /*
|
| * 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 "SkAnimTimer.h"
|
| #include "SkView.h"
|
| #include "SkCanvas.h"
|
| #include "SkGradientShader.h"
|
| @@ -75,15 +76,19 @@ class BitmapRectView : public SampleView {
|
| bounce_pt(&fSrcPts[1], &fSrcVec[1], fSrcLimit);
|
| }
|
|
|
| -public:
|
| - BitmapRectView() {
|
| - this->setBGColor(SK_ColorGRAY);
|
| -
|
| + void resetBounce() {
|
| fSrcPts[0].set(0, 0);
|
| fSrcPts[1].set(SCALAR_SIZE, SCALAR_SIZE);
|
| -
|
| +
|
| fSrcVec[0] = unit_vec(30);
|
| fSrcVec[1] = unit_vec(107);
|
| + }
|
| +
|
| +public:
|
| + BitmapRectView() {
|
| + this->setBGColor(SK_ColorGRAY);
|
| +
|
| + this->resetBounce();
|
|
|
| fSrcLimit.set(-SCALAR_SIZE/4, -SCALAR_SIZE/4,
|
| SCALAR_SIZE*5/4, SCALAR_SIZE*5/4);
|
| @@ -98,8 +103,7 @@ public:
|
| }
|
|
|
| protected:
|
| - // overrides from SkEventSink
|
| - virtual bool onQuery(SkEvent* evt) {
|
| + bool onQuery(SkEvent* evt) SK_OVERRIDE {
|
| if (SampleCode::TitleQ(*evt)) {
|
| SampleCode::TitleR(evt, "BitmapRect");
|
| return true;
|
| @@ -107,7 +111,7 @@ protected:
|
| return this->INHERITED::onQuery(evt);
|
| }
|
|
|
| - virtual void onDrawContent(SkCanvas* canvas) {
|
| + void onDrawContent(SkCanvas* canvas) SK_OVERRIDE {
|
| SkRect srcR;
|
| srcR.set(fSrcPts[0], fSrcPts[1]);
|
| srcR = SkRect::MakeXYWH(fSrcPts[0].fX, fSrcPts[0].fY, 32, 32);
|
| @@ -130,13 +134,19 @@ protected:
|
| canvas->drawBitmapRectToRect(bitmap, &srcR, fDstR[i], &paint);
|
| canvas->drawRect(fDstR[i], paint);
|
| }
|
| + }
|
|
|
| - this->bounce();
|
| - this->inval(NULL);
|
| + bool onAnimate(const SkAnimTimer& timer) SK_OVERRIDE {
|
| + if (timer.isStopped()) {
|
| + this->resetBounce();
|
| + } else if (timer.isRunning()) {
|
| + this->bounce();
|
| + }
|
| + return true;
|
| }
|
|
|
| private:
|
| - typedef SkView INHERITED;
|
| + typedef SampleView INHERITED;
|
| };
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| @@ -179,32 +189,28 @@ class BitmapRectView2 : public SampleView {
|
| fSrcR.fRight = fSrcR.fLeft + width;
|
| }
|
|
|
| + void resetBounce() {
|
| + fSrcR.iset(0, 0, fBitmap.height() * 3, fBitmap.height());
|
| + fDX = SK_Scalar1;
|
| + }
|
| +
|
| public:
|
| BitmapRectView2() {
|
| make_big_bitmap(&fBitmap);
|
|
|
| this->setBGColor(SK_ColorGRAY);
|
|
|
| - fSrcR.fLeft = 0;
|
| - fSrcR.fTop = 0;
|
| - fSrcR.fRight = SkIntToScalar(fBitmap.height()) * 3;
|
| - fSrcR.fBottom = SkIntToScalar(fBitmap.height());
|
| -
|
| - fLimitR.set(0, 0,
|
| - SkIntToScalar(fBitmap.width()),
|
| - SkIntToScalar(fBitmap.height()));
|
| + this->resetBounce();
|
|
|
| - fDX = SK_Scalar1;
|
| + fLimitR.iset(0, 0, fBitmap.width(), fBitmap.height());
|
|
|
| - fDstR[0] = SkRect::MakeXYWH(SkIntToScalar(20), SkIntToScalar(20),
|
| - SkIntToScalar(600), SkIntToScalar(200));
|
| + fDstR[0] = SkRect::MakeXYWH(20, 20, 600, 200);
|
| fDstR[1] = fDstR[0];
|
| fDstR[1].offset(0, fDstR[0].height() * 5/4);
|
| }
|
|
|
| protected:
|
| - // overrides from SkEventSink
|
| - virtual bool onQuery(SkEvent* evt) {
|
| + bool onQuery(SkEvent* evt) SK_OVERRIDE {
|
| if (SampleCode::TitleQ(*evt)) {
|
| SampleCode::TitleR(evt, "BigBitmapRect");
|
| return true;
|
| @@ -212,7 +218,7 @@ protected:
|
| return this->INHERITED::onQuery(evt);
|
| }
|
|
|
| - virtual void onDrawContent(SkCanvas* canvas) {
|
| + void onDrawContent(SkCanvas* canvas) SK_OVERRIDE {
|
| SkPaint paint;
|
| paint.setStyle(SkPaint::kStroke_Style);
|
| paint.setColor(SK_ColorYELLOW);
|
| @@ -222,13 +228,19 @@ protected:
|
| canvas->drawBitmapRectToRect(fBitmap, &fSrcR, fDstR[i], &paint);
|
| canvas->drawRect(fDstR[i], paint);
|
| }
|
| + }
|
|
|
| - this->bounceMe();
|
| - this->inval(NULL);
|
| + bool onAnimate(const SkAnimTimer& timer) SK_OVERRIDE {
|
| + if (timer.isStopped()) {
|
| + this->resetBounce();
|
| + } else if (timer.isRunning()) {
|
| + this->bounceMe();
|
| + }
|
| + return true;
|
| }
|
|
|
| private:
|
| - typedef SkView INHERITED;
|
| + typedef SampleView INHERITED;
|
| };
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|