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

Side by Side Diff: skia/ext/platform_canvas_unittest.cc

Issue 11138024: Simplify platform_canvas.h by recognizing that PlatformCanvas does not actually extend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 1 month 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 | « skia/ext/platform_canvas_skia.cc ('k') | skia/ext/platform_canvas_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // TODO(awalker): clean up the const/non-const reference handling in this test 5 // TODO(awalker): clean up the const/non-const reference handling in this test
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #if defined(OS_MACOSX) 9 #if defined(OS_MACOSX)
10 #import <ApplicationServices/ApplicationServices.h> 10 #import <ApplicationServices/ApplicationServices.h>
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 187
188 // Radius used by some tests to draw a rounded-corner rectangle. 188 // Radius used by some tests to draw a rounded-corner rectangle.
189 const SkScalar kRadius = 2.0; 189 const SkScalar kRadius = 2.0;
190 190
191 } 191 }
192 192
193 // This just checks that our checking code is working properly, it just uses 193 // This just checks that our checking code is working properly, it just uses
194 // regular skia primitives. 194 // regular skia primitives.
195 TEST(PlatformCanvas, SkLayer) { 195 TEST(PlatformCanvas, SkLayer) {
196 // Create the canvas initialized to opaque white. 196 // Create the canvas initialized to opaque white.
197 PlatformCanvas canvas(16, 16, true); 197 ScopedPlatformCanvas canvas(16, 16, true);
198 canvas.drawColor(SK_ColorWHITE); 198 canvas->drawColor(SK_ColorWHITE);
199 199
200 // Make a layer and fill it completely to make sure that the bounds are 200 // Make a layer and fill it completely to make sure that the bounds are
201 // correct. 201 // correct.
202 { 202 {
203 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 203 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
204 canvas.drawColor(SK_ColorBLACK); 204 canvas->drawColor(SK_ColorBLACK);
205 } 205 }
206 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX, kLayerY, kLayerW, kLayerH)); 206 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX, kLayerY, kLayerW, kLayerH));
207 } 207 }
208 208
209 #if !defined(USE_AURA) // http://crbug.com/154358 209 #if !defined(USE_AURA) // http://crbug.com/154358
210 210
211 // Test native clipping. 211 // Test native clipping.
212 TEST(PlatformCanvas, ClipRegion) { 212 TEST(PlatformCanvas, ClipRegion) {
213 // Initialize a white canvas 213 // Initialize a white canvas
214 PlatformCanvas canvas(16, 16, true); 214 ScopedPlatformCanvas canvas(16, 16, true);
215 canvas.drawColor(SK_ColorWHITE); 215 canvas->drawColor(SK_ColorWHITE);
216 EXPECT_TRUE(VerifyCanvasColor(canvas, SK_ColorWHITE)); 216 EXPECT_TRUE(VerifyCanvasColor(*canvas, SK_ColorWHITE));
217 217
218 // Test that initially the canvas has no clip region, by filling it 218 // Test that initially the canvas has no clip region, by filling it
219 // with a black rectangle. 219 // with a black rectangle.
220 // Note: Don't use LayerSaver, since internally it sets a clip region. 220 // Note: Don't use LayerSaver, since internally it sets a clip region.
221 DrawNativeRect(canvas, 0, 0, 16, 16); 221 DrawNativeRect(*canvas, 0, 0, 16, 16);
222 EXPECT_TRUE(VerifyCanvasColor(canvas, SK_ColorBLACK)); 222 EXPECT_TRUE(VerifyCanvasColor(*canvas, SK_ColorBLACK));
223 223
224 // Test that intersecting disjoint clip rectangles sets an empty clip region 224 // Test that intersecting disjoint clip rectangles sets an empty clip region
225 canvas.drawColor(SK_ColorWHITE); 225 canvas->drawColor(SK_ColorWHITE);
226 EXPECT_TRUE(VerifyCanvasColor(canvas, SK_ColorWHITE)); 226 EXPECT_TRUE(VerifyCanvasColor(*canvas, SK_ColorWHITE));
227 { 227 {
228 LayerSaver layer(canvas, 0, 0, 16, 16); 228 LayerSaver layer(*canvas, 0, 0, 16, 16);
229 AddClip(canvas, 2, 3, 4, 5); 229 AddClip(*canvas, 2, 3, 4, 5);
230 AddClip(canvas, 4, 9, 10, 10); 230 AddClip(*canvas, 4, 9, 10, 10);
231 DrawNativeRect(canvas, 0, 0, 16, 16); 231 DrawNativeRect(*canvas, 0, 0, 16, 16);
232 } 232 }
233 EXPECT_TRUE(VerifyCanvasColor(canvas, SK_ColorWHITE)); 233 EXPECT_TRUE(VerifyCanvasColor(*canvas, SK_ColorWHITE));
234 } 234 }
235 235
236 #endif // !defined(USE_AURA) 236 #endif // !defined(USE_AURA)
237 237
238 // Test the layers get filled properly by native rendering. 238 // Test the layers get filled properly by native rendering.
239 TEST(PlatformCanvas, FillLayer) { 239 TEST(PlatformCanvas, FillLayer) {
240 // Create the canvas initialized to opaque white. 240 // Create the canvas initialized to opaque white.
241 PlatformCanvas canvas(16, 16, true); 241 ScopedPlatformCanvas canvas(16, 16, true);
242 242
243 // Make a layer and fill it completely to make sure that the bounds are 243 // Make a layer and fill it completely to make sure that the bounds are
244 // correct. 244 // correct.
245 canvas.drawColor(SK_ColorWHITE); 245 canvas->drawColor(SK_ColorWHITE);
246 { 246 {
247 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 247 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
248 DrawNativeRect(canvas, 0, 0, 100, 100); 248 DrawNativeRect(*canvas, 0, 0, 100, 100);
249 #if defined(OS_WIN) 249 #if defined(OS_WIN)
250 MakeOpaque(&canvas, 0, 0, 100, 100); 250 MakeOpaque(canvas, 0, 0, 100, 100);
251 #endif 251 #endif
252 } 252 }
253 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX, kLayerY, kLayerW, kLayerH)); 253 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX, kLayerY, kLayerW, kLayerH));
254 254
255 // Make a layer and fill it partially to make sure the translation is correct. 255 // Make a layer and fill it partially to make sure the translation is correct.
256 canvas.drawColor(SK_ColorWHITE); 256 canvas->drawColor(SK_ColorWHITE);
257 { 257 {
258 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 258 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
259 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 259 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
260 #if defined(OS_WIN) 260 #if defined(OS_WIN)
261 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); 261 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH);
262 #endif 262 #endif
263 } 263 }
264 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 264 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
265 265
266 // Add a clip on the layer and fill to make sure clip is correct. 266 // Add a clip on the layer and fill to make sure clip is correct.
267 canvas.drawColor(SK_ColorWHITE); 267 canvas->drawColor(SK_ColorWHITE);
268 { 268 {
269 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 269 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
270 canvas.save(); 270 canvas->save();
271 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 271 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
272 DrawNativeRect(canvas, 0, 0, 100, 100); 272 DrawNativeRect(*canvas, 0, 0, 100, 100);
273 #if defined(OS_WIN) 273 #if defined(OS_WIN)
274 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); 274 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH);
275 #endif 275 #endif
276 canvas.restore(); 276 canvas->restore();
277 } 277 }
278 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 278 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
279 279
280 // Add a clip and then make the layer to make sure the clip is correct. 280 // Add a clip and then make the layer to make sure the clip is correct.
281 canvas.drawColor(SK_ColorWHITE); 281 canvas->drawColor(SK_ColorWHITE);
282 canvas.save(); 282 canvas->save();
283 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 283 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
284 { 284 {
285 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 285 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
286 DrawNativeRect(canvas, 0, 0, 100, 100); 286 DrawNativeRect(*canvas, 0, 0, 100, 100);
287 #if defined(OS_WIN) 287 #if defined(OS_WIN)
288 MakeOpaque(&canvas, 0, 0, 100, 100); 288 MakeOpaque(canvas, 0, 0, 100, 100);
289 #endif 289 #endif
290 } 290 }
291 canvas.restore(); 291 canvas->restore();
292 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 292 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
293 } 293 }
294 294
295 #if !defined(USE_AURA) // http://crbug.com/154358 295 #if !defined(USE_AURA) // http://crbug.com/154358
296 296
297 // Test that translation + make layer works properly. 297 // Test that translation + make layer works properly.
298 TEST(PlatformCanvas, TranslateLayer) { 298 TEST(PlatformCanvas, TranslateLayer) {
299 // Create the canvas initialized to opaque white. 299 // Create the canvas initialized to opaque white.
300 PlatformCanvas canvas(16, 16, true); 300 ScopedPlatformCanvas canvas(16, 16, true);
301 301
302 // Make a layer and fill it completely to make sure that the bounds are 302 // Make a layer and fill it completely to make sure that the bounds are
303 // correct. 303 // correct.
304 canvas.drawColor(SK_ColorWHITE); 304 canvas->drawColor(SK_ColorWHITE);
305 canvas.save(); 305 canvas->save();
306 canvas.translate(1, 1); 306 canvas->translate(1, 1);
307 { 307 {
308 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 308 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
309 DrawNativeRect(canvas, 0, 0, 100, 100); 309 DrawNativeRect(*canvas, 0, 0, 100, 100);
310 #if defined(OS_WIN) 310 #if defined(OS_WIN)
311 MakeOpaque(&canvas, 0, 0, 100, 100); 311 MakeOpaque(canvas, 0, 0, 100, 100);
312 #endif 312 #endif
313 } 313 }
314 canvas.restore(); 314 canvas->restore();
315 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX + 1, kLayerY + 1, 315 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX + 1, kLayerY + 1,
316 kLayerW, kLayerH)); 316 kLayerW, kLayerH));
317 317
318 // Translate then make the layer. 318 // Translate then make the layer.
319 canvas.drawColor(SK_ColorWHITE); 319 canvas->drawColor(SK_ColorWHITE);
320 canvas.save(); 320 canvas->save();
321 canvas.translate(1, 1); 321 canvas->translate(1, 1);
322 { 322 {
323 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 323 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
324 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 324 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
325 #if defined(OS_WIN) 325 #if defined(OS_WIN)
326 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); 326 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH);
327 #endif 327 #endif
328 } 328 }
329 canvas.restore(); 329 canvas->restore();
330 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, 330 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1,
331 kInnerW, kInnerH)); 331 kInnerW, kInnerH));
332 332
333 // Make the layer then translate. 333 // Make the layer then translate.
334 canvas.drawColor(SK_ColorWHITE); 334 canvas->drawColor(SK_ColorWHITE);
335 canvas.save(); 335 canvas->save();
336 { 336 {
337 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 337 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
338 canvas.translate(1, 1); 338 canvas->translate(1, 1);
339 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 339 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
340 #if defined(OS_WIN) 340 #if defined(OS_WIN)
341 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); 341 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH);
342 #endif 342 #endif
343 } 343 }
344 canvas.restore(); 344 canvas->restore();
345 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, 345 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1,
346 kInnerW, kInnerH)); 346 kInnerW, kInnerH));
347 347
348 // Translate both before and after, and have a clip. 348 // Translate both before and after, and have a clip.
349 canvas.drawColor(SK_ColorWHITE); 349 canvas->drawColor(SK_ColorWHITE);
350 canvas.save(); 350 canvas->save();
351 canvas.translate(1, 1); 351 canvas->translate(1, 1);
352 { 352 {
353 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 353 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
354 canvas.drawColor(SK_ColorWHITE); 354 canvas->drawColor(SK_ColorWHITE);
355 canvas.translate(1, 1); 355 canvas->translate(1, 1);
356 AddClip(canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1); 356 AddClip(*canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1);
357 DrawNativeRect(canvas, 0, 0, 100, 100); 357 DrawNativeRect(*canvas, 0, 0, 100, 100);
358 #if defined(OS_WIN) 358 #if defined(OS_WIN)
359 MakeOpaque(&canvas, kLayerX, kLayerY, kLayerW, kLayerH); 359 MakeOpaque(canvas, kLayerX, kLayerY, kLayerW, kLayerH);
360 #endif 360 #endif
361 } 361 }
362 canvas.restore(); 362 canvas->restore();
363 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 3, kInnerY + 3, 363 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 3, kInnerY + 3,
364 kInnerW - 1, kInnerH - 1)); 364 kInnerW - 1, kInnerH - 1));
365 365
366 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?), 366 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?),
367 // modify test and remove this guard. 367 // modify test and remove this guard.
368 #if !defined(OS_MACOSX) 368 #if !defined(OS_MACOSX)
369 // Translate both before and after, and have a path clip. 369 // Translate both before and after, and have a path clip.
370 canvas.drawColor(SK_ColorWHITE); 370 canvas->drawColor(SK_ColorWHITE);
371 canvas.save(); 371 canvas->save();
372 canvas.translate(1, 1); 372 canvas->translate(1, 1);
373 { 373 {
374 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 374 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
375 canvas.drawColor(SK_ColorWHITE); 375 canvas->drawColor(SK_ColorWHITE);
376 canvas.translate(1, 1); 376 canvas->translate(1, 1);
377 377
378 SkPath path; 378 SkPath path;
379 SkRect rect; 379 SkRect rect;
380 rect.iset(kInnerX - 1, kInnerY - 1, 380 rect.iset(kInnerX - 1, kInnerY - 1,
381 kInnerX + kInnerW, kInnerY + kInnerH); 381 kInnerX + kInnerW, kInnerY + kInnerH);
382 path.addRoundRect(rect, kRadius, kRadius); 382 path.addRoundRect(rect, kRadius, kRadius);
383 canvas.clipPath(path); 383 canvas->clipPath(path);
384 384
385 DrawNativeRect(canvas, 0, 0, 100, 100); 385 DrawNativeRect(*canvas, 0, 0, 100, 100);
386 #if defined(OS_WIN) 386 #if defined(OS_WIN)
387 MakeOpaque(&canvas, kLayerX, kLayerY, kLayerW, kLayerH); 387 MakeOpaque(canvas, kLayerX, kLayerY, kLayerW, kLayerH);
388 #endif 388 #endif
389 } 389 }
390 canvas.restore(); 390 canvas->restore();
391 EXPECT_TRUE(VerifyRoundedRect(canvas, SK_ColorWHITE, SK_ColorBLACK, 391 EXPECT_TRUE(VerifyRoundedRect(*canvas, SK_ColorWHITE, SK_ColorBLACK,
392 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); 392 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH));
393 #endif 393 #endif
394 } 394 }
395 395
396 #endif // #if !defined(USE_AURA) 396 #endif // #if !defined(USE_AURA)
397 397
398 } // namespace skia 398 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/platform_canvas_skia.cc ('k') | skia/ext/platform_canvas_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698