CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::WGDevice Class Referencefinal

WebGPU RenderAPI device object. More...

#include <CeresEngine/RenderAPI/WebGPU/WGDevice.hpp>

Inheritance diagram for CeresEngine::WGDevice:
CeresEngine::GPUDevice CeresEngine::WGObject< WGDevice, GPUDevice > CeresEngine::GPUObject

Public Types

using WGLDeviceType = CE_WG_HANDLE(WGLDevice)
 

Public Member Functions

 WGDevice (WGRenderAPI &renderAPI)
 
 ~WGDevice () final
 
 operator WGLDeviceType () const noexcept
 The WebGPU API device object.
 
GPUCommandBufferPtr createCommandBuffer (const GPUCommandBufferDescriptor &descriptor) final
 
GPURenderPassPtr createRenderPass (const GPURenderPassDescriptor &descriptor) final
 
GPUPipelineLayoutPtr createPipelineLayout (const GPUPipelineLayoutDescriptor &descriptor) final
 
GPUGraphicsPipelinePtr createGraphicsPipeline (const GPUGraphicsPipelineDescriptor &descriptor) final
 
GPUComputePipelinePtr createComputePipeline (const GPUComputePipelineDescriptor &descriptor) final
 
GPUShaderPtr createShader (const GPUShaderDescriptor &descriptor) final
 
GPUShaderProgramPtr createShaderProgram (const GPUShaderProgramDescriptor &descriptor) final
 
GPURenderTargetPtr createRenderTarget (const GPURenderTargetDescriptor &descriptor) final
 
GPUBufferPtr createBuffer (const GPUBufferDescriptor &descriptor) final
 
GPUImagePtr createImage (const GPUImageDescriptor &descriptor) final
 
GPUSamplerPtr createSampler (const GPUSamplerDescriptor &descriptor) final
 
GPUFencePtr createFence (const GPUFenceDescriptor &descriptor) final
 
GPUTimerQueryPtr createTimerQuery (const GPUTimerQueryDescriptor &descriptor) final
 
GPUSwapchainPtr createSwapchain (const GPUSwapchainDescriptor &descriptor) final
 
const GPURenderTargetPtrgetNextRenderTarget () const
 
const GPURenderPassPtrgetDefaultRenderPass () const
 
GPUCommandQueuePtr getGraphicsQueue () final
 
GPUCommandQueuePtr getTransferQueue () final
 
GPUCommandQueuePtr getComputeQueue () final
 
WGRenderAPIgetRenderAPI ()
 
- Public Member Functions inherited from CeresEngine::GPUDevice
 GPUDevice (ExecutionContext &transferExecutionContext, const GPUDeviceInfo &information, const GPURenderingCapabilities &capabilities)
 Creates a new Device instance.
 
 ~GPUDevice () override=default
 Destroys the device object.
 
 GPUDevice (const GPUDevice &)=delete
 Deleted copy constructor.
 
GPUDeviceoperator= (const GPUDevice &)=delete
 
 GPUDevice (GPUDevice &&)=delete
 Deleted move constructor.
 
GPUDeviceoperator= (GPUDevice &&)=delete
 
virtual Async< GPUBufferPtrcreateBufferAsync (const GPUBufferDescriptor &descriptor)
 Creates a new Buffer object asynchronously.
 
virtual Async< GPUImagePtrcreateImageAsync (const GPUImageDescriptor &descriptor)
 Creates a new Image object asynchronously.
 
virtual GPUOcclusionQueryPtr createOcclusionQuery (const GPUOcclusionQueryDescriptor &descriptor)=0
 Creates a new OcclusionQuery object.
 
- Public Member Functions inherited from CeresEngine::GPUObject
 GPUObject ()=default
 
virtual ~GPUObject ()=default
 
 GPUObject (const GPUObject &)=delete
 
GPUObjectoperator= (const GPUObject &)=delete
 
 GPUObject (GPUObject &&)=delete
 
GPUObjectoperator= (GPUObject &&)=delete
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Releases the object by decrementing it's reference count by one.
 

Private Attributes

WGLDeviceType mDevice
 The WebGPU API device object.
 
WGRenderAPImRenderAPI
 The owning WGRenderAPI instance.
 
ThreadPool wGransferExecutor {1}
 The executor used to run the transfer operations on.
 
GPUDeviceInfo mInformation
 The The device information structure.
 
GPURenderingCapabilities mCapabilities
 
WGCommandQueuePtr mCommandQueue
 The WebGPU graphics queue.
 
GPURenderPassPtr mDefaultRenderPass
 The default render pass.
 
GPURenderTargetPtr mDefaultRenderTarget
 The default render target object.
 

Friends

class WGCommandQueue
 

Additional Inherited Members

