Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::EngineFactoryWebGPUImpl Class Referencefinal

Engine factory for WebGPU implementation. More...

Inheritance diagram for Diligent::EngineFactoryWebGPUImpl:
Diligent::EngineFactoryBase< IEngineFactoryWebGPU > Diligent::IEngineFactoryWebGPU Diligent.IEngineFactory Diligent.IObject

Public Member Functions

void DILIGENT_CALL_TYPE EnumerateAdapters (Version MinVersion, Uint32 &NumAdapters, GraphicsAdapterInfo *Adapters) const override final
 Enumerates adapters available on this machine.
 
void DILIGENT_CALL_TYPE CreateDearchiver (const DearchiverCreateInfo &CreateInfo, IDearchiver **ppDearchiver) const override final
 Creates a dearchiver object.
 
void DILIGENT_CALL_TYPE CreateDeviceAndContextsWebGPU (const EngineWebGPUCreateInfo &EngineCI, IRenderDevice **ppDevice, IDeviceContext **ppContexts) override final
 Creates a render device and device contexts for WebGPU-based engine implementation.
 
void DILIGENT_CALL_TYPE CreateSwapChainWebGPU (IRenderDevice *pDevice, IDeviceContext *pImmediateContext, const SwapChainDesc &SCDesc, const NativeWindow &Window, ISwapChain **ppSwapChain) override final
 Creates a swap chain for WebGPU-based engine implementation.
 
void DILIGENT_CALL_TYPE AttachToWebGPUDevice (void *wgpuInstance, void *wgpuAdapter, void *wgpuDevice, const EngineWebGPUCreateInfo &EngineCI, IRenderDevice **ppDevice, IDeviceContext **ppContexts) override final
 Attaches to existing WebGPU render device, adapter and instance.
 
const void *DILIGENT_CALL_TYPE GetProcessTable () const override final
 Return the pointer to DawnProcTable.
 
- Public Member Functions inherited from Diligent::EngineFactoryBase< IEngineFactoryWebGPU >
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface) override final
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef () override final
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release () override final
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const override final
 
virtual const APIInfo &DILIGENT_CALL_TYPE GetAPIInfo () const override final
 
virtual void DILIGENT_CALL_TYPE CreateDataBlob (size_t InitialSize, const void *pData, IDataBlob **ppDataBlob) const override final
 
virtual void DILIGENT_CALL_TYPE CreateDefaultShaderSourceStreamFactory (const Char *SearchDirectories, IShaderSourceInputStreamFactory **ppShaderSourceFactory) const override final
 
virtual void DILIGENT_CALL_TYPE SetMessageCallback (DebugMessageCallbackType MessageCallback) const override final
 
virtual void DILIGENT_CALL_TYPE SetBreakOnError (bool BreakOnError) const override final
 

Detailed Description

Engine factory for WebGPU implementation.

Member Function Documentation

◆ AttachToWebGPUDevice()

void Diligent::EngineFactoryWebGPUImpl::AttachToWebGPUDevice ( void * wgpuInstance,
void * wgpuAdapter,
void * wgpuDevice,
const EngineWebGPUCreateInfo & EngineCI,
IRenderDevice ** ppDevice,
IDeviceContext ** ppContexts )
finaloverridevirtual

Attaches to existing WebGPU render device, adapter and instance.

Parameters
[in]wgpuInstance- pointer to the native WebGPU instance.
[in]wgpuAdapter- pointer to the native WebGPU adapter.
[in]wgpuDevice- pointer to the native WebGPU device.
[in]EngineCI- Engine creation info.
[out]ppDevice- Address of the memory location where pointer to the created device will be written.
[out]ppContexts- Address of the memory location where pointers to the contexts will be written. Immediate context goes at position 0. If EngineCI.NumDeferredContexts > 0, pointers to the deferred contexts are written afterwards.

Implements Diligent::IEngineFactoryWebGPU.

◆ CreateDearchiver()

void Diligent::EngineFactoryWebGPUImpl::CreateDearchiver ( const DearchiverCreateInfo & CreateInfo,
IDearchiver ** ppDearchiver ) const
finaloverridevirtual

Creates a dearchiver object.

Parameters
[in]CreateInfo- Dearchiver create info, see Diligent::DearchiverCreateInfo for details.
[out]ppDearchiver- Address of the memory location where a pointer to IDearchiver interface will be written. The function calls AddRef(), so that the new object will have one reference.

Reimplemented from Diligent::EngineFactoryBase< IEngineFactoryWebGPU >.

◆ CreateDeviceAndContextsWebGPU()

void Diligent::EngineFactoryWebGPUImpl::CreateDeviceAndContextsWebGPU ( const EngineWebGPUCreateInfo & EngineCI,
IRenderDevice ** ppDevice,
IDeviceContext ** ppContexts )
finaloverridevirtual

Creates a render device and device contexts for WebGPU-based engine implementation.

Parameters
[in]EngineCI- Engine creation info.
[out]ppDevice- Address of the memory location where pointer to the created device will be written.
[out]ppContexts- Address of the memory location where pointers to the contexts will be written. Immediate context goes at position 0. If EngineCI.NumDeferredContexts > 0, pointers to deferred contexts are written afterwards.

Implements Diligent::IEngineFactoryWebGPU.

◆ CreateSwapChainWebGPU()

void Diligent::EngineFactoryWebGPUImpl::CreateSwapChainWebGPU ( IRenderDevice * pDevice,
IDeviceContext * pImmediateContext,
const SwapChainDesc & SCDesc,
const NativeWindow & Window,
ISwapChain ** ppSwapChain )
finaloverridevirtual

Creates a swap chain for WebGPU-based engine implementation.

Parameters
[in]pDevice- Pointer to the render device.
[in]pImmediateContext- Pointer to the immediate device context.
[in]SCDesc- Swap chain description.
[in]Window- Platform-specific native window description that the swap chain will be associated with:
  • On Win32 platform, this is the window handle (HWND)
  • On Universal Windows Platform, this is the reference to the core window (Windows::UI::Core::CoreWindow)
[out]ppSwapChain- Address of the memory location where pointer to the new swap chain will be written.

Implements Diligent::IEngineFactoryWebGPU.

◆ EnumerateAdapters()

void Diligent::EngineFactoryWebGPUImpl::EnumerateAdapters ( Version MinVersion,
Uint32 & NumAdapters,
GraphicsAdapterInfo * Adapters ) const
finaloverridevirtual

Enumerates adapters available on this machine.

Parameters
[in]MinVersion- Minimum required API version (feature level for Direct3D).
[in,out]NumAdapters- The number of adapters. If Adapters is null, this value will be overwritten with the number of adapters available on this system. If Adapters is not null, this value should contain the maximum number of elements reserved in the array pointed to by Adapters. In the latter case, this value is overwritten with the actual number of elements written to Adapters.
[out]Adapters- Pointer to the array containing adapter information. If null is provided, the number of available adapters is written to NumAdapters.
Note
OpenGL backend only supports one device; features and properties will have limited information.

Implements Diligent.IEngineFactory.