• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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