add --skvm and '!' to viewer to toggle using skvm blitters
Change-Id: I71b81e89a871d9bd96534f1fb8b88fe25045685c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278417
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 665da4a..3d51910 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -130,6 +130,7 @@
static DEFINE_bool(redraw, false, "Toggle continuous redraw.");
static DEFINE_bool(offscreen, false, "Force rendering to an offscreen surface.");
+static DEFINE_bool(skvm, false, "Try to use skvm blitters for raster.");
#ifndef SK_GL
static_assert(false, "viewer requires GL backend for raster.")
@@ -251,6 +252,8 @@
const char* kOFF = "OFF";
const char* kRefreshStateName = "Refresh";
+extern bool gUseSkVMBlitter;
+
Viewer::Viewer(int argc, char** argv, void* platformData)
: fCurrentSlide(-1)
, fRefresh(false)
@@ -299,6 +302,8 @@
SetResourcePath("/data/local/tmp/resources");
#endif
+ gUseSkVMBlitter = FLAGS_skvm;
+
ToolUtils::SetDefaultFontMgr();
initializeEventTracingForTools();
@@ -607,6 +612,11 @@
this->updateTitle();
fWindow->inval();
});
+ fCommands.addCommand('!', "SkVM", "Toggle SkVM", [this]() {
+ gUseSkVMBlitter = !gUseSkVMBlitter;
+ this->updateTitle();
+ fWindow->inval();
+ });
// set up slides
this->initSlides();
@@ -823,6 +833,9 @@
if (fDrawViaSerialize) {
title.append(" <serialize>");
}
+ if (gUseSkVMBlitter) {
+ title.append(" <skvm>");
+ }
SkPaintTitleUpdater paintTitle(&title);
auto paintFlag = [this, &paintTitle](bool SkPaintFields::* flag,