GrBackendDrawableInfo.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  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. #ifndef GrBackendDrawableInfo_DEFINED
  8. #define GrBackendDrawableInfo_DEFINED
  9. #include "include/gpu/GrTypes.h"
  10. #include "include/gpu/vk/GrVkTypes.h"
  11. class SK_API GrBackendDrawableInfo {
  12. public:
  13. // Creates an invalid backend drawable info.
  14. GrBackendDrawableInfo() : fIsValid(false) {}
  15. GrBackendDrawableInfo(const GrVkDrawableInfo& info)
  16. : fIsValid(true)
  17. , fBackend(GrBackendApi::kVulkan)
  18. , fVkInfo(info) {}
  19. // Returns true if the backend texture has been initialized.
  20. bool isValid() const { return fIsValid; }
  21. GrBackendApi backend() const { return fBackend; }
  22. bool getVkDrawableInfo(GrVkDrawableInfo* outInfo) const {
  23. if (this->isValid() && GrBackendApi::kVulkan == fBackend) {
  24. *outInfo = fVkInfo;
  25. return true;
  26. }
  27. return false;
  28. }
  29. private:
  30. bool fIsValid;
  31. GrBackendApi fBackend;
  32. GrVkDrawableInfo fVkInfo;
  33. };
  34. #endif