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()); }
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 }