diff options
author | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2009-06-03 02:35:01 +0000 |
---|---|---|
committer | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2009-06-03 02:35:01 +0000 |
commit | 6b82d1adc6a4726e36674e468ff1157e0b75373f (patch) | |
tree | b54346ec55abc1e2ed1986883ea5e6931287a6ba | |
parent | 4a7fd2bd275446ecad0e70aff2b9fd31d2bc8e95 (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.h | 17 | ||||
-rw-r--r-- | samplecode/SampleAll.cpp | 24 | ||||
-rw-r--r-- | samplecode/SamplePatch.cpp | 36 | ||||
-rw-r--r-- | samplecode/SampleText.cpp | 2 | ||||
-rw-r--r-- | src/core/SkMemory_stdlib.cpp | 6 | ||||
-rw-r--r-- | src/core/SkPath.cpp | 22 | ||||
-rw-r--r-- | src/gl/SkGLDevice.cpp | 11 | ||||
-rw-r--r-- | tests/PathTest.cpp | 30 | ||||
-rw-r--r-- | xcode/sampleapp_sdl/SDLApp.xcodeproj/project.pbxproj | 20 |
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; }; |