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