Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: gm/xfermodes.cpp

Issue 92453002: [PDF] Fixes the cases where SkPDFDevice::finishContentEntry is called with empty content. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Rebase Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « expectations/gm/ignored-tests.txt ('k') | src/pdf/SkPDFDevice.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/xfermodes.cpp
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 02cdd61927539c25f4d56456f44c863586016a55..6e1de3eb67bf5e5236facf7455ff2f9422f25971 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -12,7 +12,8 @@
namespace skiagm {
-static void make_bitmaps(int w, int h, SkBitmap* src, SkBitmap* dst) {
+static void make_bitmaps(int w, int h, SkBitmap* src, SkBitmap* dst,
+ SkBitmap* transparent) {
src->setConfig(SkBitmap::kARGB_8888_Config, w, h);
src->allocPixels();
src->eraseColor(SK_ColorTRANSPARENT);
@@ -41,6 +42,10 @@ static void make_bitmaps(int w, int h, SkBitmap* src, SkBitmap* dst) {
r.set(ww/3, hh/3, ww*19/20, hh*19/20);
c.drawRect(r, p);
}
+
+ transparent->setConfig(SkBitmap::kARGB_8888_Config, w, h);
+ transparent->allocPixels();
+ transparent->eraseColor(SK_ColorTRANSPARENT);
}
static uint16_t gData[] = { 0xFFFF, 0xCCCF, 0xCCCF, 0xFFFF };
@@ -59,13 +64,15 @@ class XfermodesGM : public GM {
kQuarterClear_SrcType = 0x10,
//! kQuarterClear_SrcType in a layer.
kQuarterClearInLayer_SrcType = 0x20,
+ //! A W/2xH/2 transparent image.
+ kSmallTransparentImage_SrcType = 0x40,
- kAll_SrcType = 0x3F, //!< All the source types.
+ kAll_SrcType = 0x7F, //!< All the source types.
kBasic_SrcType = 0x03, //!< Just basic source types.
};
SkBitmap fBG;
- SkBitmap fSrcB, fDstB;
+ SkBitmap fSrcB, fDstB, fTransparent;
/* The srcType argument indicates what to draw for the source part. Skia
* uses the implied shape of the drawing command and these modes
@@ -81,6 +88,10 @@ class XfermodesGM : public GM {
canvas->drawBitmapMatrix(fSrcB, m, &p);
p.setXfermode(mode);
switch (srcType) {
+ case kSmallTransparentImage_SrcType:
+ m.postScale(SK_ScalarHalf, SK_ScalarHalf, x, y);
+ canvas->drawBitmapMatrix(fTransparent, m, &p);
+ break;
case kQuarterClearInLayer_SrcType: {
SkRect bounds = SkRect::MakeXYWH(x, y, SkIntToScalar(W),
SkIntToScalar(H));
@@ -132,7 +143,7 @@ class XfermodesGM : public GM {
fBG.setConfig(SkBitmap::kARGB_4444_Config, 2, 2, 4, kOpaque_SkAlphaType);
fBG.setPixels(gData);
- make_bitmaps(W, H, &fSrcB, &fDstB);
+ make_bitmaps(W, H, &fSrcB, &fDstB, &fTransparent);
}
public:
@@ -146,7 +157,7 @@ protected:
}
virtual SkISize onISize() {
- return make_isize(1590, 640);
+ return make_isize(1990, 640);
}
virtual void onDraw(SkCanvas* canvas) {
« no previous file with comments | « expectations/gm/ignored-tests.txt ('k') | src/pdf/SkPDFDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698