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