git-svn-id: http://skia.googlecode.com/svn/trunk@1252 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@google.com 2011-05-05 14:03:48 +00:00
Родитель 2ba4abbb31
Коммит 961ddb04a0
12 изменённых файлов: 105 добавлений и 294 удалений

Просмотреть файл

@ -1334,7 +1334,7 @@ bool SampleView::onQuery(SkEvent* evt) {
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
#define TEST_GPIPEx #define TEST_GPIPE
#ifdef TEST_GPIPE #ifdef TEST_GPIPE
#include "SkGPipe.h" #include "SkGPipe.h"
@ -1348,10 +1348,11 @@ public:
virtual void notifyWritten(size_t bytes); virtual void notifyWritten(size_t bytes);
private: private:
SkGPipeReader fReader; SkGPipeReader fReader;
void* fBlock; void* fBlock;
size_t fBlockSize; size_t fBlockSize;
size_t fBytesWritten; size_t fBytesWritten;
int fAtomsWritten;
SkGPipeReader::Status fStatus; SkGPipeReader::Status fStatus;
size_t fTotalWritten; size_t fTotalWritten;
@ -1362,13 +1363,15 @@ SimplePC::SimplePC(SkCanvas* target) : fReader(target) {
fBlockSize = fBytesWritten = 0; fBlockSize = fBytesWritten = 0;
fStatus = SkGPipeReader::kDone_Status; fStatus = SkGPipeReader::kDone_Status;
fTotalWritten = 0; fTotalWritten = 0;
fAtomsWritten = 0;
} }
SimplePC::~SimplePC() { SimplePC::~SimplePC() {
// SkASSERT(SkGPipeReader::kDone_Status == fStatus); // SkASSERT(SkGPipeReader::kDone_Status == fStatus);
sk_free(fBlock); sk_free(fBlock);
SkDebugf("--- %d bytes written to pipe, status %d\n", fTotalWritten, fStatus); SkDebugf("--- %d bytes %d atoms, status %d\n", fTotalWritten,
fAtomsWritten, fStatus);
} }
void* SimplePC::requestBlock(size_t minRequest, size_t* actual) { void* SimplePC::requestBlock(size_t minRequest, size_t* actual) {
@ -1388,6 +1391,8 @@ void SimplePC::notifyWritten(size_t bytes) {
SkASSERT(SkGPipeReader::kError_Status != fStatus); SkASSERT(SkGPipeReader::kError_Status != fStatus);
fBytesWritten += bytes; fBytesWritten += bytes;
fTotalWritten += bytes; fTotalWritten += bytes;
fAtomsWritten += 1;
} }
#endif #endif

Просмотреть файл

@ -28,33 +28,25 @@ static void testparse() {
SkParsePath::ToSVGString(p2, &str2); SkParsePath::ToSVGString(p2, &str2);
} }
class ArcsView : public SkView { class ArcsView : public SampleView {
public: public:
ArcsView() ArcsView() {
{
testparse(); testparse();
fSweep = SkIntToScalar(100); fSweep = SkIntToScalar(100);
this->setBGColor(0xFFDDDDDD);
} }
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "Arcs"); SampleCode::TitleR(evt, "Arcs");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) static void drawRectWithLines(SkCanvas* canvas, const SkRect& r, const SkPaint& p) {
{
canvas->drawColor(0xFFDDDDDD);
}
static void drawRectWithLines(SkCanvas* canvas, const SkRect& r, const SkPaint& p)
{
canvas->drawRect(r, p); canvas->drawRect(r, p);
canvas->drawLine(r.fLeft, r.fTop, r.fRight, r.fBottom, p); canvas->drawLine(r.fLeft, r.fTop, r.fRight, r.fBottom, p);
canvas->drawLine(r.fLeft, r.fBottom, r.fRight, r.fTop, p); canvas->drawLine(r.fLeft, r.fBottom, r.fRight, r.fTop, p);
@ -63,8 +55,7 @@ protected:
} }
static void draw_label(SkCanvas* canvas, const SkRect& rect, static void draw_label(SkCanvas* canvas, const SkRect& rect,
int start, int sweep) int start, int sweep) {
{
SkPaint paint; SkPaint paint;
paint.setAntiAlias(true); paint.setAntiAlias(true);
@ -79,8 +70,7 @@ protected:
rect.fBottom + paint.getTextSize() * 5/4, paint); rect.fBottom + paint.getTextSize() * 5/4, paint);
} }
static void drawArcs(SkCanvas* canvas) static void drawArcs(SkCanvas* canvas) {
{
SkPaint paint; SkPaint paint;
SkRect r; SkRect r;
SkScalar w = SkIntToScalar(75); SkScalar w = SkIntToScalar(75);
@ -107,8 +97,7 @@ protected:
225, 90 225, 90
}; };
for (int i = 0; i < SK_ARRAY_COUNT(gAngles); i += 2) for (int i = 0; i < SK_ARRAY_COUNT(gAngles); i += 2) {
{
paint.setColor(SK_ColorBLACK); paint.setColor(SK_ColorBLACK);
drawRectWithLines(canvas, r, paint); drawRectWithLines(canvas, r, paint);
@ -124,10 +113,7 @@ protected:
canvas->restore(); canvas->restore();
} }
virtual void onDraw(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
this->drawBG(canvas);
fSweep = SampleCode::GetAnimScalar(SkIntToScalar(360)/24, fSweep = SampleCode::GetAnimScalar(SkIntToScalar(360)/24,
SkIntToScalar(360)); SkIntToScalar(360));
// fSweep = SkFloatToScalar(359.99f); // fSweep = SkFloatToScalar(359.99f);
@ -175,22 +161,20 @@ protected:
this->inval(NULL); this->inval(NULL);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
{
// fSweep += SK_Scalar1; // fSweep += SK_Scalar1;
this->inval(NULL); this->inval(NULL);
return this->INHERITED::onFindClickHandler(x, y); return this->INHERITED::onFindClickHandler(x, y);
} }
virtual bool onClick(Click* click) virtual bool onClick(Click* click) {
{
return this->INHERITED::onClick(click); return this->INHERITED::onClick(click);
} }
private: private:
SkScalar fSweep; SkScalar fSweep;
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -3,9 +3,10 @@
#include "SkPath.h" #include "SkPath.h"
#include "SkView.h" #include "SkView.h"
class ComplexClipView : public SkView { class ComplexClipView : public SampleView {
public: public:
ComplexClipView() { ComplexClipView() {
this->setBGColor(0xFFA0DDA0);
} }
protected: protected:
@ -18,11 +19,7 @@ protected:
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) { virtual void onDrawContent(SkCanvas* canvas) {
canvas->drawColor(SkColorSetRGB(0xA0,0xDD,0xA0));
}
virtual void onDraw(SkCanvas* canvas) {
SkPath path; SkPath path;
path.moveTo(SkIntToScalar(0), SkIntToScalar(50)); path.moveTo(SkIntToScalar(0), SkIntToScalar(50));
path.quadTo(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(50), SkIntToScalar(0)); path.quadTo(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(50), SkIntToScalar(0));
@ -62,7 +59,6 @@ protected:
clipB.close(); clipB.close();
SkColor colorB = SK_ColorRED; SkColor colorB = SK_ColorRED;
drawBG(canvas);
SkPaint paint; SkPaint paint;
paint.setAntiAlias(true); paint.setAntiAlias(true);
@ -145,7 +141,7 @@ protected:
return this->INHERITED::onFindClickHandler(x, y); return this->INHERITED::onFindClickHandler(x, y);
} }
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -10,8 +10,7 @@
#include "SkUtils.h" #include "SkUtils.h"
#include "SkRandom.h" #include "SkRandom.h"
static void addbump(SkPath* path, const SkPoint pts[2], SkScalar bump) static void addbump(SkPath* path, const SkPoint pts[2], SkScalar bump) {
{
SkVector tang; SkVector tang;
tang.setLength(pts[1].fX - pts[0].fX, pts[1].fY - pts[0].fY, bump); tang.setLength(pts[1].fX - pts[0].fX, pts[1].fY - pts[0].fY, bump);
@ -21,8 +20,7 @@ static void addbump(SkPath* path, const SkPoint pts[2], SkScalar bump)
path->lineTo(pts[1]); path->lineTo(pts[1]);
} }
static void subdivide(SkPath* path, SkScalar bump) static void subdivide(SkPath* path, SkScalar bump) {
{
SkPath::Iter iter(*path, false); SkPath::Iter iter(*path, false);
SkPoint pts[4]; SkPoint pts[4];
SkPath tmp; SkPath tmp;
@ -46,8 +44,7 @@ FINISH:
path->swap(tmp); path->swap(tmp);
} }
static SkIPoint* getpts(const SkPath& path, int* count) static SkIPoint* getpts(const SkPath& path, int* count) {
{
SkPoint pts[4]; SkPoint pts[4];
int n = 1; int n = 1;
SkIPoint* array; SkIPoint* array;
@ -92,15 +89,13 @@ FINISHED2:
return array; return array;
} }
static SkScalar nextScalarRange(SkRandom& rand, SkScalar min, SkScalar max) static SkScalar nextScalarRange(SkRandom& rand, SkScalar min, SkScalar max) {
{
return min + SkScalarMul(rand.nextUScalar1(), max - min); return min + SkScalarMul(rand.nextUScalar1(), max - min);
} }
class CullView : public SkView { class CullView : public SampleView {
public: public:
CullView() CullView() {
{
fClip.set(0, 0, SkIntToScalar(160), SkIntToScalar(160)); fClip.set(0, 0, SkIntToScalar(160), SkIntToScalar(160));
SkRandom rand; SkRandom rand;
@ -119,51 +114,25 @@ public:
subdivide(&fPath, bump); subdivide(&fPath, bump);
subdivide(&fPath, bump); subdivide(&fPath, bump);
fPoints = getpts(fPath, &fPtCount); fPoints = getpts(fPath, &fPtCount);
this->setBGColor(0xFFDDDDDD);
} }
virtual ~CullView() virtual ~CullView() {
{
delete[] fPoints; delete[] fPoints;
} }
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "Culling"); SampleCode::TitleR(evt, "Culling");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
canvas->drawColor(0xFFDDDDDD);
#if 0
SkPaint paint;
paint.setAntiAliasOn(true);
paint.setTextSize(SkIntToScalar(20));
paint.setTypeface(SkTypeface::Create("serif", SkTypeface::kBoldItalic))->unref();
uint16_t text[20];
text[0] = 'H';
text[1] = 'i';
text[2] = ' ';
for (int i = 3; i < 20; i++)
text[i] = 0x3040 + i;
canvas->drawText16(text, 20, SkIntToScalar(20), SkIntToScalar(20), paint);
#endif
}
virtual void onDraw(SkCanvas* canvas)
{
this->drawBG(canvas);
SkAutoCanvasRestore ar(canvas, true); SkAutoCanvasRestore ar(canvas, true);
canvas->translate( SkScalarHalf(this->width() - fClip.width()), canvas->translate( SkScalarHalf(this->width() - fClip.width()),
@ -204,23 +173,13 @@ protected:
this->inval(NULL); this->inval(NULL);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
{
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click)
{
return this->INHERITED::onClick(click);
}
private: private:
SkRect fClip; SkRect fClip;
SkIPoint* fPoints; SkIPoint* fPoints;
SkPath fPath; SkPath fPath;
int fPtCount; int fPtCount;
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -62,8 +62,7 @@ static void draw_sweep(SkCanvas* c, int width, int height, SkScalar angle) {
} }
} }
static void make_bm(SkBitmap* bm) static void make_bm(SkBitmap* bm) {
{
bm->setConfig(SkBitmap::kARGB_8888_Config, 100, 100); bm->setConfig(SkBitmap::kARGB_8888_Config, 100, 100);
bm->allocPixels(); bm->allocPixels();
#if 0 #if 0
@ -109,7 +108,7 @@ static void pre_dither(const SkBitmap& bm) {
} }
} }
class DitherView : public SkView { class DitherView : public SampleView {
public: public:
SkBitmap fBM, fBMPreDither, fBM16; SkBitmap fBM, fBMPreDither, fBM16;
SkScalar fAngle; SkScalar fAngle;
@ -121,6 +120,8 @@ public:
fBM.copyTo(&fBM16, SkBitmap::kARGB_4444_Config); fBM.copyTo(&fBM16, SkBitmap::kARGB_4444_Config);
fAngle = 0; fAngle = 0;
this->setBGColor(0xFF181818);
} }
protected: protected:
@ -133,14 +134,7 @@ protected:
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) { virtual void onDrawContent(SkCanvas* canvas) {
// canvas->drawColor(0xFFDDDDDD);
canvas->drawColor(0xFF181818);
}
virtual void onDraw(SkCanvas* canvas) {
this->drawBG(canvas);
SkPaint paint; SkPaint paint;
SkScalar x = SkIntToScalar(10); SkScalar x = SkIntToScalar(10);
SkScalar y = SkIntToScalar(10); SkScalar y = SkIntToScalar(10);
@ -173,20 +167,8 @@ protected:
this->inval(NULL); this->inval(NULL);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
{
// fSweep += SK_Scalar1;
this->inval(NULL);
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click)
{
return this->INHERITED::onClick(click);
}
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -9,7 +9,7 @@
#define WIDTH 200 #define WIDTH 200
#define HEIGHT 200 #define HEIGHT 200
class LooperView : public SkView { class LooperView : public SampleView {
public: public:
SkLayerDrawLooper* fLooper; SkLayerDrawLooper* fLooper;
@ -48,6 +48,8 @@ public:
paint->setMaskFilter(mf)->unref(); paint->setMaskFilter(mf)->unref();
} }
} }
this->setBGColor(0xFFDDDDDD);
} }
virtual ~LooperView() { virtual ~LooperView() {
@ -64,14 +66,7 @@ protected:
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) { virtual void onDrawContent(SkCanvas* canvas) {
canvas->drawColor(0xFFDDDDDD);
// canvas->drawColor(SK_ColorWHITE);
}
virtual void onDraw(SkCanvas* canvas) {
this->drawBG(canvas);
SkPaint paint; SkPaint paint;
paint.setTextSize(SkIntToScalar(72)); paint.setTextSize(SkIntToScalar(72));
paint.setLooper(fLooper); paint.setLooper(fLooper);
@ -86,17 +81,8 @@ protected:
paint); paint);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
this->inval(NULL);
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click) {
return this->INHERITED::onClick(click);
}
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -19,11 +19,10 @@
#include "SkTypeface.h" #include "SkTypeface.h"
#include "SkXfermode.h" #include "SkXfermode.h"
class EmbossView : public SkView { class EmbossView : public SampleView {
SkEmbossMaskFilter::Light fLight; SkEmbossMaskFilter::Light fLight;
public: public:
EmbossView() EmbossView() {
{
fLight.fDirection[0] = SK_Scalar1; fLight.fDirection[0] = SK_Scalar1;
fLight.fDirection[1] = SK_Scalar1; fLight.fDirection[1] = SK_Scalar1;
fLight.fDirection[2] = SK_Scalar1; fLight.fDirection[2] = SK_Scalar1;
@ -33,25 +32,15 @@ public:
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "Emboss"); SampleCode::TitleR(evt, "Emboss");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
canvas->drawColor(SK_ColorWHITE);
}
virtual void onDraw(SkCanvas* canvas)
{
this->drawBG(canvas);
SkPaint paint; SkPaint paint;
paint.setAntiAlias(true); paint.setAntiAlias(true);
@ -67,7 +56,7 @@ protected:
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -9,13 +9,15 @@
#include "SkShader.h" #include "SkShader.h"
#include "SkUtils.h" #include "SkUtils.h"
class FillTypeView : public SkView { class FillTypeView : public SampleView {
SkPath fPath; SkPath fPath;
public: public:
FillTypeView() { FillTypeView() {
const SkScalar radius = SkIntToScalar(45); const SkScalar radius = SkIntToScalar(45);
fPath.addCircle(SkIntToScalar(50), SkIntToScalar(50), radius); fPath.addCircle(SkIntToScalar(50), SkIntToScalar(50), radius);
fPath.addCircle(SkIntToScalar(100), SkIntToScalar(100), radius); fPath.addCircle(SkIntToScalar(100), SkIntToScalar(100), radius);
this->setBGColor(0xFFDDDDDD);
} }
protected: protected:
@ -28,10 +30,6 @@ protected:
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) {
canvas->drawColor(0xFFDDDDDD);
}
void showPath(SkCanvas* canvas, int x, int y, SkPath::FillType ft, void showPath(SkCanvas* canvas, int x, int y, SkPath::FillType ft,
SkScalar scale, const SkPaint& paint) { SkScalar scale, const SkPaint& paint) {
@ -60,9 +58,7 @@ protected:
scale, paint); scale, paint);
} }
virtual void onDraw(SkCanvas* canvas) { virtual void onDrawContent(SkCanvas* canvas) {
drawBG(canvas);
canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); canvas->translate(SkIntToScalar(20), SkIntToScalar(20));
SkPaint paint; SkPaint paint;
@ -83,16 +79,8 @@ protected:
showFour(canvas, scale, paint); showFour(canvas, scale, paint);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click) {
return this->INHERITED::onClick(click);
}
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -14,8 +14,7 @@
#include "SkColorFilter.h" #include "SkColorFilter.h"
#include "SkDither.h" #include "SkDither.h"
static void make_bm(SkBitmap* bm) static void make_bm(SkBitmap* bm) {
{
const SkColor colors[] = { const SkColor colors[] = {
SK_ColorRED, SK_ColorGREEN, SK_ColorRED, SK_ColorGREEN,
SK_ColorBLUE, SK_ColorWHITE SK_ColorBLUE, SK_ColorWHITE
@ -32,8 +31,7 @@ static void make_bm(SkBitmap* bm)
} }
static SkScalar draw_bm(SkCanvas* canvas, const SkBitmap& bm, static SkScalar draw_bm(SkCanvas* canvas, const SkBitmap& bm,
SkScalar x, SkScalar y, SkPaint* paint) SkScalar x, SkScalar y, SkPaint* paint) {
{
#if 1 #if 1
canvas->drawBitmap(bm, x, y, paint); canvas->drawBitmap(bm, x, y, paint);
return SkIntToScalar(bm.width()) * 5/4; return SkIntToScalar(bm.width()) * 5/4;
@ -52,8 +50,7 @@ static SkScalar draw_bm(SkCanvas* canvas, const SkBitmap& bm,
#endif #endif
} }
static SkScalar draw_set(SkCanvas* c, const SkBitmap& bm, SkScalar x, SkPaint* p) static SkScalar draw_set(SkCanvas* c, const SkBitmap& bm, SkScalar x, SkPaint* p) {
{
x += draw_bm(c, bm, x, 0, p); x += draw_bm(c, bm, x, 0, p);
p->setFilterBitmap(true); p->setFilterBitmap(true);
x += draw_bm(c, bm, x, 0, p); x += draw_bm(c, bm, x, 0, p);
@ -71,8 +68,7 @@ static const char* gConfigNames[] = {
"8888" "8888"
}; };
static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm) static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm) {
{
SkAutoCanvasRestore acr(canvas, true); SkAutoCanvasRestore acr(canvas, true);
SkPaint paint; SkPaint paint;
@ -94,39 +90,30 @@ static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm)
return x * scale / 3; return x * scale / 3;
} }
class FilterView : public SkView { class FilterView : public SampleView {
public: public:
SkBitmap fBM8, fBM4444, fBM16, fBM32; SkBitmap fBM8, fBM4444, fBM16, fBM32;
FilterView() FilterView() {
{
make_bm(&fBM8); make_bm(&fBM8);
fBM8.copyTo(&fBM4444, SkBitmap::kARGB_4444_Config); fBM8.copyTo(&fBM4444, SkBitmap::kARGB_4444_Config);
fBM8.copyTo(&fBM16, SkBitmap::kRGB_565_Config); fBM8.copyTo(&fBM16, SkBitmap::kRGB_565_Config);
fBM8.copyTo(&fBM32, SkBitmap::kARGB_8888_Config); fBM8.copyTo(&fBM32, SkBitmap::kARGB_8888_Config);
this->setBGColor(0xFFDDDDDD);
} }
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "Filter"); SampleCode::TitleR(evt, "Filter");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
canvas->drawColor(0xFFDDDDDD);
}
virtual void onDraw(SkCanvas* canvas)
{
this->drawBG(canvas);
SkScalar x = SkIntToScalar(10); SkScalar x = SkIntToScalar(10);
SkScalar y = SkIntToScalar(10); SkScalar y = SkIntToScalar(10);
@ -140,20 +127,8 @@ protected:
draw_row(canvas, fBM32); draw_row(canvas, fBM32);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
{
// fSweep += SK_Scalar1;
this->inval(NULL);
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click)
{
return this->INHERITED::onClick(click);
}
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -17,7 +17,7 @@ static const char* gNames[] = {
"/skimages/background_01.png" "/skimages/background_01.png"
}; };
class Filter2View : public SkView { class Filter2View : public SampleView {
public: public:
SkBitmap* fBitmaps; SkBitmap* fBitmaps;
int fBitmapCount; int fBitmapCount;
@ -38,6 +38,8 @@ public:
SkImageDecoder::kDecodePixels_Mode, NULL); SkImageDecoder::kDecodePixels_Mode, NULL);
} }
fCurrIndex = 0; fCurrIndex = 0;
this->setBGColor(SK_ColorGRAY);
} }
virtual ~Filter2View() { virtual ~Filter2View() {
@ -56,15 +58,7 @@ protected:
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) { virtual void onDrawContent(SkCanvas* canvas) {
// canvas->drawColor(0xFFDDDDDD);
canvas->drawColor(SK_ColorGRAY);
// canvas->drawColor(SK_ColorWHITE);
}
virtual void onDraw(SkCanvas* canvas) {
this->drawBG(canvas);
canvas->translate(SkIntToScalar(10), SkIntToScalar(50)); canvas->translate(SkIntToScalar(10), SkIntToScalar(50));
const SkScalar W = SkIntToScalar(fBitmaps[0].width() + 1); const SkScalar W = SkIntToScalar(fBitmaps[0].width() + 1);
@ -112,7 +106,7 @@ protected:
} }
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -6,8 +6,7 @@
#include <pthread.h> #include <pthread.h>
static void call_measure() static void call_measure() {
{
SkPaint paint; SkPaint paint;
uint16_t text[32]; uint16_t text[32];
SkRandom rand; SkRandom rand;
@ -17,8 +16,7 @@ static void call_measure()
for (int j = 0; j < SK_ARRAY_COUNT(text); j++) for (int j = 0; j < SK_ARRAY_COUNT(text); j++)
text[j] = (uint16_t)((rand.nextU() & 0xFF) + 32); text[j] = (uint16_t)((rand.nextU() & 0xFF) + 32);
for (int i = 9; i < 36; i++) for (int i = 9; i < 36; i++) {
{
SkPaint::FontMetrics m; SkPaint::FontMetrics m;
paint.setTextSize(SkIntToScalar(i)); paint.setTextSize(SkIntToScalar(i));
@ -27,8 +25,7 @@ static void call_measure()
} }
} }
static void call_draw(SkCanvas* canvas) static void call_draw(SkCanvas* canvas) {
{
SkPaint paint; SkPaint paint;
uint16_t text[32]; uint16_t text[32];
SkRandom rand; SkRandom rand;
@ -55,28 +52,24 @@ static void call_draw(SkCanvas* canvas)
static bool gDone; static bool gDone;
static void* measure_proc(void* context) static void* measure_proc(void* context) {
{ while (!gDone) {
while (!gDone)
{
call_measure(); call_measure();
} }
return NULL; return NULL;
} }
static void* draw_proc(void* context) static void* draw_proc(void* context) {
{
SkBitmap* bm = (SkBitmap*)context; SkBitmap* bm = (SkBitmap*)context;
SkCanvas canvas(*bm); SkCanvas canvas(*bm);
while (!gDone) while (!gDone) {
{
call_draw(&canvas); call_draw(&canvas);
} }
return NULL; return NULL;
} }
class FontCacheView : public SkView { class FontCacheView : public SampleView {
public: public:
enum { N = 4 }; enum { N = 4 };
@ -84,11 +77,9 @@ public:
pthread_t fDThreads[N]; pthread_t fDThreads[N];
SkBitmap fBitmaps[N]; SkBitmap fBitmaps[N];
FontCacheView() FontCacheView() {
{
gDone = false; gDone = false;
for (int i = 0; i < N; i++) for (int i = 0; i < N; i++) {
{
int status; int status;
status = pthread_create(&fMThreads[i], NULL, measure_proc, NULL); status = pthread_create(&fMThreads[i], NULL, measure_proc, NULL);
@ -99,13 +90,12 @@ public:
status = pthread_create(&fDThreads[i], NULL, draw_proc, &fBitmaps[i]); status = pthread_create(&fDThreads[i], NULL, draw_proc, &fBitmaps[i]);
SkASSERT(0 == status); SkASSERT(0 == status);
} }
this->setBGColor(0xFFDDDDDD);
} }
virtual ~FontCacheView() virtual ~FontCacheView() {
{
gDone = true; gDone = true;
for (int i = 0; i < N; i++) for (int i = 0; i < N; i++) {
{
void* ret; void* ret;
int status = pthread_join(fMThreads[i], &ret); int status = pthread_join(fMThreads[i], &ret);
SkASSERT(0 == status); SkASSERT(0 == status);
@ -116,49 +106,26 @@ public:
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "FontCache"); SampleCode::TitleR(evt, "FontCache");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
canvas->drawColor(0xFFDDDDDD);
// canvas->drawColor(SK_ColorWHITE);
}
virtual void onDraw(SkCanvas* canvas)
{
this->drawBG(canvas);
SkScalar x = 0; SkScalar x = 0;
SkScalar y = 0; SkScalar y = 0;
for (int i = 0; i < N; i++) for (int i = 0; i < N; i++) {
{
canvas->drawBitmap(fBitmaps[i], x, y); canvas->drawBitmap(fBitmaps[i], x, y);
x += SkIntToScalar(fBitmaps[i].width()); x += SkIntToScalar(fBitmaps[i].width());
} }
this->inval(NULL); this->inval(NULL);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
{
this->inval(NULL);
return this->INHERITED::onFindClickHandler(x, y);
}
virtual bool onClick(Click* click)
{
return this->INHERITED::onClick(click);
}
private: private:
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -23,34 +23,24 @@
#include "SkColorPriv.h" #include "SkColorPriv.h"
#include "SkImageDecoder.h" #include "SkImageDecoder.h"
class LinesView : public SkView { class LinesView : public SampleView {
public: public:
LinesView() {} LinesView() {}
protected: protected:
// overrides from SkEventSink // overrides from SkEventSink
virtual bool onQuery(SkEvent* evt) virtual bool onQuery(SkEvent* evt) {
{ if (SampleCode::TitleQ(*evt)) {
if (SampleCode::TitleQ(*evt))
{
SampleCode::TitleR(evt, "Lines"); SampleCode::TitleR(evt, "Lines");
return true; return true;
} }
return this->INHERITED::onQuery(evt); return this->INHERITED::onQuery(evt);
} }
void drawBG(SkCanvas* canvas)
{
// canvas->drawColor(0xFFDDDDDD);
canvas->drawColor(SK_ColorWHITE);
// canvas->drawColor(SK_ColorBLACK);
}
/* /*
0x1F * x + 0x1F * (32 - x) 0x1F * x + 0x1F * (32 - x)
*/ */
void drawRings(SkCanvas* canvas) void drawRings(SkCanvas* canvas) {
{
canvas->scale(SkIntToScalar(1)/2, SkIntToScalar(1)/2); canvas->scale(SkIntToScalar(1)/2, SkIntToScalar(1)/2);
SkRect r; SkRect r;
@ -67,10 +57,7 @@ protected:
canvas->drawRect(r, paint); canvas->drawRect(r, paint);
} }
virtual void onDraw(SkCanvas* canvas) virtual void onDrawContent(SkCanvas* canvas) {
{
this->drawBG(canvas);
SkBitmap bm; SkBitmap bm;
SkImageDecoder::DecodeFile("/kill.gif", &bm); SkImageDecoder::DecodeFile("/kill.gif", &bm);
canvas->drawBitmap(bm, 0, 0, NULL); canvas->drawBitmap(bm, 0, 0, NULL);
@ -104,8 +91,7 @@ protected:
canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint); canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint);
} }
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
{
fAlpha = SkScalarRound(y); fAlpha = SkScalarRound(y);
this->inval(NULL); this->inval(NULL);
return NULL; return NULL;
@ -113,7 +99,7 @@ protected:
private: private:
int fAlpha; int fAlpha;
typedef SkView INHERITED; typedef SampleView INHERITED;
}; };
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////