| Index: tests/PathOpsDebug.cpp
|
| diff --git a/tests/PathOpsDebug.cpp b/tests/PathOpsDebug.cpp
|
| index 93fe33d99a64c1f1e5ef62700d43f0bb63a6aab9..cb25db8b542fa0c2701d245fc45eac36d65c55f2 100755
|
| --- a/tests/PathOpsDebug.cpp
|
| +++ b/tests/PathOpsDebug.cpp
|
| @@ -185,13 +185,34 @@ void SkPathOpsDebug::WindingPrintf(int wind) {
|
| }
|
| #endif
|
|
|
| -void SkDCubic::dump() const {
|
| +void SkDConic::dump() const {
|
| dumpInner();
|
| + SkDebugf("},\n");
|
| +}
|
| +
|
| +void SkDConic::dumpID(int id) const {
|
| + dumpInner();
|
| + SkDebugf("} id=%d\n", id);
|
| +}
|
| +
|
| +void SkDConic::dumpInner() const {
|
| + SkDebugf("{{");
|
| + int index = 0;
|
| + do {
|
| + fPts[index].dump();
|
| + SkDebugf(", ");
|
| + } while (++index < 2);
|
| + fPts[index].dump();
|
| + SkDebugf("}, %1.9g", fWeight);
|
| +}
|
| +
|
| +void SkDCubic::dump() const {
|
| + this->dumpInner();
|
| SkDebugf("}},\n");
|
| }
|
|
|
| void SkDCubic::dumpID(int id) const {
|
| - dumpInner();
|
| + this->dumpInner();
|
| SkDebugf("}} id=%d\n", id);
|
| }
|
|
|
| @@ -216,12 +237,44 @@ void SkDCubic::dumpInner() const {
|
| fPts[index].dump();
|
| }
|
|
|
| +void SkDCurve::dumpID(int id) const {
|
| +#ifndef SK_RELEASE
|
| + switch(fVerb) {
|
| + case SkPath::kLine_Verb:
|
| + fLine.dumpID(id);
|
| + break;
|
| + case SkPath::kQuad_Verb:
|
| + fQuad.dumpID(id);
|
| + break;
|
| + case SkPath::kConic_Verb:
|
| + fConic.dumpID(id);
|
| + break;
|
| + case SkPath::kCubic_Verb:
|
| + fCubic.dumpID(id);
|
| + break;
|
| + default:
|
| + SkASSERT(0);
|
| + }
|
| +#else
|
| + fCubic.dumpID(id);
|
| +#endif
|
| +}
|
| +
|
| void SkDLine::dump() const {
|
| + this->dumpInner();
|
| + SkDebugf("}},\n");
|
| +}
|
| +
|
| +void SkDLine::dumpID(int id) const {
|
| + this->dumpInner();
|
| + SkDebugf("}} id=%d\n", id);
|
| +}
|
| +
|
| +void SkDLine::dumpInner() const {
|
| SkDebugf("{{");
|
| fPts[0].dump();
|
| SkDebugf(", ");
|
| fPts[1].dump();
|
| - SkDebugf("}},\n");
|
| }
|
|
|
| void SkDPoint::dump() const {
|
| @@ -438,84 +491,271 @@ void SkPathOpsDebug::DumpContoursSpans(const SkTDArray<SkOpContour* >* contours)
|
| }
|
| }
|
|
|
| -const SkTSpan<SkDCubic>* DebugSpan(const SkTSect<SkDCubic>* sect, int id) {
|
| +template <typename TCurve, typename OppCurve>
|
| +const SkTSpan<TCurve, OppCurve>* DebugSpan(const SkTSect<TCurve, OppCurve>* sect, int id) {
|
| return sect->debugSpan(id);
|
| }
|
|
|
| -const SkTSpan<SkDQuad>* DebugSpan(const SkTSect<SkDQuad>* sect, int id) {
|
| - return sect->debugSpan(id);
|
| -}
|
| -
|
| -const SkTSpan<SkDCubic>* DebugT(const SkTSect<SkDCubic>* sect, double t) {
|
| +void DontCallDebugSpan(int id);
|
| +void DontCallDebugSpan(int id) { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DebugSpan(&q1q2, id);
|
| + DebugSpan(&q1k2, id);
|
| + DebugSpan(&q1c2, id);
|
| + DebugSpan(&k1q2, id);
|
| + DebugSpan(&k1k2, id);
|
| + DebugSpan(&k1c2, id);
|
| + DebugSpan(&c1q2, id);
|
| + DebugSpan(&c1k2, id);
|
| + DebugSpan(&c1c2, id);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +const SkTSpan<TCurve, OppCurve>* DebugT(const SkTSect<TCurve, OppCurve>* sect, double t) {
|
| return sect->debugT(t);
|
| }
|
|
|
| -const SkTSpan<SkDQuad>* DebugT(const SkTSect<SkDQuad>* sect, double t) {
|
| - return sect->debugT(t);
|
| -}
|
| -
|
| -const SkTSpan<SkDCubic>* DebugSpan(const SkTSpan<SkDCubic>* span, int id) {
|
| - return span->debugSpan(id);
|
| -}
|
| -
|
| -const SkTSpan<SkDQuad>* DebugSpan(const SkTSpan<SkDQuad>* span, int id) {
|
| - return span->debugSpan(id);
|
| -}
|
| -
|
| -const SkTSpan<SkDCubic>* DebugT(const SkTSpan<SkDCubic>* span, double t) {
|
| - return span->debugT(t);
|
| -}
|
| -
|
| -const SkTSpan<SkDQuad>* DebugT(const SkTSpan<SkDQuad>* span, double t) {
|
| - return span->debugT(t);
|
| -}
|
| -
|
| -void Dump(const SkTSect<SkDCubic>* sect) {
|
| - sect->dump();
|
| -}
|
| -
|
| -void Dump(const SkTSect<SkDQuad>* sect) {
|
| +void DontCallDebugT(double t);
|
| +void DontCallDebugT(double t) { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DebugT(&q1q2, t);
|
| + DebugT(&q1k2, t);
|
| + DebugT(&q1c2, t);
|
| + DebugT(&k1q2, t);
|
| + DebugT(&k1k2, t);
|
| + DebugT(&k1c2, t);
|
| + DebugT(&c1q2, t);
|
| + DebugT(&c1k2, t);
|
| + DebugT(&c1c2, t);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void Dump(const SkTSect<TCurve, OppCurve>* sect) {
|
| sect->dump();
|
| }
|
|
|
| -void Dump(const SkTSpan<SkDCubic>* span) {
|
| +void DontCallDumpTSect();
|
| +void DontCallDumpTSect() { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + Dump(&q1q2);
|
| + Dump(&q1k2);
|
| + Dump(&q1c2);
|
| + Dump(&k1q2);
|
| + Dump(&k1k2);
|
| + Dump(&k1c2);
|
| + Dump(&c1q2);
|
| + Dump(&c1k2);
|
| + Dump(&c1c2);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void Dump(const SkTSpan<TCurve, OppCurve>* span) {
|
| span->dump();
|
| }
|
|
|
| -void Dump(const SkTSpan<SkDQuad>* span) {
|
| - span->dump();
|
| -}
|
| -
|
| -void DumpBoth(SkTSect<SkDCubic>* sect1, SkTSect<SkDCubic>* sect2) {
|
| - sect1->dumpBoth(sect2);
|
| -}
|
| -
|
| -void DumpBoth(SkTSect<SkDQuad>* sect1, SkTSect<SkDQuad>* sect2) {
|
| +void DontCallDumpTSpan();
|
| +void DontCallDumpTSpan() { // exists to instantiate the templates
|
| + SkTSpan<SkDQuad, SkDQuad> q1q2;
|
| + SkTSpan<SkDQuad, SkDConic> q1k2;
|
| + SkTSpan<SkDQuad, SkDCubic> q1c2;
|
| + SkTSpan<SkDConic, SkDQuad> k1q2;
|
| + SkTSpan<SkDConic, SkDConic> k1k2;
|
| + SkTSpan<SkDConic, SkDCubic> k1c2;
|
| + SkTSpan<SkDCubic, SkDQuad> c1q2;
|
| + SkTSpan<SkDCubic, SkDConic> c1k2;
|
| + SkTSpan<SkDCubic, SkDCubic> c1c2;
|
| + Dump(&q1q2);
|
| + Dump(&q1k2);
|
| + Dump(&q1c2);
|
| + Dump(&k1q2);
|
| + Dump(&k1k2);
|
| + Dump(&k1c2);
|
| + Dump(&c1q2);
|
| + Dump(&c1k2);
|
| + Dump(&c1c2);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void DumpBoth(SkTSect<TCurve, OppCurve>* sect1, SkTSect<OppCurve, TCurve>* sect2) {
|
| sect1->dumpBoth(sect2);
|
| }
|
|
|
| -void DumpCoin(SkTSect<SkDCubic>* sect1) {
|
| - sect1->dumpCoin();
|
| -}
|
| -
|
| -void DumpCoin(SkTSect<SkDQuad>* sect1) {
|
| +void DontCallDumpBoth();
|
| +void DontCallDumpBoth() { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DumpBoth(&q1q2, &q1q2);
|
| + DumpBoth(&q1k2, &k1q2);
|
| + DumpBoth(&q1c2, &c1q2);
|
| + DumpBoth(&k1q2, &q1k2);
|
| + DumpBoth(&k1k2, &k1k2);
|
| + DumpBoth(&k1c2, &c1k2);
|
| + DumpBoth(&c1q2, &q1c2);
|
| + DumpBoth(&c1k2, &k1c2);
|
| + DumpBoth(&c1c2, &c1c2);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void DumpBounds(SkTSect<TCurve, OppCurve>* sect1, int id) {
|
| + sect1->dumpBounds(id);
|
| +}
|
| +
|
| +void DontCallDumpBounds();
|
| +void DontCallDumpBounds() {
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DumpBounds(&q1q2, 0);
|
| + DumpBounds(&q1k2, 0);
|
| + DumpBounds(&q1c2, 0);
|
| + DumpBounds(&k1q2, 0);
|
| + DumpBounds(&k1k2, 0);
|
| + DumpBounds(&k1c2, 0);
|
| + DumpBounds(&c1q2, 0);
|
| + DumpBounds(&c1k2, 0);
|
| + DumpBounds(&c1c2, 0);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void DumpCoin(SkTSect<TCurve, OppCurve>* sect1) {
|
| sect1->dumpCoin();
|
| }
|
|
|
| -void DumpCoinCurves(SkTSect<SkDCubic>* sect1) {
|
| - sect1->dumpCoinCurves();
|
| -}
|
| -
|
| -void DumpCoinCurves(SkTSect<SkDQuad>* sect1) {
|
| +void DontCallDumpCoin();
|
| +void DontCallDumpCoin() { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DumpCoin(&q1q2);
|
| + DumpCoin(&q1k2);
|
| + DumpCoin(&q1c2);
|
| + DumpCoin(&k1q2);
|
| + DumpCoin(&k1k2);
|
| + DumpCoin(&k1c2);
|
| + DumpCoin(&c1q2);
|
| + DumpCoin(&c1k2);
|
| + DumpCoin(&c1c2);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void DumpCoinCurves(SkTSect<TCurve, OppCurve>* sect1) {
|
| sect1->dumpCoinCurves();
|
| }
|
|
|
| -void DumpCurves(const SkTSect<SkDQuad>* sect) {
|
| +void DontCallDumpCoinCurves();
|
| +void DontCallDumpCoinCurves() { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DumpCoinCurves(&q1q2);
|
| + DumpCoinCurves(&q1k2);
|
| + DumpCoinCurves(&q1c2);
|
| + DumpCoinCurves(&k1q2);
|
| + DumpCoinCurves(&k1k2);
|
| + DumpCoinCurves(&k1c2);
|
| + DumpCoinCurves(&c1q2);
|
| + DumpCoinCurves(&c1k2);
|
| + DumpCoinCurves(&c1c2);
|
| +}
|
| +
|
| +template <typename TCurve, typename OppCurve>
|
| +void DumpCurves(const SkTSect<TCurve, OppCurve>* sect) {
|
| sect->dumpCurves();
|
| }
|
|
|
| -void DumpCurves(const SkTSect<SkDCubic>* sect) {
|
| - sect->dumpCurves();
|
| +void DontCallDumpCurves();
|
| +void DontCallDumpCurves() { // exists to instantiate the templates
|
| + SkDQuad quad;
|
| + SkDConic conic;
|
| + SkDCubic cubic;
|
| + SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1));
|
| + DumpCurves(&q1q2);
|
| + DumpCurves(&q1k2);
|
| + DumpCurves(&q1c2);
|
| + DumpCurves(&k1q2);
|
| + DumpCurves(&k1k2);
|
| + DumpCurves(&k1c2);
|
| + DumpCurves(&c1q2);
|
| + DumpCurves(&c1k2);
|
| + DumpCurves(&c1c2);
|
| }
|
|
|
| static void dumpTestCase(const SkDQuad& quad1, const SkDQuad& quad2, int testNo) {
|
| @@ -903,13 +1143,20 @@ void SkOpSegment::dumpCoin() const {
|
| void SkOpSegment::dumpPts() const {
|
| int last = SkPathOpsVerbToPoints(fVerb);
|
| SkDebugf("seg=%d {{", this->debugID());
|
| + if (fVerb == SkPath::kConic_Verb) {
|
| + SkDebugf("{");
|
| + }
|
| int index = 0;
|
| do {
|
| SkDPoint::Dump(fPts[index]);
|
| SkDebugf(", ");
|
| } while (++index < last);
|
| SkDPoint::Dump(fPts[index]);
|
| - SkDebugf("}}\n");
|
| + SkDebugf("}}");
|
| + if (fVerb == SkPath::kConic_Verb) {
|
| + SkDebugf(", %1.9gf}", fWeight);
|
| + }
|
| + SkDebugf("\n");
|
| }
|
|
|
| void SkCoincidentSpans::dump() const {
|
| @@ -953,7 +1200,7 @@ void SkOpContour::dump() {
|
| return;
|
| }
|
| const SkOpSegment* segment = &fHead;
|
| - PATH_OPS_DEBUG_CODE(fIndent = 0);
|
| + SkDEBUGCODE(fIndent = 0);
|
| indentDump();
|
| do {
|
| segment->dump();
|
| @@ -967,7 +1214,7 @@ void SkOpContour::dumpAll() {
|
| return;
|
| }
|
| const SkOpSegment* segment = &fHead;
|
| - PATH_OPS_DEBUG_CODE(fIndent = 0);
|
| + SkDEBUGCODE(fIndent = 0);
|
| indentDump();
|
| do {
|
| segment->dumpAll();
|
|
|