/* * Copyright 2023 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/MutableTextureState.h" #include "include/gpu/GpuTypes.h" #include "src/gpu/MutableTextureStatePriv.h" namespace skgpu { MutableTextureState::MutableTextureState(): fBackend(BackendApi::kUnsupported), fIsValid(false) {} MutableTextureState::~MutableTextureState() = default; MutableTextureState::MutableTextureState(const MutableTextureState& that): fIsValid(false) { this->set(that); } MutableTextureState& MutableTextureState::operator=(const MutableTextureState& that) { if (this != &that) { this->set(that); } return *this; } void MutableTextureState::set(const MutableTextureState& that) { SkASSERT(!fIsValid || this->fBackend == that.fBackend); fIsValid = that.fIsValid; fBackend = that.fBackend; if (!fIsValid) { return; } fStateData.reset(); switch (fBackend) { case BackendApi::kVulkan: that.fStateData->copyTo(fStateData); break; default: SK_ABORT("Unknown BackendApi"); } } MutableTextureStateData::~MutableTextureStateData() = default; } // namespace skgpu