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

Unified Diff: Source/web/tests/sim/SimCanvas.cpp

Issue 1329553004: Add a FOUC painting test. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix build. Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/web/tests/sim/SimCanvas.h ('k') | Source/web/tests/sim/SimCompositor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/tests/sim/SimCanvas.cpp
diff --git a/Source/web/tests/sim/SimCanvas.cpp b/Source/web/tests/sim/SimCanvas.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..40ca1f80716ac6c46b70f142d612ed6c7b485e26
--- /dev/null
+++ b/Source/web/tests/sim/SimCanvas.cpp
@@ -0,0 +1,113 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+#include "config.h"
+
+#include "web/tests/sim/SimCanvas.h"
+
+#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/include/core/SkPath.h"
+#include "third_party/skia/include/core/SkRRect.h"
+#include "third_party/skia/include/core/SkRect.h"
+
+namespace blink {
+
+static int s_depth = 0;
+
+class DrawScope {
+public:
+ DrawScope() { ++s_depth; }
+ ~DrawScope() { --s_depth; }
+};
+
+SimCanvas::SimCanvas(int width, int height)
+ : SkCanvas(width, height)
+{
+}
+
+void SimCanvas::addCommand(CommandType type, RGBA32 color)
+{
+ if (s_depth > 1)
+ return;
+ Command command = {type, color};
+ m_commands.append(command);
+}
+
+void SimCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Rect, paint.getColor());
+ SkCanvas::onDrawRect(rect, paint);
+}
+
+void SimCanvas::onDrawOval(const SkRect& oval, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Shape, paint.getColor());
+ SkCanvas::onDrawOval(oval, paint);
+}
+
+void SimCanvas::onDrawRRect(const SkRRect& rrect, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Shape, paint.getColor());
+ SkCanvas::onDrawRRect(rrect, paint);
+}
+
+void SimCanvas::onDrawPath(const SkPath& path, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Shape, paint.getColor());
+ SkCanvas::onDrawPath(path, paint);
+}
+
+void SimCanvas::onDrawImage(const SkImage* image, SkScalar left, SkScalar top, const SkPaint* paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Image);
+ SkCanvas::onDrawImage(image, left, top, paint);
+}
+
+void SimCanvas::onDrawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst, const SkPaint* paint, SrcRectConstraint constraint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Image);
+ SkCanvas::onDrawImageRect(image, src, dst, paint, constraint);
+}
+
+void SimCanvas::onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Text, paint.getColor());
+ SkCanvas::onDrawText(text, byteLength, x, y, paint);
+}
+
+void SimCanvas::onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[], const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Text, paint.getColor());
+ SkCanvas::onDrawPosText(text, byteLength, pos, paint);
+}
+
+void SimCanvas::onDrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], SkScalar constY, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Text, paint.getColor());
+ SkCanvas::onDrawPosTextH(text, byteLength, xpos, constY, paint);
+}
+
+void SimCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, const SkMatrix* matrix, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Text, paint.getColor());
+ SkCanvas::onDrawTextOnPath(text, byteLength, path, matrix, paint);
+}
+
+void SimCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint)
+{
+ DrawScope scope;
+ addCommand(CommandType::Text, paint.getColor());
+ SkCanvas::onDrawTextBlob(blob, x, y, paint);
+}
+
+} // namespace blink
« no previous file with comments | « Source/web/tests/sim/SimCanvas.h ('k') | Source/web/tests/sim/SimCompositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698