blob: 85acb0e716ffde0fb79ce95c641367e8306ae04f [file] [log] [blame]
bsalomon18a2f9d2016-05-11 10:09:18 -07001/*
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
Greg Daniel604b1972017-05-15 13:50:35 -040025 sk_sp<const GrVkBackendContext> getVkBackendContext() {
26 return fVk;
27 }
28
bsalomon18a2f9d2016-05-11 10:09:18 -070029 bool isValid() const override { return NULL != this->vk(); }
30
bungeman6bd52842016-10-27 09:30:08 -070031 const GrVkInterface* vk() const { return fVk->fInterface.get(); }
bsalomon18a2f9d2016-05-11 10:09:18 -070032
33protected:
Mike Klein6ad6ba42016-09-27 10:52:35 -040034 VkTestContext(sk_sp<const GrVkBackendContext> vk) : fVk(std::move(vk)) {}
bsalomon18a2f9d2016-05-11 10:09:18 -070035
36 sk_sp<const GrVkBackendContext> fVk;
37
38private:
39 typedef TestContext INHERITED;
40};
41
42/**
43 * Creates Vk context object bound to the native Vk library.
44 */
Greg Daniel604b1972017-05-15 13:50:35 -040045VkTestContext* CreatePlatformVkTestContext(VkTestContext*);
bsalomon18a2f9d2016-05-11 10:09:18 -070046
47} // namespace sk_gpu_test
48
49#endif
50
51#endif