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 isValid()25 bool isValid() const override { return NULL != this->vk(); } 26 vk()27 const GrVkInterface* vk() const { return fVk->fInterface.get(); } 28 29 protected: VkTestContext(sk_sp<const GrVkBackendContext> vk)30 VkTestContext(sk_sp<const GrVkBackendContext> vk) : fVk(std::move(vk)) {} 31 32 sk_sp<const GrVkBackendContext> fVk; 33 34 private: 35 typedef TestContext INHERITED; 36 }; 37 38 /** 39 * Creates Vk context object bound to the native Vk library. 40 */ 41 VkTestContext* CreatePlatformVkTestContext(); 42 43 } // namespace sk_gpu_test 44 45 #endif 46 47 #endif 48