mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-10-14 22:15:14 +00:00
The state-tracking of the webgpu.h swapchain is a bit complicated because contrary to implementation-based swapchains, they have more guarantees and a "replacing mechanism". For example instead of hoping the implementation-based swapchain resize automatically, the surface-based swapchain needs to be replaced by a new swapchain and invalidated. This mechanism of invalidation also needs to be triggered when the last reference to the surface is lost because we don't want to risk the application destroying the window from under us. Adds tests for all the cases of invalidation I could think of apart from device loss. Bug: dawn:269 Change-Id: Id515dbb640e13c6e30bb1f1e93b8e54f1e2bba4b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15400 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
// Copyright 2017 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef DAWNNATIVE_FORWARD_H_
|
|
#define DAWNNATIVE_FORWARD_H_
|
|
|
|
#include <cstdint>
|
|
|
|
namespace dawn_native {
|
|
|
|
class AdapterBase;
|
|
class BindGroupBase;
|
|
class BindGroupLayoutBase;
|
|
class BufferBase;
|
|
class ComputePipelineBase;
|
|
class CommandBufferBase;
|
|
class CommandEncoder;
|
|
class ComputePassEncoder;
|
|
class Fence;
|
|
class InstanceBase;
|
|
class PipelineBase;
|
|
class PipelineLayoutBase;
|
|
class QueueBase;
|
|
class RenderBundleBase;
|
|
class RenderBundleEncoder;
|
|
class RenderPassEncoder;
|
|
class RenderPipelineBase;
|
|
class ResourceHeapBase;
|
|
class SamplerBase;
|
|
class Surface;
|
|
class ShaderModuleBase;
|
|
class StagingBufferBase;
|
|
class SwapChainBase;
|
|
class NewSwapChainBase;
|
|
class TextureBase;
|
|
class TextureViewBase;
|
|
|
|
class DeviceBase;
|
|
|
|
template <typename T>
|
|
class Ref;
|
|
|
|
template <typename T>
|
|
class PerStage;
|
|
|
|
struct Format;
|
|
|
|
} // namespace dawn_native
|
|
|
|
#endif // DAWNNATIVE_FORWARD_H_
|