this->updateMatrix();
}
- if (fMeasureFPS) {
- fMeasureFPS_Time = 0;
- }
-
if (fNClip) {
this->INHERITED::draw(canvas);
SkBitmap orig = capture_bitmap(canvas);
magnify(canvas);
}
- if (fMeasureFPS && fMeasureFPS_Time) {
- this->updateTitle();
- this->postInvalDelay();
- }
-
// do this last
fDevManager->publishCanvas(fDeviceType, canvas, this);
}
}
// Do this after presentGL and other finishing, rather than in afterChild
- if (fMeasureFPS && fMeasureFPS_StartTime) {
- fMeasureFPS_Time += SkTime::GetMSecs() - fMeasureFPS_StartTime;
+ if (fMeasureFPS && fMeasureFPS_Time) {
+ fMeasureFPS_Time = SkTime::GetMSecs() - fMeasureFPS_Time;
+ this->updateTitle();
+ this->postInvalDelay();
}
// if ((fScrollTestX | fScrollTestY) != 0)
this->installDrawFilter(canvas);
if (fMeasureFPS) {
+ fMeasureFPS_Time = 0; // 0 means the child is not aware of repeat-draw
if (SampleView::SetRepeatDraw(child, FPS_REPEAT_COUNT)) {
- fMeasureFPS_StartTime = SkTime::GetMSecs();
+ fMeasureFPS_Time = SkTime::GetMSecs();
}
} else {
(void)SampleView::SetRepeatDraw(child, 1);
}
switch (uni) {
- case 'b':
- {
- postEventToSink(SkNEW_ARGS(SkEvent, ("PictFileView::toggleBBox")), curr_view(this));
- this->updateTitle();
- this->inval(NULL);
- break;
- }
case 'B':
// gIgnoreFastBlurRect = !gIgnoreFastBlurRect;
this->inval(NULL);
#include "SkGradientShader.h"
#include "SkGraphics.h"
#include "SkImageDecoder.h"
-#include "SkOSFile.h"
#include "SkPath.h"
#include "SkPicture.h"
#include "SkRandom.h"
class PictFileView : public SampleView {
SkString fFilename;
SkPicture* fPicture;
- SkPicture* fBBoxPicture;
- bool fUseBBox;
- static SkPicture* LoadPicture(const char path[], bool useBBox) {
+ static SkPicture* LoadPicture(const char path[]) {
SkPicture* pic = NULL;
SkBitmap bm;
p2.serialize(&writer);
}
}
-
- if (useBBox) {
- SkPicture* bboxPicture = SkNEW(SkPicture);
- pic->draw(bboxPicture->beginRecording(pic->width(), pic->height(),
- SkPicture::kOptimizeForClippedPlayback_RecordingFlag));
- bboxPicture->endRecording();
- SkDELETE(pic);
- return bboxPicture;
-
- } else {
- return pic;
- }
+ return pic;
}
public:
PictFileView(const char name[] = NULL) : fFilename(name) {
fPicture = NULL;
- fBBoxPicture = NULL;
- fUseBBox = false;
}
virtual ~PictFileView() {
SkSafeUnref(fPicture);
- SkSafeUnref(fBBoxPicture);
}
protected:
virtual bool onQuery(SkEvent* evt) {
if (SampleCode::TitleQ(*evt)) {
SkString name("P:");
- char* basename = strrchr(fFilename.c_str(), SkPATH_SEPARATOR);
- name.append(basename ? basename+1: fFilename.c_str());
- if (fUseBBox) {
- name.append(" <bbox>");
- }
+ name.append(fFilename);
SampleCode::TitleR(evt, name.c_str());
return true;
}
return this->INHERITED::onQuery(evt);
}
- virtual bool onEvent(const SkEvent& evt) {
- if (evt.isType("PictFileView::toggleBBox")) {
- fUseBBox = !fUseBBox;
- return true;
- }
- return this->INHERITED::onEvent(evt);
- }
-
virtual void onDrawContent(SkCanvas* canvas) {
- SkPicture** picture = fUseBBox ? &fBBoxPicture : &fPicture;
-
- if (!*picture) {
- *picture = LoadPicture(fFilename.c_str(), fUseBBox);
+ if (!fPicture) {
+ fPicture = LoadPicture(fFilename.c_str());
}
- if (*picture) {
- canvas->drawPicture(**picture);
+ if (fPicture) {
+ canvas->drawPicture(*fPicture);
}
}