blob: 1b854cb7ec5267b2e554d111100bffa0d365d2d2 [file] [log] [blame]
/*
* Copyright (C) 2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "WebGPUDowncastConvertToBackingContext.h"
#if HAVE(WEBGPU_IMPLEMENTATION)
#include "WebGPUAdapterImpl.h"
#include "WebGPUBindGroupImpl.h"
#include "WebGPUBindGroupLayoutImpl.h"
#include "WebGPUBufferImpl.h"
#include "WebGPUCommandBufferImpl.h"
#include "WebGPUCommandEncoderImpl.h"
#include "WebGPUComputePassEncoderImpl.h"
#include "WebGPUComputePipelineImpl.h"
#include "WebGPUDeviceImpl.h"
#include "WebGPUExternalTextureImpl.h"
#include "WebGPUImpl.h"
#include "WebGPUPipelineLayoutImpl.h"
#include "WebGPUQuerySetImpl.h"
#include "WebGPUQueueImpl.h"
#include "WebGPURenderBundleEncoderImpl.h"
#include "WebGPURenderBundleImpl.h"
#include "WebGPURenderPassEncoderImpl.h"
#include "WebGPURenderPipelineImpl.h"
#include "WebGPUSamplerImpl.h"
#include "WebGPUShaderModuleImpl.h"
#include "WebGPUTextureImpl.h"
#include "WebGPUTextureViewImpl.h"
namespace PAL::WebGPU {
WGPUAdapter DowncastConvertToBackingContext::convertToBacking(const Adapter& adapter)
{
return static_cast<const AdapterImpl&>(adapter).backing();
}
WGPUBindGroup DowncastConvertToBackingContext::convertToBacking(const BindGroup& bindGroup)
{
return static_cast<const BindGroupImpl&>(bindGroup).backing();
}
WGPUBindGroupLayout DowncastConvertToBackingContext::convertToBacking(const BindGroupLayout& bindGroupLayout)
{
return static_cast<const BindGroupLayoutImpl&>(bindGroupLayout).backing();
}
WGPUBuffer DowncastConvertToBackingContext::convertToBacking(const Buffer& buffer)
{
return static_cast<const BufferImpl&>(buffer).backing();
}
WGPUCommandBuffer DowncastConvertToBackingContext::convertToBacking(const CommandBuffer& commandBuffer)
{
return static_cast<const CommandBufferImpl&>(commandBuffer).backing();
}
WGPUCommandEncoder DowncastConvertToBackingContext::convertToBacking(const CommandEncoder& commandEncoder)
{
return static_cast<const CommandEncoderImpl&>(commandEncoder).backing();
}
WGPUComputePassEncoder DowncastConvertToBackingContext::convertToBacking(const ComputePassEncoder& computePassEncoder)
{
return static_cast<const ComputePassEncoderImpl&>(computePassEncoder).backing();
}
WGPUComputePipeline DowncastConvertToBackingContext::convertToBacking(const ComputePipeline& computePipeline)
{
return static_cast<const ComputePipelineImpl&>(computePipeline).backing();
}
WGPUDevice DowncastConvertToBackingContext::convertToBacking(const Device& device)
{
return static_cast<const DeviceImpl&>(device).backing();
}
WGPUInstance DowncastConvertToBackingContext::convertToBacking(const GPU& gpu)
{
return static_cast<const GPUImpl&>(gpu).backing();
}
WGPUPipelineLayout DowncastConvertToBackingContext::convertToBacking(const PipelineLayout& pipelineLayout)
{
return static_cast<const PipelineLayoutImpl&>(pipelineLayout).backing();
}
WGPUQuerySet DowncastConvertToBackingContext::convertToBacking(const QuerySet& querySet)
{
return static_cast<const QuerySetImpl&>(querySet).backing();
}
WGPUQueue DowncastConvertToBackingContext::convertToBacking(const Queue& queue)
{
return static_cast<const QueueImpl&>(queue).backing();
}
WGPURenderBundleEncoder DowncastConvertToBackingContext::convertToBacking(const RenderBundleEncoder& renderBundleEncoder)
{
return static_cast<const RenderBundleEncoderImpl&>(renderBundleEncoder).backing();
}
WGPURenderBundle DowncastConvertToBackingContext::convertToBacking(const RenderBundle& renderBundle)
{
return static_cast<const RenderBundleImpl&>(renderBundle).backing();
}
WGPURenderPassEncoder DowncastConvertToBackingContext::convertToBacking(const RenderPassEncoder& renderPassEncoder)
{
return static_cast<const RenderPassEncoderImpl&>(renderPassEncoder).backing();
}
WGPURenderPipeline DowncastConvertToBackingContext::convertToBacking(const RenderPipeline& renderPipeline)
{
return static_cast<const RenderPipelineImpl&>(renderPipeline).backing();
}
WGPUSampler DowncastConvertToBackingContext::convertToBacking(const Sampler& sampler)
{
return static_cast<const SamplerImpl&>(sampler).backing();
}
WGPUShaderModule DowncastConvertToBackingContext::convertToBacking(const ShaderModule& shaderModule)
{
return static_cast<const ShaderModuleImpl&>(shaderModule).backing();
}
WGPUTexture DowncastConvertToBackingContext::convertToBacking(const Texture& texture)
{
return static_cast<const TextureImpl&>(texture).backing();
}
WGPUTextureView DowncastConvertToBackingContext::convertToBacking(const TextureView& textureView)
{
return static_cast<const TextureViewImpl&>(textureView).backing();
}
} // namespace PAL::WebGPU
#endif // HAVE(WEBGPU_IMPLEMENTATION)