diff options
author | 2009-11-23 21:07:51 +0000 | |
---|---|---|
committer | 2009-11-23 21:07:51 +0000 | |
commit | 4417740a480786ca65379ba5b398c500ba34ee18 (patch) | |
tree | 1a261f93f6270078dbf165c73616aaf9bdb1570f /samplecode/SampleApp.cpp | |
parent | e522ca5d5f249bd51a00cb68bb051f811d0a9e85 (diff) |
add SampleCode::GetAnimTime() so slides go through a central location for
animation timing. This allows us to "freeze" time in order to do things like
draw multiple times to test clipping.
git-svn-id: http://skia.googlecode.com/svn/trunk@444 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r-- | samplecode/SampleApp.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp index 2d0da1f71b..8fcdfa8715 100644 --- a/samplecode/SampleApp.cpp +++ b/samplecode/SampleApp.cpp @@ -6,6 +6,7 @@ #include "SkPaint.h" #include "SkPicture.h" #include "SkStream.h" +#include "SkTime.h" #include "SkWindow.h" #include "SampleCode.h" @@ -121,6 +122,18 @@ void SampleCode::PrefSizeR(SkEvent* evt, SkScalar width, SkScalar height) { evt->setScalars(gPrefSizeEvtName, 2, size); } +static SkMSec gAnimTime; +SkMSec SampleCode::GetAnimTime() { return gAnimTime; } + +SkScalar SampleCode::GetAnimScalar(SkScalar speed, SkScalar period) { + SkScalar seconds = SkFloatToScalar(gAnimTime / 1000.0f); + SkScalar value = SkScalarMul(speed, seconds); + if (period) { + value = SkScalarMod(value, period); + } + return value; +} + ////////////////////////////////////////////////////////////////////////////// class SampleWindow : public SkOSWindow { @@ -241,10 +254,13 @@ SampleWindow::~SampleWindow() { delete fGLCanvas; } -#define XCLIP_N 4 -#define YCLIP_N 1 +#define XCLIP_N 8 +#define YCLIP_N 8 void SampleWindow::draw(SkCanvas* canvas) { + // update the animation time + gAnimTime = SkTime::GetMSecs(); + if (fNClip) { // this->INHERITED::draw(canvas); // SkBitmap orig = capture_bitmap(canvas); |