| /* |
| * 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 |
| |