From 746b792a9aad1230ab69158a51c49b2e5437d95b Mon Sep 17 00:00:00 2001 From: jvanverth Date: Wed, 15 Jun 2016 13:44:15 -0700 Subject: [PATCH] Enable viewer in non-Vulkan builds BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067023002 Review-Url: https://codereview.chromium.org/2067023002 --- gyp/most.gyp | 5 ++--- gyp/viewer.gyp | 4 ++++ tools/viewer/Viewer.cpp | 7 +++++-- tools/viewer/sk_app/Window.cpp | 2 +- tools/viewer/sk_app/Window.h | 2 ++ tools/viewer/sk_app/android/Window_android.cpp | 6 +++++- tools/viewer/sk_app/unix/GLWindowContext_unix.cpp | 1 - tools/viewer/sk_app/unix/Window_unix.cpp | 5 ++++- tools/viewer/sk_app/win/Window_win.cpp | 5 ++++- 9 files changed, 27 insertions(+), 10 deletions(-) diff --git a/gyp/most.gyp b/gyp/most.gyp index 47c0d804da..eb9f6c00f4 100644 --- a/gyp/most.gyp +++ b/gyp/most.gyp @@ -27,7 +27,6 @@ 'pathops_skpclip.gyp:*', 'dm.gyp:dm', 'fuzz.gyp:fuzz', - 'viewer.gyp:viewer', ], 'conditions': [ [ 'skia_gpu == 0', { @@ -62,8 +61,8 @@ 'skiaserve.gyp:skiaserve', ], }], - [ 'skia_vulkan == 0 or (skia_os != "win" and skia_os != "android")', { - 'dependencies!': [ + [ 'skia_os in ["win", "linux", "android"]', { + 'dependencies': [ 'viewer.gyp:viewer', ], }], diff --git a/gyp/viewer.gyp b/gyp/viewer.gyp index 1013e070ae..0b918d7c1f 100644 --- a/gyp/viewer.gyp +++ b/gyp/viewer.gyp @@ -79,6 +79,10 @@ 'sources/': [ ['exclude', '_win.(h|cpp)$'], ], }], + ['skia_vulkan == 0', { + 'sources/': [ ['exclude', 'Vulkan'] + ], + }], ], }, ], diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 7052a3ac79..f44e1aac6b 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -66,7 +66,9 @@ DEFINE_bool(vulkan, true, "Run with Vulkan."); const char *kBackendTypeStrings[sk_app::Window::kBackendTypeCount] = { " [OpenGL]", +#ifdef SK_VULKAN " [Vulkan]", +#endif " [Raster]" }; @@ -86,7 +88,7 @@ Viewer::Viewer(int argc, char** argv, void* platformData) : fCurrentMeasurement(0) , fDisplayStats(false) , fSplitScreen(false) - , fBackendType(sk_app::Window::kVulkan_BackendType) + , fBackendType(sk_app::Window::kNativeGL_BackendType) , fZoomCenterX(0.0f) , fZoomCenterY(0.0f) , fZoomLevel(0.0f) @@ -102,9 +104,10 @@ Viewer::Viewer(int argc, char** argv, void* platformData) SkCommandLineFlags::Parse(argc, argv); +#ifdef SK_VULKAN fBackendType = FLAGS_vulkan ? sk_app::Window::kVulkan_BackendType : sk_app::Window::kNativeGL_BackendType; - +#endif fWindow = Window::CreateNativeWindow(platformData); fWindow->attach(fBackendType, DisplayParams()); diff --git a/tools/viewer/sk_app/Window.cpp b/tools/viewer/sk_app/Window.cpp index 7ec8baae36..9d514f0865 100644 --- a/tools/viewer/sk_app/Window.cpp +++ b/tools/viewer/sk_app/Window.cpp @@ -9,7 +9,7 @@ #include "SkSurface.h" #include "SkCanvas.h" -#include "VulkanWindowContext.h" +#include "WindowContext.h" namespace sk_app { diff --git a/tools/viewer/sk_app/Window.h b/tools/viewer/sk_app/Window.h index 8b1378a80f..a68cbbbb8e 100644 --- a/tools/viewer/sk_app/Window.h +++ b/tools/viewer/sk_app/Window.h @@ -41,7 +41,9 @@ public: enum BackendType { kNativeGL_BackendType, +#ifdef SK_VULKAN kVulkan_BackendType, +#endif kRaster_BackendType, kLast_BackendType = kRaster_BackendType diff --git a/tools/viewer/sk_app/android/Window_android.cpp b/tools/viewer/sk_app/android/Window_android.cpp index 94ba9b00df..60d89eb3ec 100644 --- a/tools/viewer/sk_app/android/Window_android.cpp +++ b/tools/viewer/sk_app/android/Window_android.cpp @@ -7,7 +7,9 @@ #include "Window_android.h" #include "../GLWindowContext.h" +#ifdef SK_VULKAN #include "../VulkanWindowContext.h" +#endif #include "../RasterWindowContext.h" namespace sk_app { @@ -62,15 +64,17 @@ void Window_android::initDisplay(ANativeWindow* window) { platformData.fNativeWindow = window; switch (fBackendType) { case kNativeGL_BackendType: + default: fWindowContext = GLWindowContext::Create((void*)&platformData, fDisplayParams); break; case kRaster_BackendType: fWindowContext = RasterWindowContext::Create((void*)&platformData, fDisplayParams); break; +#ifdef SK_VULKAN case kVulkan_BackendType: - default: fWindowContext = VulkanWindowContext::Create((void*)&platformData, fDisplayParams); break; +#endif } } diff --git a/tools/viewer/sk_app/unix/GLWindowContext_unix.cpp b/tools/viewer/sk_app/unix/GLWindowContext_unix.cpp index 19f9731f52..cde1eb2b5c 100644 --- a/tools/viewer/sk_app/unix/GLWindowContext_unix.cpp +++ b/tools/viewer/sk_app/unix/GLWindowContext_unix.cpp @@ -90,7 +90,6 @@ void GLWindowContext_unix::onDestroyContext() { void GLWindowContext_unix::onSwapBuffers() { if (fDisplay && fGLContext) { - printf("swapping\n"); glXSwapBuffers(fDisplay, fWindow); } } diff --git a/tools/viewer/sk_app/unix/Window_unix.cpp b/tools/viewer/sk_app/unix/Window_unix.cpp index 431f156491..c4729263ec 100644 --- a/tools/viewer/sk_app/unix/Window_unix.cpp +++ b/tools/viewer/sk_app/unix/Window_unix.cpp @@ -10,7 +10,9 @@ #include "SkUtils.h" #include "Timer.h" #include "../GLWindowContext.h" +#ifdef SK_VULKAN #include "../VulkanWindowContext.h" +#endif #include "Window_unix.h" extern "C" { @@ -276,10 +278,11 @@ bool Window_unix::attach(BackendType attachType, const DisplayParams& params) { platformData.fWindow = fWindow; platformData.fVisualInfo = fVisualInfo; switch (attachType) { +#ifdef SK_VULKAN case kVulkan_BackendType: fWindowContext = VulkanWindowContext::Create((void*)&platformData, params); break; - +#endif case kNativeGL_BackendType: default: fWindowContext = GLWindowContext::Create((void*)&platformData, params); diff --git a/tools/viewer/sk_app/win/Window_win.cpp b/tools/viewer/sk_app/win/Window_win.cpp index f9762a8787..03537caa45 100644 --- a/tools/viewer/sk_app/win/Window_win.cpp +++ b/tools/viewer/sk_app/win/Window_win.cpp @@ -13,7 +13,9 @@ #include "SkUtils.h" #include "../GLWindowContext.h" +#ifdef SK_VULKAN #include "../VulkanWindowContext.h" +#endif namespace sk_app { @@ -275,10 +277,11 @@ bool Window_win::attach(BackendType attachType, const DisplayParams& params) { default: fWindowContext = GLWindowContext::Create((void*)&platformData, params); break; - +#ifdef SK_VULKAN case kVulkan_BackendType: fWindowContext = VulkanWindowContext::Create((void*)&platformData, params); break; +#endif } return (SkToBool(fWindowContext));