Esempio n. 1
0
 void makeName() {
     fName = "rotated_rects";
     if (fAA) {
         fName.append("_aa");
     } else {
         fName.append("_bw");
     }
     if (fPerspective) {
         fName.append("_persp");
     }
     switch (fColorType) {
         case kConstantOpaque_ColorType:
             fName.append("_same_opaque");
             break;
         case kConstantTransparent_ColorType:
             fName.append("_same_transparent");
             break;
         case kChangingOpaque_ColorType:
             fName.append("_changing_opaque");
             break;
         case kChangingTransparent_ColorType:
             fName.append("_changing_transparent");
             break;
         case kAlternatingOpaqueAndTransparent_ColorType:
             fName.append("_alternating_transparent_and_opaque");
             break;
         case kShaderOpaque_ColorType:
             fName.append("_shader_opaque");
             break;
     }
     fName.appendf("_%s", to_lower(SkBlendMode_Name(fMode)).c_str());
 }
Esempio n. 2
0
void SkComposeShader::toString(SkString* str) const {
    str->append("SkComposeShader: (");

    str->append("dst: ");
    as_SB(fDst)->toString(str);
    str->append(" src: ");
    as_SB(fSrc)->toString(str);
    str->appendf(" mode: %s", SkBlendMode_Name(fMode));
    str->appendf(" lerpT: %g", fLerpT);

    this->INHERITED::toString(str);

    str->append(")");
}
DEF_TEST(SkRecordingAccuracyXfermode, reporter) {
#define FINEGRAIN 0
    const Drawer drawer;

    BitmapBackedCanvasStrategy golden(drawer.imageInfo());
    PictureStrategy picture(drawer.imageInfo());

#if !FINEGRAIN
    unsigned numErrors = 0;
    SkString errors;
#endif

    for (int iMode = 0; iMode < int(SkBlendMode::kLastMode); iMode++) {
        const SkRect& clip = SkRect::MakeXYWH(100, 0, 100, 100);
        SkBlendMode mode = SkBlendMode(iMode);

        const SkBitmap& goldenBM = golden.recordAndReplay(drawer, clip, mode);
        const SkBitmap& pictureBM = picture.recordAndReplay(drawer, clip, mode);

        size_t pixelsSize = goldenBM.computeByteSize();
        REPORTER_ASSERT(reporter, pixelsSize == pictureBM.computeByteSize());

        // The pixel arrays should match.
#if FINEGRAIN
        REPORTER_ASSERT(reporter,
                        0 == memcmp(goldenBM.getPixels(), pictureBM.getPixels(), pixelsSize));
#else
        if (memcmp(goldenBM.getPixels(), pictureBM.getPixels(), pixelsSize)) {
            numErrors++;
            errors.appendf("For SkXfermode %d %s:    SkPictureRecorder bitmap is wrong\n",
                           iMode, SkBlendMode_Name(mode));
        }
#endif
    }

#if !FINEGRAIN
    REPORTER_ASSERT(reporter, 0 == numErrors, errors.c_str());
#endif
}