Add Metal context to Viewer.
Bug: skia:8737
Change-Id: I5c4c839bcf39f2cd3a9a32d005bf4bdb7c42e6a5
Reviewed-on: https://skia-review.googlesource.com/c/187925
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 75730ca..945b07f 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -65,6 +65,8 @@
#ifdef SK_VULKAN
# define BACKENDS_STR "\"sw\", \"gl\", and \"vk\""
+#elif defined(SK_METAL) && defined(SK_BUILD_FOR_MAC)
+# define BACKENDS_STR "\"sw\", \"gl\", and \"mtl\""
#else
# define BACKENDS_STR "\"sw\" and \"gl\""
#endif
@@ -87,6 +89,9 @@
#ifdef SK_VULKAN
"Vulkan",
#endif
+#if defined(SK_METAL) && defined(SK_BUILD_FOR_MAC)
+ "Metal",
+#endif
"Raster"
};
@@ -101,6 +106,11 @@
return sk_app::Window::kANGLE_BackendType;
} else
#endif
+#if defined(SK_METAL) && defined(SK_BUILD_FOR_MAC)
+ if (0 == strcmp(str, "mtl")) {
+ return sk_app::Window::kMetal_BackendType;
+ } else
+#endif
if (0 == strcmp(str, "gl")) {
return sk_app::Window::kNativeGL_BackendType;
} else if (0 == strcmp(str, "sw")) {
@@ -1511,6 +1521,10 @@
ImGui::SameLine();
ImGui::RadioButton("Vulkan", &newBackend, sk_app::Window::kVulkan_BackendType);
#endif
+#if defined(SK_METAL) && defined(SK_BUILD_FOR_MAC)
+ ImGui::SameLine();
+ ImGui::RadioButton("Metal", &newBackend, sk_app::Window::kMetal_BackendType);
+#endif
if (newBackend != fBackendType) {
fDeferredActions.push_back([=]() {
this->setBackend(static_cast<sk_app::Window::BackendType>(newBackend));