9ed1a2cd71
If supported, an Sk*Device can take charge of handling of an SkDrawable. The specific use case right now will be to use this to execute Vulkan specific SkDrawable's that need to know information about our Vulkan state and objects at the time the SkDrawable is executed. If a device does not support the SkDrawable we fall back to the cavans version like we did previously. BUG=skia: Change-Id: I821fa600a80ff645412f296be36990ef390ae0a9 Reviewed-on: https://skia-review.googlesource.com/c/7740 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
/*
|
|
* Copyright 2018 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef GrBackendDrawableInfo_DEFINED
|
|
#define GrBackendDrawableInfo_DEFINED
|
|
|
|
#include "GrTypes.h"
|
|
|
|
#include "vk/GrVkTypes.h"
|
|
|
|
class SK_API GrBackendDrawableInfo {
|
|
public:
|
|
// Creates an invalid backend drawable info.
|
|
GrBackendDrawableInfo() : fIsValid(false) {}
|
|
|
|
GrBackendDrawableInfo(const GrVkDrawableInfo& info)
|
|
: fIsValid(true)
|
|
, fBackend(GrBackendApi::kVulkan)
|
|
, fVkInfo(info) {}
|
|
|
|
// Returns true if the backend texture has been initialized.
|
|
bool isValid() const { return fIsValid; }
|
|
|
|
GrBackendApi backend() const { return fBackend; }
|
|
|
|
bool getVkDrawableInfo(GrVkDrawableInfo* outInfo) const {
|
|
if (this->isValid() && GrBackendApi::kVulkan == fBackend) {
|
|
*outInfo = fVkInfo;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private:
|
|
bool fIsValid;
|
|
GrBackendApi fBackend;
|
|
GrVkDrawableInfo fVkInfo;
|
|
};
|
|
|
|
#endif
|