• 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 
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