aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/viewer/sk_app/android/VulkanWindowContext_android.cpp')
-rw-r--r--tools/viewer/sk_app/android/VulkanWindowContext_android.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp b/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp
index b50e152291..a7d8aa7ea1 100644
--- a/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp
+++ b/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp
@@ -9,15 +9,22 @@
#include "WindowContextFactory_android.h"
#include "../VulkanWindowContext.h"
+#include "vk/VkTestUtils.h"
+
namespace sk_app {
namespace window_context_factory {
WindowContext* NewVulkanForAndroid(ANativeWindow* window, const DisplayParams& params) {
- auto createVkSurface = [window] (VkInstance instance) -> VkSurfaceKHR {
+ PFN_vkGetInstanceProcAddr instProc;
+ PFN_vkGetDeviceProcAddr devProc;
+ if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc, &devProc)) {
+ return nullptr;
+ }
+
+ auto createVkSurface = [window, instProc] (VkInstance instance) -> VkSurfaceKHR {
PFN_vkCreateAndroidSurfaceKHR createAndroidSurfaceKHR =
- (PFN_vkCreateAndroidSurfaceKHR)vkGetInstanceProcAddr(instance,
- "vkCreateAndroidSurfaceKHR");
+ (PFN_vkCreateAndroidSurfaceKHR) instProc(instance, "vkCreateAndroidSurfaceKHR");
if (!window) {
return VK_NULL_HANDLE;
@@ -38,7 +45,8 @@ WindowContext* NewVulkanForAndroid(ANativeWindow* window, const DisplayParams& p
auto canPresent = [](VkInstance, VkPhysicalDevice, uint32_t) { return true; };
- WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent);
+ WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent,
+ instProc, devProc);
if (!ctx->isValid()) {
delete ctx;
return nullptr;