aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-06-03 02:35:01 +0000
committerGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-06-03 02:35:01 +0000
commit6b82d1adc6a4726e36674e468ff1157e0b75373f (patch)
treeb54346ec55abc1e2ed1986883ea5e6931287a6ba
parent4a7fd2bd275446ecad0e70aff2b9fd31d2bc8e95 (diff)
add isConvex() hit to SkPath, to be used to speed up fills and opengl
set linewidth in gldevice for hair rects remove some cruft from samples add more gl-unimpl messages git-svn-id: http://skia.googlecode.com/svn/trunk@199 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--include/core/SkPath.h17
-rw-r--r--samplecode/SampleAll.cpp24
-rw-r--r--samplecode/SamplePatch.cpp36
-rw-r--r--samplecode/SampleText.cpp2
-rw-r--r--src/core/SkMemory_stdlib.cpp6
-rw-r--r--src/core/SkPath.cpp22
-rw-r--r--src/gl/SkGLDevice.cpp11
-rw-r--r--tests/PathTest.cpp30
-rw-r--r--xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj20
9 files changed, 98 insertions, 70 deletions
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index be49ebdd65..c7289e835d 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -82,16 +82,28 @@ public:
*/
void toggleInverseFillType() { fFillType ^= 2; }
+ /** Returns true if the path is flagged as being convex. This is not a
+ confirmed by any analysis, it is just the value set earlier.
+ */
+ bool isConvex() const { return fIsConvex; }
+
+ /** Set the isConvex flag to true or false. Convex paths may draw faster if
+ this flag is set, though setting this to true on a path that is in fact
+ not convex can give undefined results when drawn. Paths default to
+ isConvex == false
+ */
+ void setIsConvex(bool isConvex) { fIsConvex = (isConvex != 0); }
+
/** Clear any lines and curves from the path, making it empty. This frees up
internal storage associated with those segments.
- This does NOT change the fill-type setting.
+ This does NOT change the fill-type setting nor isConvex
*/
void reset();
/** Similar to reset(), in that all lines and curves are removed from the
path. However, any internal storage for those lines/curves is retained,
making reuse of the path potentially faster.
- This does NOT change the fill-type setting.
+ This does NOT change the fill-type setting nor isConvex
*/
void rewind();
@@ -562,6 +574,7 @@ private:
mutable SkRect fBounds;
mutable uint8_t fBoundsIsDirty;
uint8_t fFillType;
+ uint8_t fIsConvex;
// called, if dirty, by getBounds()
void computeBounds() const;
diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index 8719e67892..03940566c0 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -30,8 +30,6 @@
#include "SkXfermode.h"
#include <math.h>
-
-extern void Dump();
static inline SkPMColor rgb2gray(SkPMColor c)
{
@@ -427,7 +425,6 @@ protected:
break;
} while (true);
}
- Dump();
}
void drawPicture(SkCanvas* canvas, int spriteOffset)
@@ -710,7 +707,6 @@ SkCornerPathEffect.h:28:class SkCornerPathEffect : public SkPathEffect {
void drawOneRaster(SkCanvas* canvas)
{
canvas->save();
-// canvas->scale(SK_Scalar1*2, SK_Scalar1*2, 0, 0);
SkScalar x = SkIntToScalar(20);
SkScalar y = SkIntToScalar(40);
@@ -742,31 +738,13 @@ SkCornerPathEffect.h:28:class SkCornerPathEffect : public SkPathEffect {
paint.setStyle(SkPaint::kStroke_Style);
canvas->drawOval(oval, paint);
paint.setStyle(SkPaint::kFill_Style);
- if (0)
- {
- SkPath path;
- paint.getTextPath(str.c_str(), str.size(), x + SkIntToScalar(260), y, &path);
- canvas->drawPath(path, paint);
- }
y += paint.getFontSpacing();
}
canvas->restore();
- if (0)
- {
- SkPoint pts[] = { 0, 0, 0, SkIntToScalar(150) };
- SkColor colors[] = { 0xFFE6E6E6, 0xFFFFFFFF };
- SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader::kClamp_TileMode);
-
- paint.reset();
- paint.setShader(s)->unref();
- canvas->drawRectCoords(0, 0, SkIntToScalar(120), SkIntToScalar(150), paint);
- }
-
- if (1)
- {
+ if (1) {
SkAvoidXfermode mode(SK_ColorWHITE, 0xFF,
SkAvoidXfermode::kTargetColor_Mode);
SkPaint paint;
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 919c251a10..02b6f92733 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -214,11 +214,11 @@ static void drawpatches(SkCanvas* canvas, const SkPaint& paint, int nu, int nv,
SkAutoCanvasRestore ar(canvas, true);
patch->draw(canvas, paint, 10, 10, false, false);
- canvas->translate(SkIntToScalar(300), 0);
+ canvas->translate(SkIntToScalar(180), 0);
patch->draw(canvas, paint, 10, 10, true, false);
- canvas->translate(SkIntToScalar(300), 0);
+ canvas->translate(SkIntToScalar(180), 0);
patch->draw(canvas, paint, 10, 10, false, true);
- canvas->translate(SkIntToScalar(300), 0);
+ canvas->translate(SkIntToScalar(180), 0);
patch->draw(canvas, paint, 10, 10, true, true);
}
@@ -237,20 +237,20 @@ public:
}
fShader1 = make_shader1(fSize1);
- const SkScalar S = SkIntToScalar(90);
- const SkScalar T = SkIntToScalar(64);
- fPts[0].set(S*1, T);
- fPts[1].set(S*2, T);
- fPts[2].set(S*3, T);
- fPts[3].set(S*4, T);
- fPts[4].set(S*4, T*2);
- fPts[5].set(S*4, T*3);
- fPts[6].set(S*4, T*4);
- fPts[7].set(S*3, T*4);
- fPts[8].set(S*2, T*4);
- fPts[9].set(S*1, T*4);
- fPts[10].set(S*1, T*3);
- fPts[11].set(S*1, T*2);
+ const SkScalar S = SkIntToScalar(50);
+ const SkScalar T = SkIntToScalar(40);
+ fPts[0].set(S*0, T);
+ fPts[1].set(S*1, T);
+ fPts[2].set(S*2, T);
+ fPts[3].set(S*3, T);
+ fPts[4].set(S*3, T*2);
+ fPts[5].set(S*3, T*3);
+ fPts[6].set(S*3, T*4);
+ fPts[7].set(S*2, T*4);
+ fPts[8].set(S*1, T*4);
+ fPts[9].set(S*0, T*4);
+ fPts[10].set(S*0, T*3);
+ fPts[11].set(S*0, T*2);
}
virtual ~PatchView() {
@@ -352,6 +352,8 @@ protected:
return;
}
+ canvas->translate(SkIntToScalar(20), 0);
+
Patch patch;
paint.setShader(fShader0);
diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp
index 7b8bcf0314..6deb5d0cb8 100644
--- a/samplecode/SampleText.cpp
+++ b/samplecode/SampleText.cpp
@@ -436,7 +436,7 @@ public:
test_breakText();
test_typefaceCache();
- test_poly();
+// test_poly();
}
virtual ~TextSpeedView()
diff --git a/src/core/SkMemory_stdlib.cpp b/src/core/SkMemory_stdlib.cpp
index f1ac36beb0..6952ae89b1 100644
--- a/src/core/SkMemory_stdlib.cpp
+++ b/src/core/SkMemory_stdlib.cpp
@@ -156,17 +156,11 @@ private:
}
};
-void Dump()
-{
- SkBlockHeader::Dump();
-}
-
void ValidateHeap()
{
SkBlockHeader::Validate();
}
#else
-void Dump() {}
void ValidateHeap() {}
#endif
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 0cb50fb551..2127bb4581 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -28,6 +28,9 @@
It captures some state about the path up front (i.e. if it already has a
cached bounds), and the if it can, it updates the cache bounds explicitly,
avoiding the need to revisit all of the points in getBounds().
+
+ It also notes if the path was originally empty, and if so, sets isConvex
+ to true. Thus it can only be used if the contour being added is convex.
*/
class SkAutoPathBoundsUpdate {
public:
@@ -42,6 +45,7 @@ public:
}
~SkAutoPathBoundsUpdate() {
+ fPath->setIsConvex(fEmpty);
if (fEmpty) {
fPath->fBounds = fRect;
fPath->fBoundsIsDirty = false;
@@ -52,13 +56,13 @@ public:
}
private:
- const SkPath* fPath;
- SkRect fRect;
- bool fDirty;
- bool fEmpty;
+ SkPath* fPath;
+ SkRect fRect;
+ bool fDirty;
+ bool fEmpty;
// returns true if we should proceed
- void init(const SkPath* path) {
+ void init(SkPath* path) {
fPath = path;
fDirty = path->fBoundsIsDirty;
fEmpty = path->isEmpty();
@@ -91,7 +95,9 @@ static void compute_pt_bounds(SkRect* bounds, const SkTDArray<SkPoint>& pts) {
////////////////////////////////////////////////////////////////////////////
-SkPath::SkPath() : fBoundsIsDirty(true), fFillType(kWinding_FillType) {}
+SkPath::SkPath() : fBoundsIsDirty(true), fFillType(kWinding_FillType) {
+ fIsConvex = false;
+}
SkPath::SkPath(const SkPath& src) {
SkDEBUGCODE(src.validate();)
@@ -111,12 +117,15 @@ SkPath& SkPath::operator=(const SkPath& src) {
fVerbs = src.fVerbs;
fFillType = src.fFillType;
fBoundsIsDirty = src.fBoundsIsDirty;
+ fIsConvex = src.fIsConvex;
}
SkDEBUGCODE(this->validate();)
return *this;
}
bool operator==(const SkPath& a, const SkPath& b) {
+ // note: don't need to look at isConvex or bounds, since just comparing the
+ // raw data is sufficient.
return &a == &b ||
(a.fFillType == b.fFillType && a.fVerbs == b.fVerbs && a.fPts == b.fPts);
}
@@ -130,6 +139,7 @@ void SkPath::swap(SkPath& other) {
fVerbs.swap(other.fVerbs);
SkTSwap<uint8_t>(fFillType, other.fFillType);
SkTSwap<uint8_t>(fBoundsIsDirty, other.fBoundsIsDirty);
+ SkTSwap<uint8_t>(fIsConvex, other.fIsConvex);
}
}
diff --git a/src/gl/SkGLDevice.cpp b/src/gl/SkGLDevice.cpp
index 148f9e92f4..d839498dec 100644
--- a/src/gl/SkGLDevice.cpp
+++ b/src/gl/SkGLDevice.cpp
@@ -169,6 +169,7 @@ SkGLDevice::TexCache* SkGLDevice::setupGLPaintShader(const SkPaint& paint) {
SkMatrix matrix;
SkShader::TileMode tileModes[2];
if (!shader->asABitmap(&bitmap, &matrix, tileModes)) {
+ SkGL_unimpl("shader->asABitmap() == false");
return NULL;
}
@@ -232,6 +233,7 @@ void SkGLDevice::drawPaint(const SkDraw& draw, const SkPaint& paint) {
this->updateMatrixClip());
}
+// must be in SkCanvas::PointMode order
static const GLenum gPointMode2GL[] = {
GL_POINTS,
GL_LINES,
@@ -339,6 +341,7 @@ void SkGLDevice::drawRect(const SkDraw& draw, const SkRect& rect,
vertex[2].setScalars(rect.fRight, rect.fBottom);
vertex[3].setScalars(rect.fLeft, rect.fBottom);
vertex[4].setScalars(rect.fLeft, rect.fTop);
+ glLineWidth(1);
}
} else {
vertCount = 4;
@@ -355,6 +358,7 @@ void SkGLDevice::drawPath(const SkDraw& draw, const SkPath& path,
const SkPaint& paint) {
TRACE_DRAW("coreDrawPath", this, draw);
if (paint.getStyle() == SkPaint::kStroke_Style) {
+ SkGL_unimpl("stroke path");
return;
}
@@ -599,7 +603,7 @@ static void SkGL_Draw1Glyph(const SkDraw1Glyph& state, const SkGlyph& glyph,
SkGLDrawProcs* procs = (SkGLDrawProcs*)state.fDraw->fProcs;
x += glyph.fLeft;
- y += glyph.fTop;
+ y += glyph.fTop;
// check if we're clipped out (nothing to draw)
SkIRect bounds;
@@ -636,6 +640,7 @@ static void SkGL_Draw1Glyph(const SkDraw1Glyph& state, const SkGlyph& glyph,
}
strike = textCache->addGlyphAndBind(glyph, aa, &offset);
if (NULL == strike) {
+ SkGL_unimpl("addGlyphAndBind failed, too big");
// too big to cache, need to draw as is...
return;
}
@@ -772,6 +777,7 @@ void SkGLDevice::drawText(const SkDraw& draw, const void* text,
- option to have draw call the font cache, which we could patch (?)
*/
if (draw.fMatrix->getType() & SkMatrix::kPerspective_Mask) {
+ SkGL_unimpl("drawText in perspective");
return;
}
@@ -787,6 +793,7 @@ void SkGLDevice::drawPosText(const SkDraw& draw, const void* text,
SkScalar constY, int scalarsPerPos,
const SkPaint& paint) {
if (draw.fMatrix->getType() & SkMatrix::kPerspective_Mask) {
+ SkGL_unimpl("drawPosText in perspective");
return;
}
@@ -801,6 +808,6 @@ void SkGLDevice::drawPosText(const SkDraw& draw, const void* text,
void SkGLDevice::drawTextOnPath(const SkDraw& draw, const void* text,
size_t byteLength, const SkPath& path,
const SkMatrix* m, const SkPaint& paint) {
- // not supported yet
+ SkGL_unimpl("drawTextOnPath");
}
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index c17fa45955..89fe93b963 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -1,11 +1,27 @@
#include "Test.h"
#include "SkPath.h"
+static void check_convex_bounds(skiatest::Reporter* reporter, const SkPath& p,
+ const SkRect& bounds) {
+ REPORTER_ASSERT(reporter, p.isConvex());
+ REPORTER_ASSERT(reporter, p.getBounds() == bounds);
+
+ SkPath p2(p);
+ REPORTER_ASSERT(reporter, p2.isConvex());
+ REPORTER_ASSERT(reporter, p2.getBounds() == bounds);
+
+ SkPath other;
+ other.swap(p2);
+ REPORTER_ASSERT(reporter, other.isConvex());
+ REPORTER_ASSERT(reporter, other.getBounds() == bounds);
+}
+
static void TestPath(skiatest::Reporter* reporter) {
SkPath p, p2;
SkRect bounds, bounds2;
REPORTER_ASSERT(reporter, p.isEmpty());
+ REPORTER_ASSERT(reporter, !p.isConvex());
REPORTER_ASSERT(reporter, p.getFillType() == SkPath::kWinding_FillType);
REPORTER_ASSERT(reporter, !p.isInverseFillType());
REPORTER_ASSERT(reporter, p == p2);
@@ -14,8 +30,20 @@ static void TestPath(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, p.getBounds().isEmpty());
bounds.set(0, 0, SK_Scalar1, SK_Scalar1);
+
+ p.setIsConvex(false);
+ p.addRoundRect(bounds, SK_Scalar1, SK_Scalar1);
+ check_convex_bounds(reporter, p, bounds);
+
+ p.reset();
+ p.setIsConvex(false);
+ p.addOval(bounds);
+ check_convex_bounds(reporter, p, bounds);
+
+ p.reset();
+ p.setIsConvex(false);
p.addRect(bounds);
- REPORTER_ASSERT(reporter, bounds == p.getBounds());
+ check_convex_bounds(reporter, p, bounds);
REPORTER_ASSERT(reporter, p != p2);
REPORTER_ASSERT(reporter, !(p == p2));
diff --git a/xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj b/xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj
index 1d07278f7c..b348e94071 100644
--- a/xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj
+++ b/xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj
@@ -44,13 +44,11 @@
0064EE490FC72BEE00D71FB0 /* SamplePoints.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE150FC72BEE00D71FB0 /* SamplePoints.cpp */; };
0064EE4B0FC72BEE00D71FB0 /* SampleRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE170FC72BEE00D71FB0 /* SampleRegion.cpp */; };
0064EE4E0FC72BEE00D71FB0 /* SampleStrokeText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1A0FC72BEE00D71FB0 /* SampleStrokeText.cpp */; };
- 0064EE500FC72BEE00D71FB0 /* SampleText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1C0FC72BEE00D71FB0 /* SampleText.cpp */; };
0064EE510FC72BEE00D71FB0 /* SampleTextAlpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1D0FC72BEE00D71FB0 /* SampleTextAlpha.cpp */; };
0064EE520FC72BEE00D71FB0 /* SampleTextEffects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1E0FC72BEE00D71FB0 /* SampleTextEffects.cpp */; };
0064EE530FC72BEE00D71FB0 /* SampleTextOnPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1F0FC72BEE00D71FB0 /* SampleTextOnPath.cpp */; };
0064EE540FC72BEE00D71FB0 /* SampleTiling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE200FC72BEE00D71FB0 /* SampleTiling.cpp */; };
0064EE550FC72BEE00D71FB0 /* SampleTypeface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE210FC72BEE00D71FB0 /* SampleTypeface.cpp */; };
- 0064EE570FC72BEE00D71FB0 /* SampleXfermodes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE230FC72BEE00D71FB0 /* SampleXfermodes.cpp */; };
0064EE580FC72BEE00D71FB0 /* vertexdump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE240FC72BEE00D71FB0 /* vertexdump.cpp */; };
0064EE960FC7318500D71FB0 /* SkImageRefPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE930FC7318500D71FB0 /* SkImageRefPool.cpp */; };
0064EE970FC7318500D71FB0 /* SkImageRef_GlobalPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE940FC7318500D71FB0 /* SkImageRef_GlobalPool.cpp */; };
@@ -75,11 +73,9 @@
006DC7EC0FC7475F00BF5F45 /* libcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 006DC7E90FC7475900BF5F45 /* libcore.a */; };
00A728490FD43E7600D5051F /* SampleMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE0C0FC72BEE00D71FB0 /* SampleMovie.cpp */; };
00A7284D0FD43E8900D5051F /* SkMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A7284B0FD43E8900D5051F /* SkMovie.cpp */; };
- 00A7288C0FD4702A00D5051F /* SampleTestGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A7288B0FD4702A00D5051F /* SampleTestGL.cpp */; };
2762F6040FCCC832002BD8B4 /* SampleShapes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE190FC72BEE00D71FB0 /* SampleShapes.cpp */; };
2762F6420FCCCA6C002BD8B4 /* SkFlipPixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2762F6400FCCCA6C002BD8B4 /* SkFlipPixelRef.cpp */; };
2762F6430FCCCA6C002BD8B4 /* SkPageFlipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2762F6410FCCCA6C002BD8B4 /* SkPageFlipper.cpp */; };
- 2762F6C20FCCCBC0002BD8B4 /* SampleAll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EDF00FC72BEE00D71FB0 /* SampleAll.cpp */; };
2778363D0FCF8908006549E4 /* SkGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 277836370FCF8908006549E4 /* SkGL.cpp */; };
2778363E0FCF8908006549E4 /* SkGLCanvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 277836380FCF8908006549E4 /* SkGLCanvas.cpp */; };
2778363F0FCF8908006549E4 /* SkGLDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 277836390FCF8908006549E4 /* SkGLDevice.cpp */; };
@@ -87,8 +83,11 @@
277836410FCF8908006549E4 /* SkGLTextCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2778363B0FCF8908006549E4 /* SkGLTextCache.cpp */; };
277836420FCF8908006549E4 /* SkTextureCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2778363C0FCF8908006549E4 /* SkTextureCache.cpp */; };
277836500FCF89F9006549E4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2778364F0FCF89F9006549E4 /* OpenGL.framework */; };
+ 2779F2330FD61326005D376E /* SamplePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE100FC72BEE00D71FB0 /* SamplePatch.cpp */; };
+ 2779F2540FD614D1005D376E /* SampleAll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EDF00FC72BEE00D71FB0 /* SampleAll.cpp */; };
+ 2779F2610FD61678005D376E /* SampleXfermodes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE230FC72BEE00D71FB0 /* SampleXfermodes.cpp */; };
+ 2779F27E0FD61829005D376E /* SampleText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE1C0FC72BEE00D71FB0 /* SampleText.cpp */; };
27E1AAA70FD0C51B00098FC5 /* SampleVertices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE220FC72BEE00D71FB0 /* SampleVertices.cpp */; };
- 27E1AACB0FD0C87200098FC5 /* SamplePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE100FC72BEE00D71FB0 /* SamplePatch.cpp */; };
27E1AAE00FD0C9B500098FC5 /* SampleShaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE180FC72BEE00D71FB0 /* SampleShaders.cpp */; };
27E1AB2B0FD0D06600098FC5 /* SamplePageFlip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064EE0F0FC72BEE00D71FB0 /* SamplePageFlip.cpp */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
@@ -214,7 +213,6 @@
0096585B0FC7201800C3AE15 /* maccore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = maccore.xcodeproj; path = ../maccore/maccore.xcodeproj; sourceTree = SOURCE_ROOT; };
00A7284B0FD43E8900D5051F /* SkMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie.cpp; path = ../../src/images/SkMovie.cpp; sourceTree = SOURCE_ROOT; };
00A7284C0FD43E8900D5051F /* SkMovie_gif.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie_gif.cpp; path = ../../src/images/SkMovie_gif.cpp; sourceTree = SOURCE_ROOT; };
- 00A7288B0FD4702A00D5051F /* SampleTestGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SampleTestGL.cpp; sourceTree = "<group>"; };
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
2762F6400FCCCA6C002BD8B4 /* SkFlipPixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFlipPixelRef.cpp; path = ../../src/images/SkFlipPixelRef.cpp; sourceTree = SOURCE_ROOT; };
@@ -266,7 +264,6 @@
0064EDFB0FC72BEE00D71FB0 /* SampleEmboss.cpp */,
0064EDFC0FC72BEE00D71FB0 /* SampleEncode.cpp */,
0064EDFD0FC72BEE00D71FB0 /* SampleFillType.cpp */,
- 00A7288B0FD4702A00D5051F /* SampleTestGL.cpp */,
0064EDFE0FC72BEE00D71FB0 /* SampleFilter.cpp */,
0064EDFF0FC72BEE00D71FB0 /* SampleFilter2.cpp */,
0064EE000FC72BEE00D71FB0 /* SampleFontCache.cpp */,
@@ -592,14 +589,12 @@
0064EE490FC72BEE00D71FB0 /* SamplePoints.cpp in Sources */,
0064EE4B0FC72BEE00D71FB0 /* SampleRegion.cpp in Sources */,
0064EE4E0FC72BEE00D71FB0 /* SampleStrokeText.cpp in Sources */,
- 0064EE500FC72BEE00D71FB0 /* SampleText.cpp in Sources */,
0064EE510FC72BEE00D71FB0 /* SampleTextAlpha.cpp in Sources */,
0064EE520FC72BEE00D71FB0 /* SampleTextEffects.cpp in Sources */,
0064EE530FC72BEE00D71FB0 /* SampleTextOnPath.cpp in Sources */,
0064EE540FC72BEE00D71FB0 /* SampleTiling.cpp in Sources */,
0064EE550FC72BEE00D71FB0 /* SampleTypeface.cpp in Sources */,
0064EE480FC72BEE00D71FB0 /* SamplePicture.cpp in Sources */,
- 0064EE570FC72BEE00D71FB0 /* SampleXfermodes.cpp in Sources */,
0064EE580FC72BEE00D71FB0 /* vertexdump.cpp in Sources */,
0064EE960FC7318500D71FB0 /* SkImageRefPool.cpp in Sources */,
0064EE970FC7318500D71FB0 /* SkImageRef_GlobalPool.cpp in Sources */,
@@ -622,7 +617,6 @@
2762F6040FCCC832002BD8B4 /* SampleShapes.cpp in Sources */,
2762F6420FCCCA6C002BD8B4 /* SkFlipPixelRef.cpp in Sources */,
2762F6430FCCCA6C002BD8B4 /* SkPageFlipper.cpp in Sources */,
- 2762F6C20FCCCBC0002BD8B4 /* SampleAll.cpp in Sources */,
2778363D0FCF8908006549E4 /* SkGL.cpp in Sources */,
2778363E0FCF8908006549E4 /* SkGLCanvas.cpp in Sources */,
2778363F0FCF8908006549E4 /* SkGLDevice.cpp in Sources */,
@@ -630,12 +624,14 @@
277836410FCF8908006549E4 /* SkGLTextCache.cpp in Sources */,
277836420FCF8908006549E4 /* SkTextureCache.cpp in Sources */,
27E1AAA70FD0C51B00098FC5 /* SampleVertices.cpp in Sources */,
- 27E1AACB0FD0C87200098FC5 /* SamplePatch.cpp in Sources */,
27E1AAE00FD0C9B500098FC5 /* SampleShaders.cpp in Sources */,
27E1AB2B0FD0D06600098FC5 /* SamplePageFlip.cpp in Sources */,
00A728490FD43E7600D5051F /* SampleMovie.cpp in Sources */,
00A7284D0FD43E8900D5051F /* SkMovie.cpp in Sources */,
- 00A7288C0FD4702A00D5051F /* SampleTestGL.cpp in Sources */,
+ 2779F2330FD61326005D376E /* SamplePatch.cpp in Sources */,
+ 2779F2540FD614D1005D376E /* SampleAll.cpp in Sources */,
+ 2779F2610FD61678005D376E /* SampleXfermodes.cpp in Sources */,
+ 2779F27E0FD61829005D376E /* SampleText.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};