- Static Public Member Functions inherited from CeresEngine::WGObject< WGDevice, GPUDevice >
static RC< WGDevicecast (const RC< GPUDevice > &ptr)
 Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static WGDevicecast (GPUDevice &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const WGDevicecast (const GPUDevice &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static WGDevicecast (GPUDevice *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const WGDevicecast (const GPUDevice *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static RC< WGDevicesafeCast (const RC< GPUDevice > &ptr)
 Safely casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static WGDevicesafeCast (GPUDevice *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const WGDevicesafeCast (const GPUDevice *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
- Public Attributes inherited from CeresEngine::GPUDevice
ExecutionContexttransferExecutionContext
 
const GPUDeviceInfoinformation
 The The device information structure.
 
const GPURenderingCapabilitiescapabilities
 The device capabilities structure.
 
- Protected Member Functions inherited from CeresEngine::GPUObject
virtual void destroy () noexcept
 A internal method called by the system when the object reference count reaches zero.
 

Detailed Description

WebGPU RenderAPI device object.

Member Typedef Documentation

◆ WGLDeviceType

Constructor & Destructor Documentation

◆ WGDevice()

CeresEngine::WGDevice::WGDevice ( WGRenderAPI renderAPI)
explicit

◆ ~WGDevice()

CeresEngine::WGDevice::~WGDevice ( )
final

Member Function Documentation

◆ createBuffer()

GPUBufferPtr CeresEngine::WGDevice::createBuffer ( const GPUBufferDescriptor descriptor)
finalvirtual

◆ createCommandBuffer()

GPUCommandBufferPtr CeresEngine::WGDevice::createCommandBuffer ( const GPUCommandBufferDescriptor descriptor)
finalvirtual

◆ createComputePipeline()

GPUComputePipelinePtr CeresEngine::WGDevice::createComputePipeline ( const GPUComputePipelineDescriptor descriptor)
finalvirtual

◆ createFence()

GPUFencePtr CeresEngine::WGDevice::createFence ( const GPUFenceDescriptor descriptor)
finalvirtual

◆ createGraphicsPipeline()

GPUGraphicsPipelinePtr CeresEngine::WGDevice::createGraphicsPipeline ( const GPUGraphicsPipelineDescriptor descriptor)
finalvirtual

◆ createImage()

GPUImagePtr CeresEngine::WGDevice::createImage ( const GPUImageDescriptor descriptor)
finalvirtual

◆ createPipelineLayout()

GPUPipelineLayoutPtr CeresEngine::WGDevice::createPipelineLayout ( const GPUPipelineLayoutDescriptor descriptor)
finalvirtual

◆ createRenderPass()

GPURenderPassPtr CeresEngine::WGDevice::createRenderPass ( const GPURenderPassDescriptor descriptor)
finalvirtual

◆ createRenderTarget()

GPURenderTargetPtr CeresEngine::WGDevice::createRenderTarget ( const GPURenderTargetDescriptor descriptor)
finalvirtual

◆ createSampler()

GPUSamplerPtr CeresEngine::WGDevice::createSampler ( const GPUSamplerDescriptor descriptor)
finalvirtual

◆ createShader()

GPUShaderPtr CeresEngine::WGDevice::createShader ( const GPUShaderDescriptor descriptor)
finalvirtual

◆ createShaderProgram()

GPUShaderProgramPtr CeresEngine::WGDevice::createShaderProgram ( const GPUShaderProgramDescriptor descriptor)
finalvirtual

◆ createSwapchain()

GPUSwapchainPtr CeresEngine::WGDevice::createSwapchain ( const GPUSwapchainDescriptor descriptor)
finalvirtual

◆ createTimerQuery()

GPUTimerQueryPtr CeresEngine::WGDevice::createTimerQuery ( const GPUTimerQueryDescriptor descriptor)
finalvirtual

◆ getComputeQueue()

GPUCommandQueuePtr CeresEngine::WGDevice::getComputeQueue ( )
finalvirtual

◆ getDefaultRenderPass()

const GPURenderPassPtr & CeresEngine::WGDevice::getDefaultRenderPass ( ) const
inline

◆ getGraphicsQueue()

GPUCommandQueuePtr CeresEngine::WGDevice::getGraphicsQueue ( )
finalvirtual

◆ getNextRenderTarget()

const GPURenderTargetPtr & CeresEngine::WGDevice::getNextRenderTarget ( ) const
inline

◆ getRenderAPI()

WGRenderAPI & CeresEngine::WGDevice::getRenderAPI ( )
inline
Returns
The owning WGRenderAPI instance.

◆ getTransferQueue()

GPUCommandQueuePtr CeresEngine::WGDevice::getTransferQueue ( )
finalvirtual

◆ operator WGLDeviceType()

CeresEngine::WGDevice::operator WGLDeviceType ( ) const
inlinenoexcept

The WebGPU API device object.

Friends And Related Symbol Documentation

◆ WGCommandQueue

Member Data Documentation

◆ mCapabilities

GPURenderingCapabilities CeresEngine::WGDevice::mCapabilities
private

◆ mCommandQueue

WGCommandQueuePtr CeresEngine::WGDevice::mCommandQueue
private

The WebGPU graphics queue.

◆ mDefaultRenderPass

GPURenderPassPtr CeresEngine::WGDevice::mDefaultRenderPass
private

The default render pass.

◆ mDefaultRenderTarget

GPURenderTargetPtr CeresEngine::WGDevice::mDefaultRenderTarget
private

The default render target object.

◆ mDevice

WGLDeviceType CeresEngine::WGDevice::mDevice
private

The WebGPU API device object.

◆ mInformation

GPUDeviceInfo CeresEngine::WGDevice::mInformation
private

The The device information structure.

◆ mRenderAPI

WGRenderAPI& CeresEngine::WGDevice::mRenderAPI
private

The owning WGRenderAPI instance.

◆ wGransferExecutor

ThreadPool CeresEngine::WGDevice::wGransferExecutor {1}
private

The executor used to run the transfer operations on.


The documentation for this class was generated from the following file: