blob: 747665dd468beefe46816b39bd12dff380fd59d6 [file] [log] [blame]
/*
* Copyright 2021 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "include/gpu/graphite/TextureInfo.h"
namespace skgpu::graphite {
TextureInfo& TextureInfo::operator=(const TextureInfo& that) {
if (!that.isValid()) {
fValid = false;
return *this;
}
fBackend = that.fBackend;
fSampleCount = that.fSampleCount;
fMipmapped = that.fMipmapped;
fProtected = that.fProtected;
switch (that.backend()) {
#ifdef SK_DAWN
case BackendApi::kDawn:
fDawnSpec = that.fDawnSpec;
break;
#endif
#ifdef SK_METAL
case BackendApi::kMetal:
fMtlSpec = that.fMtlSpec;
break;
#endif
#ifdef SK_VULKAN
case BackendApi::kVulkan:
// TODO: Actually fill this out
break;
#endif
default:
SK_ABORT("Unsupport Backend");
}
fValid = true;
return *this;
}
bool TextureInfo::operator==(const TextureInfo& that) const {
if (!this->isValid() && !that.isValid()) {
return true;
}
if (!this->isValid() || !that.isValid()) {
return false;
}
if (fBackend != that.fBackend) {
return false;
}
if (fSampleCount != that.fSampleCount ||
fMipmapped != that.fMipmapped ||
fProtected != that.fProtected) {
return false;
}
switch (fBackend) {
#ifdef SK_DAWN
case BackendApi::kDawn:
return fDawnSpec == that.fDawnSpec;
#endif
#ifdef SK_METAL
case BackendApi::kMetal:
return fMtlSpec == that.fMtlSpec;
#endif
#ifdef SK_VULKAN
case BackendApi::kVulkan:
// TODO: Actually fill this out
return false;
#endif
default:
return false;
}
}
} // namespace skgpu::graphite