blob: e25b954b15ed7a39302f3c15f2aeea44fb624530 [file] [log] [blame]
Greg Daniel9ed1a2c2018-10-18 12:43:25 -04001/*
2 * Copyright 2018 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 GrBackendDrawableInfo_DEFINED
9#define GrBackendDrawableInfo_DEFINED
10
11#include "GrTypes.h"
12
13#include "vk/GrVkTypes.h"
14
15class SK_API GrBackendDrawableInfo {
16public:
17 // Creates an invalid backend drawable info.
18 GrBackendDrawableInfo() : fIsValid(false) {}
19
20 GrBackendDrawableInfo(const GrVkDrawableInfo& info)
21 : fIsValid(true)
22 , fBackend(GrBackendApi::kVulkan)
23 , fVkInfo(info) {}
24
25 // Returns true if the backend texture has been initialized.
26 bool isValid() const { return fIsValid; }
27
28 GrBackendApi backend() const { return fBackend; }
29
30 bool getVkDrawableInfo(GrVkDrawableInfo* outInfo) const {
31 if (this->isValid() && GrBackendApi::kVulkan == fBackend) {
32 *outInfo = fVkInfo;
33 return true;
34 }
35 return false;
36 }
37
38private:
39 bool fIsValid;
40 GrBackendApi fBackend;
41 GrVkDrawableInfo fVkInfo;
42};
43
44#endif