| /* | |
| * 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/graphite/BackendSemaphore.h" | |
| #include "include/gpu/GpuTypes.h" | |
| #include "include/private/SkAssert.h" | |
| #include "src/gpu/graphite/BackendSemaphorePriv.h" | |
| namespace skgpu::graphite { | |
| BackendSemaphore::BackendSemaphore() = default; | |
| BackendSemaphore::~BackendSemaphore() = default; | |
| BackendSemaphore::BackendSemaphore(const BackendSemaphore& that) { | |
| *this = that; | |
| } | |
| BackendSemaphore& BackendSemaphore::operator=(const BackendSemaphore& that) { | |
| if (!that.isValid()) { | |
| fIsValid = false; | |
| return *this; | |
| } | |
| SkASSERT(!this->isValid() || this->backend() == that.backend()); | |
| fIsValid = true; | |
| fBackend = that.fBackend; | |
| switch (that.backend()) { | |
| case BackendApi::kDawn: | |
| SK_ABORT("Unsupported Backend"); | |
| case BackendApi::kMetal: | |
| case BackendApi::kVulkan: | |
| fSemaphoreData.reset(); | |
| that.fSemaphoreData->copyTo(fSemaphoreData); | |
| break; | |
| default: | |
| SK_ABORT("Unsupported Backend"); | |
| } | |
| return *this; | |
| } | |
| BackendSemaphoreData::~BackendSemaphoreData() {} | |
| } // End of namespace skgpu::graphite |