blob: bda1e769fd05e3b7cbaf10280937acc68fe4d11b [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
Mike Kleinc0bd9f92019-04-23 12:05:21 -050011#include "include/gpu/GrTypes.h"
Greg Daniel9ed1a2c2018-10-18 12:43:25 -040012
Mike Kleinc0bd9f92019-04-23 12:05:21 -050013#include "include/gpu/vk/GrVkTypes.h"
Greg Daniel9ed1a2c2018-10-18 12:43:25 -040014
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