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

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

Issue 416333003: Revert of skia/ext: Early out from analysis when we have more than 1 draw op. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | « skia/ext/analysis_canvas.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "skia/ext/analysis_canvas.h" 6 #include "skia/ext/analysis_canvas.h"
7 #include "skia/ext/refptr.h" 7 #include "skia/ext/refptr.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "third_party/skia/include/core/SkShader.h" 9 #include "third_party/skia/include/core/SkShader.h"
10 #include "third_party/skia/include/effects/SkOffsetImageFilter.h" 10 #include "third_party/skia/include/effects/SkOffsetImageFilter.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 273
274 TransparentFill(canvas); 274 TransparentFill(canvas);
275 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 275 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
276 EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 276 EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
277 277
278 SolidColorFill(canvas); 278 SolidColorFill(canvas);
279 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 279 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
280 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 280 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
281 } 281 }
282 282
283 TEST(AnalysisCanvasTest, HasText) {
284 int width = 200;
285 int height = 100;
286
287 const char* text = "A";
288 size_t byteLength = 1;
289
290 SkPoint point = SkPoint::Make(SkIntToScalar(25), SkIntToScalar(25));
291 SkPath path;
292 path.moveTo(point);
293 path.lineTo(SkIntToScalar(75), SkIntToScalar(75));
294
295 SkPaint paint;
296 paint.setColor(SK_ColorGRAY);
297 paint.setTextSize(SkIntToScalar(10));
298
299 {
300 skia::AnalysisCanvas canvas(width, height);
301 // Test after initialization.
302 EXPECT_FALSE(canvas.HasText());
303 // Test drawing anything other than text.
304 canvas.drawRect(SkRect::MakeWH(width/2, height), paint);
305 EXPECT_FALSE(canvas.HasText());
306 }
307 {
308 // Test SkCanvas::drawText.
309 skia::AnalysisCanvas canvas(width, height);
310 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
311 EXPECT_TRUE(canvas.HasText());
312 }
313 {
314 // Test SkCanvas::drawPosText.
315 skia::AnalysisCanvas canvas(width, height);
316 canvas.drawPosText(text, byteLength, &point, paint);
317 EXPECT_TRUE(canvas.HasText());
318 }
319 {
320 // Test SkCanvas::drawPosTextH.
321 skia::AnalysisCanvas canvas(width, height);
322 canvas.drawPosTextH(text, byteLength, &point.fX, point.fY, paint);
323 EXPECT_TRUE(canvas.HasText());
324 }
325 {
326 // Test SkCanvas::drawTextOnPathHV.
327 skia::AnalysisCanvas canvas(width, height);
328 canvas.drawTextOnPathHV(text, byteLength, path, point.fX, point.fY, paint);
329 EXPECT_TRUE(canvas.HasText());
330 }
331 {
332 // Test SkCanvas::drawTextOnPath.
333 skia::AnalysisCanvas canvas(width, height);
334 canvas.drawTextOnPath(text, byteLength, path, NULL, paint);
335 EXPECT_TRUE(canvas.HasText());
336 }
337 {
338 // Text under opaque rect.
339 skia::AnalysisCanvas canvas(width, height);
340 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
341 EXPECT_TRUE(canvas.HasText());
342 canvas.drawRect(SkRect::MakeWH(width, height), paint);
343 EXPECT_FALSE(canvas.HasText());
344 }
345 {
346 // Text under translucent rect.
347 skia::AnalysisCanvas canvas(width, height);
348 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
349 EXPECT_TRUE(canvas.HasText());
350 SkPaint translucentPaint;
351 translucentPaint.setColor(0x88FFFFFF);
352 canvas.drawRect(SkRect::MakeWH(width, height), translucentPaint);
353 EXPECT_TRUE(canvas.HasText());
354 }
355 {
356 // Text under rect in clear mode.
357 skia::AnalysisCanvas canvas(width, height);
358 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
359 EXPECT_TRUE(canvas.HasText());
360 SkPaint clearModePaint;
361 clearModePaint.setXfermodeMode(SkXfermode::kClear_Mode);
362 canvas.drawRect(SkRect::MakeWH(width, height), clearModePaint);
363 EXPECT_FALSE(canvas.HasText());
364 }
365 {
366 // Clear.
367 skia::AnalysisCanvas canvas(width, height);
368 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
369 EXPECT_TRUE(canvas.HasText());
370 canvas.clear(SK_ColorGRAY);
371 EXPECT_FALSE(canvas.HasText());
372 }
373 {
374 // Text inside clip region.
375 skia::AnalysisCanvas canvas(width, height);
376 canvas.clipRect(SkRect::MakeWH(100, 100));
377 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
378 EXPECT_TRUE(canvas.HasText());
379 }
380 {
381 // Text outside clip region.
382 skia::AnalysisCanvas canvas(width, height);
383 canvas.clipRect(SkRect::MakeXYWH(100, 0, 100, 100));
384 canvas.drawText(text, byteLength, point.fX, point.fY, paint);
385 // Analysis device does not do any clipping.
386 // So even when text is outside the clip region,
387 // it is marked as having the text.
388 // TODO(alokp): We may be able to do some trivial rejection.
389 EXPECT_TRUE(canvas.HasText());
390 }
391 }
392
283 } // namespace skia 393 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/analysis_canvas.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698