1 /* 2 * Copyright 2016 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef VkTestContext_DEFINED 9 #define VkTestContext_DEFINED 10 11 #include "TestContext.h" 12 13 #ifdef SK_VULKAN 14 15 #include "vk/GrVkBackendContext.h" 16 17 namespace sk_gpu_test { 18 class VkTestContext : public TestContext { 19 public: backend()20 virtual GrBackend backend() override { return kVulkan_GrBackend; } backendContext()21 virtual GrBackendContext backendContext() override { 22 return reinterpret_cast<GrBackendContext>(fVk.get()); 23 } 24 getVkBackendContext()25 sk_sp<const GrVkBackendContext> getVkBackendContext() { 26 return fVk; 27 } 28 vk()29 const GrVkInterface* vk() const { return fVk->fInterface.get(); } 30 31 protected: VkTestContext(sk_sp<const GrVkBackendContext> vk)32 VkTestContext(sk_sp<const GrVkBackendContext> vk) : fVk(std::move(vk)) {} 33 34 sk_sp<const GrVkBackendContext> fVk; 35 36 private: 37 typedef TestContext INHERITED; 38 }; 39 40 /** 41 * Creates Vk context object bound to the native Vk library. 42 */ 43 VkTestContext* CreatePlatformVkTestContext(VkTestContext*); 44 45 } // namespace sk_gpu_test 46 47 #endif 48 49 #endif 50