/* * 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/BackendTexture.h" #include "include/gpu/MutableTextureState.h" #include "src/gpu/graphite/BackendTexturePriv.h" namespace skgpu::graphite { BackendTexture::BackendTexture() = default; BackendTexture::~BackendTexture() = default; BackendTexture::BackendTexture(const BackendTexture& that) { *this = that; } static inline void assert_is_supported_backend(const BackendApi& backend) { SkASSERT(backend == BackendApi::kDawn || backend == BackendApi::kMetal || backend == BackendApi::kVulkan); } BackendTexture& BackendTexture::operator=(const BackendTexture& that) { if (!that.isValid()) { fInfo = {}; return *this; } // We shouldn't be mixing backends. SkASSERT(!this->isValid() || this->backend() == that.backend()); // If that was valid, it should have a supported backend. assert_is_supported_backend(that.backend()); fDimensions = that.fDimensions; fInfo = that.fInfo; fTextureData.reset(); that.fTextureData->copyTo(fTextureData); return *this; } bool BackendTexture::operator==(const BackendTexture& that) const { if (!this->isValid() || !that.isValid()) { return false; } if (fDimensions != that.fDimensions || fInfo != that.fInfo) { return false; } assert_is_supported_backend(this->backend()); return fTextureData->equal(that.fTextureData.get()); } BackendTextureData::~BackendTextureData(){}; } // namespace skgpu::graphite