зеркало из https://github.com/mozilla/moz-skia.git
update to SampleView
git-svn-id: http://skia.googlecode.com/svn/trunk@1252 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
2ba4abbb31
Коммит
961ddb04a0
|
@ -1334,7 +1334,7 @@ bool SampleView::onQuery(SkEvent* evt) {
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
#define TEST_GPIPEx
|
||||
#define TEST_GPIPE
|
||||
|
||||
#ifdef TEST_GPIPE
|
||||
#include "SkGPipe.h"
|
||||
|
@ -1348,10 +1348,11 @@ public:
|
|||
virtual void notifyWritten(size_t bytes);
|
||||
|
||||
private:
|
||||
SkGPipeReader fReader;
|
||||
void* fBlock;
|
||||
size_t fBlockSize;
|
||||
size_t fBytesWritten;
|
||||
SkGPipeReader fReader;
|
||||
void* fBlock;
|
||||
size_t fBlockSize;
|
||||
size_t fBytesWritten;
|
||||
int fAtomsWritten;
|
||||
SkGPipeReader::Status fStatus;
|
||||
|
||||
size_t fTotalWritten;
|
||||
|
@ -1362,13 +1363,15 @@ SimplePC::SimplePC(SkCanvas* target) : fReader(target) {
|
|||
fBlockSize = fBytesWritten = 0;
|
||||
fStatus = SkGPipeReader::kDone_Status;
|
||||
fTotalWritten = 0;
|
||||
fAtomsWritten = 0;
|
||||
}
|
||||
|
||||
SimplePC::~SimplePC() {
|
||||
// SkASSERT(SkGPipeReader::kDone_Status == fStatus);
|
||||
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) {
|
||||
|
@ -1388,6 +1391,8 @@ void SimplePC::notifyWritten(size_t bytes) {
|
|||
SkASSERT(SkGPipeReader::kError_Status != fStatus);
|
||||
fBytesWritten += bytes;
|
||||
fTotalWritten += bytes;
|
||||
|
||||
fAtomsWritten += 1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,33 +28,25 @@ static void testparse() {
|
|||
SkParsePath::ToSVGString(p2, &str2);
|
||||
}
|
||||
|
||||
class ArcsView : public SkView {
|
||||
class ArcsView : public SampleView {
|
||||
public:
|
||||
ArcsView()
|
||||
{
|
||||
ArcsView() {
|
||||
testparse();
|
||||
fSweep = SkIntToScalar(100);
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "Arcs");
|
||||
return true;
|
||||
}
|
||||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas)
|
||||
{
|
||||
canvas->drawColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
static void drawRectWithLines(SkCanvas* canvas, const SkRect& r, const SkPaint& p)
|
||||
{
|
||||
static void drawRectWithLines(SkCanvas* canvas, const SkRect& r, const SkPaint& p) {
|
||||
canvas->drawRect(r, p);
|
||||
canvas->drawLine(r.fLeft, r.fTop, r.fRight, r.fBottom, 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,
|
||||
int start, int sweep)
|
||||
{
|
||||
int start, int sweep) {
|
||||
SkPaint paint;
|
||||
|
||||
paint.setAntiAlias(true);
|
||||
|
@ -79,8 +70,7 @@ protected:
|
|||
rect.fBottom + paint.getTextSize() * 5/4, paint);
|
||||
}
|
||||
|
||||
static void drawArcs(SkCanvas* canvas)
|
||||
{
|
||||
static void drawArcs(SkCanvas* canvas) {
|
||||
SkPaint paint;
|
||||
SkRect r;
|
||||
SkScalar w = SkIntToScalar(75);
|
||||
|
@ -107,8 +97,7 @@ protected:
|
|||
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);
|
||||
drawRectWithLines(canvas, r, paint);
|
||||
|
||||
|
@ -124,10 +113,7 @@ protected:
|
|||
canvas->restore();
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas)
|
||||
{
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
fSweep = SampleCode::GetAnimScalar(SkIntToScalar(360)/24,
|
||||
SkIntToScalar(360));
|
||||
// fSweep = SkFloatToScalar(359.99f);
|
||||
|
@ -175,22 +161,20 @@ protected:
|
|||
this->inval(NULL);
|
||||
}
|
||||
|
||||
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
|
||||
{
|
||||
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)
|
||||
{
|
||||
virtual bool onClick(Click* click) {
|
||||
return this->INHERITED::onClick(click);
|
||||
}
|
||||
|
||||
private:
|
||||
SkScalar fSweep;
|
||||
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -3,9 +3,10 @@
|
|||
#include "SkPath.h"
|
||||
#include "SkView.h"
|
||||
|
||||
class ComplexClipView : public SkView {
|
||||
class ComplexClipView : public SampleView {
|
||||
public:
|
||||
ComplexClipView() {
|
||||
this->setBGColor(0xFFA0DDA0);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -18,11 +19,7 @@ protected:
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas) {
|
||||
canvas->drawColor(SkColorSetRGB(0xA0,0xDD,0xA0));
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkPath path;
|
||||
path.moveTo(SkIntToScalar(0), SkIntToScalar(50));
|
||||
path.quadTo(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(50), SkIntToScalar(0));
|
||||
|
@ -62,7 +59,6 @@ protected:
|
|||
clipB.close();
|
||||
SkColor colorB = SK_ColorRED;
|
||||
|
||||
drawBG(canvas);
|
||||
SkPaint paint;
|
||||
paint.setAntiAlias(true);
|
||||
|
||||
|
@ -145,7 +141,7 @@ protected:
|
|||
return this->INHERITED::onFindClickHandler(x, y);
|
||||
}
|
||||
private:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
#include "SkUtils.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;
|
||||
|
||||
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]);
|
||||
}
|
||||
|
||||
static void subdivide(SkPath* path, SkScalar bump)
|
||||
{
|
||||
static void subdivide(SkPath* path, SkScalar bump) {
|
||||
SkPath::Iter iter(*path, false);
|
||||
SkPoint pts[4];
|
||||
SkPath tmp;
|
||||
|
@ -46,8 +44,7 @@ FINISH:
|
|||
path->swap(tmp);
|
||||
}
|
||||
|
||||
static SkIPoint* getpts(const SkPath& path, int* count)
|
||||
{
|
||||
static SkIPoint* getpts(const SkPath& path, int* count) {
|
||||
SkPoint pts[4];
|
||||
int n = 1;
|
||||
SkIPoint* array;
|
||||
|
@ -92,15 +89,13 @@ FINISHED2:
|
|||
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);
|
||||
}
|
||||
|
||||
class CullView : public SkView {
|
||||
class CullView : public SampleView {
|
||||
public:
|
||||
CullView()
|
||||
{
|
||||
CullView() {
|
||||
fClip.set(0, 0, SkIntToScalar(160), SkIntToScalar(160));
|
||||
|
||||
SkRandom rand;
|
||||
|
@ -119,51 +114,25 @@ public:
|
|||
subdivide(&fPath, bump);
|
||||
subdivide(&fPath, bump);
|
||||
fPoints = getpts(fPath, &fPtCount);
|
||||
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
virtual ~CullView()
|
||||
{
|
||||
virtual ~CullView() {
|
||||
delete[] fPoints;
|
||||
}
|
||||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "Culling");
|
||||
return true;
|
||||
}
|
||||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(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);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkAutoCanvasRestore ar(canvas, true);
|
||||
|
||||
canvas->translate( SkScalarHalf(this->width() - fClip.width()),
|
||||
|
@ -204,23 +173,13 @@ protected:
|
|||
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:
|
||||
SkRect fClip;
|
||||
SkIPoint* fPoints;
|
||||
SkPath fPath;
|
||||
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->allocPixels();
|
||||
#if 0
|
||||
|
@ -109,7 +108,7 @@ static void pre_dither(const SkBitmap& bm) {
|
|||
}
|
||||
}
|
||||
|
||||
class DitherView : public SkView {
|
||||
class DitherView : public SampleView {
|
||||
public:
|
||||
SkBitmap fBM, fBMPreDither, fBM16;
|
||||
SkScalar fAngle;
|
||||
|
@ -121,6 +120,8 @@ public:
|
|||
fBM.copyTo(&fBM16, SkBitmap::kARGB_4444_Config);
|
||||
|
||||
fAngle = 0;
|
||||
|
||||
this->setBGColor(0xFF181818);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -133,14 +134,7 @@ protected:
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas) {
|
||||
// canvas->drawColor(0xFFDDDDDD);
|
||||
canvas->drawColor(0xFF181818);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkPaint paint;
|
||||
SkScalar x = SkIntToScalar(10);
|
||||
SkScalar y = SkIntToScalar(10);
|
||||
|
@ -173,20 +167,8 @@ protected:
|
|||
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:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#define WIDTH 200
|
||||
#define HEIGHT 200
|
||||
|
||||
class LooperView : public SkView {
|
||||
class LooperView : public SampleView {
|
||||
public:
|
||||
|
||||
SkLayerDrawLooper* fLooper;
|
||||
|
@ -48,6 +48,8 @@ public:
|
|||
paint->setMaskFilter(mf)->unref();
|
||||
}
|
||||
}
|
||||
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
virtual ~LooperView() {
|
||||
|
@ -64,14 +66,7 @@ protected:
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas) {
|
||||
canvas->drawColor(0xFFDDDDDD);
|
||||
// canvas->drawColor(SK_ColorWHITE);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkPaint paint;
|
||||
paint.setTextSize(SkIntToScalar(72));
|
||||
paint.setLooper(fLooper);
|
||||
|
@ -86,17 +81,8 @@ protected:
|
|||
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:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -19,11 +19,10 @@
|
|||
#include "SkTypeface.h"
|
||||
#include "SkXfermode.h"
|
||||
|
||||
class EmbossView : public SkView {
|
||||
class EmbossView : public SampleView {
|
||||
SkEmbossMaskFilter::Light fLight;
|
||||
public:
|
||||
EmbossView()
|
||||
{
|
||||
EmbossView() {
|
||||
fLight.fDirection[0] = SK_Scalar1;
|
||||
fLight.fDirection[1] = SK_Scalar1;
|
||||
fLight.fDirection[2] = SK_Scalar1;
|
||||
|
@ -33,25 +32,15 @@ public:
|
|||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "Emboss");
|
||||
return true;
|
||||
}
|
||||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas)
|
||||
{
|
||||
canvas->drawColor(SK_ColorWHITE);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas)
|
||||
{
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkPaint paint;
|
||||
|
||||
paint.setAntiAlias(true);
|
||||
|
@ -67,7 +56,7 @@ protected:
|
|||
|
||||
private:
|
||||
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -9,13 +9,15 @@
|
|||
#include "SkShader.h"
|
||||
#include "SkUtils.h"
|
||||
|
||||
class FillTypeView : public SkView {
|
||||
class FillTypeView : public SampleView {
|
||||
SkPath fPath;
|
||||
public:
|
||||
FillTypeView() {
|
||||
const SkScalar radius = SkIntToScalar(45);
|
||||
fPath.addCircle(SkIntToScalar(50), SkIntToScalar(50), radius);
|
||||
fPath.addCircle(SkIntToScalar(100), SkIntToScalar(100), radius);
|
||||
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -28,10 +30,6 @@ protected:
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas) {
|
||||
canvas->drawColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
void showPath(SkCanvas* canvas, int x, int y, SkPath::FillType ft,
|
||||
SkScalar scale, const SkPaint& paint) {
|
||||
|
||||
|
@ -60,9 +58,7 @@ protected:
|
|||
scale, paint);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
canvas->translate(SkIntToScalar(20), SkIntToScalar(20));
|
||||
|
||||
SkPaint paint;
|
||||
|
@ -83,16 +79,8 @@ protected:
|
|||
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:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include "SkColorFilter.h"
|
||||
#include "SkDither.h"
|
||||
|
||||
static void make_bm(SkBitmap* bm)
|
||||
{
|
||||
static void make_bm(SkBitmap* bm) {
|
||||
const SkColor colors[] = {
|
||||
SK_ColorRED, SK_ColorGREEN,
|
||||
SK_ColorBLUE, SK_ColorWHITE
|
||||
|
@ -32,8 +31,7 @@ static void make_bm(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
|
||||
canvas->drawBitmap(bm, x, y, paint);
|
||||
return SkIntToScalar(bm.width()) * 5/4;
|
||||
|
@ -52,8 +50,7 @@ static SkScalar draw_bm(SkCanvas* canvas, const SkBitmap& bm,
|
|||
#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);
|
||||
p->setFilterBitmap(true);
|
||||
x += draw_bm(c, bm, x, 0, p);
|
||||
|
@ -71,8 +68,7 @@ static const char* gConfigNames[] = {
|
|||
"8888"
|
||||
};
|
||||
|
||||
static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm)
|
||||
{
|
||||
static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm) {
|
||||
SkAutoCanvasRestore acr(canvas, true);
|
||||
|
||||
SkPaint paint;
|
||||
|
@ -94,39 +90,30 @@ static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm)
|
|||
return x * scale / 3;
|
||||
}
|
||||
|
||||
class FilterView : public SkView {
|
||||
class FilterView : public SampleView {
|
||||
public:
|
||||
SkBitmap fBM8, fBM4444, fBM16, fBM32;
|
||||
|
||||
FilterView()
|
||||
{
|
||||
FilterView() {
|
||||
make_bm(&fBM8);
|
||||
fBM8.copyTo(&fBM4444, SkBitmap::kARGB_4444_Config);
|
||||
fBM8.copyTo(&fBM16, SkBitmap::kRGB_565_Config);
|
||||
fBM8.copyTo(&fBM32, SkBitmap::kARGB_8888_Config);
|
||||
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "Filter");
|
||||
return true;
|
||||
}
|
||||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas)
|
||||
{
|
||||
canvas->drawColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas)
|
||||
{
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkScalar x = SkIntToScalar(10);
|
||||
SkScalar y = SkIntToScalar(10);
|
||||
|
||||
|
@ -140,20 +127,8 @@ protected:
|
|||
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:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -17,7 +17,7 @@ static const char* gNames[] = {
|
|||
"/skimages/background_01.png"
|
||||
};
|
||||
|
||||
class Filter2View : public SkView {
|
||||
class Filter2View : public SampleView {
|
||||
public:
|
||||
SkBitmap* fBitmaps;
|
||||
int fBitmapCount;
|
||||
|
@ -38,6 +38,8 @@ public:
|
|||
SkImageDecoder::kDecodePixels_Mode, NULL);
|
||||
}
|
||||
fCurrIndex = 0;
|
||||
|
||||
this->setBGColor(SK_ColorGRAY);
|
||||
}
|
||||
|
||||
virtual ~Filter2View() {
|
||||
|
@ -56,15 +58,7 @@ protected:
|
|||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas) {
|
||||
// canvas->drawColor(0xFFDDDDDD);
|
||||
canvas->drawColor(SK_ColorGRAY);
|
||||
// canvas->drawColor(SK_ColorWHITE);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
canvas->translate(SkIntToScalar(10), SkIntToScalar(50));
|
||||
|
||||
const SkScalar W = SkIntToScalar(fBitmaps[0].width() + 1);
|
||||
|
@ -112,7 +106,7 @@ protected:
|
|||
}
|
||||
|
||||
private:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
|
||||
#include <pthread.h>
|
||||
|
||||
static void call_measure()
|
||||
{
|
||||
static void call_measure() {
|
||||
SkPaint paint;
|
||||
uint16_t text[32];
|
||||
SkRandom rand;
|
||||
|
@ -17,8 +16,7 @@ static void call_measure()
|
|||
for (int j = 0; j < SK_ARRAY_COUNT(text); j++)
|
||||
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;
|
||||
|
||||
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;
|
||||
uint16_t text[32];
|
||||
SkRandom rand;
|
||||
|
@ -55,28 +52,24 @@ static void call_draw(SkCanvas* canvas)
|
|||
|
||||
static bool gDone;
|
||||
|
||||
static void* measure_proc(void* context)
|
||||
{
|
||||
while (!gDone)
|
||||
{
|
||||
static void* measure_proc(void* context) {
|
||||
while (!gDone) {
|
||||
call_measure();
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void* draw_proc(void* context)
|
||||
{
|
||||
static void* draw_proc(void* context) {
|
||||
SkBitmap* bm = (SkBitmap*)context;
|
||||
SkCanvas canvas(*bm);
|
||||
|
||||
while (!gDone)
|
||||
{
|
||||
while (!gDone) {
|
||||
call_draw(&canvas);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
class FontCacheView : public SkView {
|
||||
class FontCacheView : public SampleView {
|
||||
public:
|
||||
enum { N = 4 };
|
||||
|
||||
|
@ -84,11 +77,9 @@ public:
|
|||
pthread_t fDThreads[N];
|
||||
SkBitmap fBitmaps[N];
|
||||
|
||||
FontCacheView()
|
||||
{
|
||||
FontCacheView() {
|
||||
gDone = false;
|
||||
for (int i = 0; i < N; i++)
|
||||
{
|
||||
for (int i = 0; i < N; i++) {
|
||||
int status;
|
||||
|
||||
status = pthread_create(&fMThreads[i], NULL, measure_proc, NULL);
|
||||
|
@ -99,13 +90,12 @@ public:
|
|||
status = pthread_create(&fDThreads[i], NULL, draw_proc, &fBitmaps[i]);
|
||||
SkASSERT(0 == status);
|
||||
}
|
||||
this->setBGColor(0xFFDDDDDD);
|
||||
}
|
||||
|
||||
virtual ~FontCacheView()
|
||||
{
|
||||
virtual ~FontCacheView() {
|
||||
gDone = true;
|
||||
for (int i = 0; i < N; i++)
|
||||
{
|
||||
for (int i = 0; i < N; i++) {
|
||||
void* ret;
|
||||
int status = pthread_join(fMThreads[i], &ret);
|
||||
SkASSERT(0 == status);
|
||||
|
@ -116,49 +106,26 @@ public:
|
|||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "FontCache");
|
||||
return true;
|
||||
}
|
||||
return this->INHERITED::onQuery(evt);
|
||||
}
|
||||
|
||||
void drawBG(SkCanvas* canvas)
|
||||
{
|
||||
canvas->drawColor(0xFFDDDDDD);
|
||||
// canvas->drawColor(SK_ColorWHITE);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas)
|
||||
{
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkScalar x = 0;
|
||||
SkScalar y = 0;
|
||||
for (int i = 0; i < N; i++)
|
||||
{
|
||||
for (int i = 0; i < N; i++) {
|
||||
canvas->drawBitmap(fBitmaps[i], x, y);
|
||||
x += SkIntToScalar(fBitmaps[i].width());
|
||||
}
|
||||
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:
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -23,34 +23,24 @@
|
|||
#include "SkColorPriv.h"
|
||||
#include "SkImageDecoder.h"
|
||||
|
||||
class LinesView : public SkView {
|
||||
class LinesView : public SampleView {
|
||||
public:
|
||||
LinesView() {}
|
||||
|
||||
protected:
|
||||
// overrides from SkEventSink
|
||||
virtual bool onQuery(SkEvent* evt)
|
||||
{
|
||||
if (SampleCode::TitleQ(*evt))
|
||||
{
|
||||
virtual bool onQuery(SkEvent* evt) {
|
||||
if (SampleCode::TitleQ(*evt)) {
|
||||
SampleCode::TitleR(evt, "Lines");
|
||||
return true;
|
||||
}
|
||||
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)
|
||||
*/
|
||||
void drawRings(SkCanvas* canvas)
|
||||
{
|
||||
void drawRings(SkCanvas* canvas) {
|
||||
canvas->scale(SkIntToScalar(1)/2, SkIntToScalar(1)/2);
|
||||
|
||||
SkRect r;
|
||||
|
@ -67,10 +57,7 @@ protected:
|
|||
canvas->drawRect(r, paint);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas)
|
||||
{
|
||||
this->drawBG(canvas);
|
||||
|
||||
virtual void onDrawContent(SkCanvas* canvas) {
|
||||
SkBitmap bm;
|
||||
SkImageDecoder::DecodeFile("/kill.gif", &bm);
|
||||
canvas->drawBitmap(bm, 0, 0, NULL);
|
||||
|
@ -104,8 +91,7 @@ protected:
|
|||
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);
|
||||
this->inval(NULL);
|
||||
return NULL;
|
||||
|
@ -113,7 +99,7 @@ protected:
|
|||
private:
|
||||
|
||||
int fAlpha;
|
||||
typedef SkView INHERITED;
|
||||
typedef SampleView INHERITED;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Загрузка…
Ссылка в новой задаче