зеркало из https://github.com/mozilla/moz-skia.git
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
This commit is contained in:
Родитель
4a7fd2bd27
Коммит
6b82d1adc6
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -436,7 +436,7 @@ public:
|
|||
|
||||
test_breakText();
|
||||
test_typefaceCache();
|
||||
test_poly();
|
||||
// test_poly();
|
||||
}
|
||||
|
||||
virtual ~TextSpeedView()
|
||||
|
|
|
@ -156,17 +156,11 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
void Dump()
|
||||
{
|
||||
SkBlockHeader::Dump();
|
||||
}
|
||||
|
||||
void ValidateHeap()
|
||||
{
|
||||
SkBlockHeader::Validate();
|
||||
}
|
||||
#else
|
||||
void Dump() {}
|
||||
void ValidateHeap() {}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче