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

Side by Side Diff: gm/bleed.cpp

Issue 20806003: Plumb in "bleed" flag (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Addressed pipe-specific issues and updated to ToT Created 7 years, 4 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | include/core/SkCanvas.h » ('j') | include/core/SkCanvas.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "gm.h" 8 #include "gm.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 SkRect src = SkRect::MakeXYWH(1, 1, 110 SkRect src = SkRect::MakeXYWH(1, 1,
111 kSmallTextureSize-2, 111 kSmallTextureSize-2,
112 kSmallTextureSize-2); 112 kSmallTextureSize-2);
113 SkRect dst = SkRect::MakeXYWH(10, 10, 100, 100); 113 SkRect dst = SkRect::MakeXYWH(10, 10, 100, 100);
114 114
115 // first draw without bleeding 115 // first draw without bleeding
116 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint); 116 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint);
117 117
118 // then draw with bleeding 118 // then draw with bleeding
119 dst = SkRect::MakeXYWH(120, 10, 100, 100); 119 dst = SkRect::MakeXYWH(120, 10, 100, 100);
120 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint); 120 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint,
121 SkCanvas::kBleed_DrawBitmapRectFlag);
121 122
122 // Next test out the GPU's tiling of large textures 123 // Next test out the GPU's tiling of large textures
123 124
124 // first draw almost the whole thing 125 // first draw almost the whole thing
125 src = SkRect::MakeXYWH(1, 1, 126 src = SkRect::MakeXYWH(1, 1,
126 SkIntToScalar(fBitmapBig.width()-2), 127 SkIntToScalar(fBitmapBig.width()-2),
127 SkIntToScalar(fBitmapBig.height()-2)); 128 SkIntToScalar(fBitmapBig.height()-2));
128 dst = SkRect::MakeXYWH(10, 120, 100, 100); 129 dst = SkRect::MakeXYWH(10, 120, 100, 100);
129 130
130 // first without bleeding 131 // first without bleeding
131 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint); 132 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint);
132 133
133 // then with bleeding 134 // then with bleeding
134 dst = SkRect::MakeXYWH(120, 120, 100, 100); 135 dst = SkRect::MakeXYWH(120, 120, 100, 100);
135 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint); 136 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint,
137 SkCanvas::kBleed_DrawBitmapRectFlag);
136 138
137 // next draw ~1/4 of the bitmap 139 // next draw ~1/4 of the bitmap
138 src = SkRect::MakeXYWH(1, 1, 140 src = SkRect::MakeXYWH(1, 1,
139 SkIntToScalar(fBitmapBig.width()/2-1), 141 SkIntToScalar(fBitmapBig.width()/2-1),
140 SkIntToScalar(fBitmapBig.height()/2-1)); 142 SkIntToScalar(fBitmapBig.height()/2-1));
141 dst = SkRect::MakeXYWH(10, 230, 100, 100); 143 dst = SkRect::MakeXYWH(10, 230, 100, 100);
142 144
143 // first without bleeding 145 // first without bleeding
144 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint); 146 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint);
145 147
146 // then with bleeding 148 // then with bleeding
147 dst = SkRect::MakeXYWH(120, 230, 100, 100); 149 dst = SkRect::MakeXYWH(120, 230, 100, 100);
148 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint); 150 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint,
151 SkCanvas::kBleed_DrawBitmapRectFlag);
149 152
150 #if SK_SUPPORT_GPU 153 #if SK_SUPPORT_GPU
151 if (NULL != ctx) { 154 if (NULL != ctx) {
152 ctx->setMaxTextureSizeOverride(oldMaxTextureSize); 155 ctx->setMaxTextureSizeOverride(oldMaxTextureSize);
153 } 156 }
154 #endif 157 #endif
155 } 158 }
156 159
157 private: 160 private:
158 static const int kWidth = 230; 161 static const int kWidth = 230;
159 static const int kHeight = 340; 162 static const int kHeight = 340;
160 163
161 static const int kSmallTextureSize = 4; 164 static const int kSmallTextureSize = 4;
162 static const int kMaxTextureSize = 32; 165 static const int kMaxTextureSize = 32;
163 166
164 SkBitmap fBitmapSmall; 167 SkBitmap fBitmapSmall;
165 SkBitmap fBitmapBig; 168 SkBitmap fBitmapBig;
166 169
167 typedef GM INHERITED; 170 typedef GM INHERITED;
168 }; 171 };
169 172
170 DEF_GM( return new BleedGM(); ) 173 DEF_GM( return new BleedGM(); )
OLDNEW
« no previous file with comments | « no previous file | include/core/SkCanvas.h » ('j') | include/core/SkCanvas.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698