Cogs.Core
Public Member Functions | Public Attributes | List of all members
Cogs::GraphicsDeviceWebGPU Class Reference
Inheritance diagram for Cogs::GraphicsDeviceWebGPU:
Cogs::IGraphicsDevice

Public Member Functions

 GraphicsDeviceWebGPU (RenderingAllocatorInfo *=nullptr)
 
virtual bool initialize () override
 Initializes the graphics device with the settings previous set through calling setSettings.
 
void initialize_adapter (WGPUAdapter adapter)
 
void initialize_device (WGPUDevice device)
 
virtual bool isInitializationFinished () override
 Check if async initialization is finished.
 
void destroy ()
 
virtual void releaseResources () override
 Release all resources allocated.
 
virtual void setSize (int width, int height) override
 Set the size of the main drawing buffer used by the graphics device in pixels.
 
virtual bool getSize (int &w, int &h) const override
 Retrieve the size previously set by setSize.
 
virtual void waitForCommandSync () override
 Wait for any GPU commands on the current device to finish before returning.
 
virtual void beginFrame () override
 Signal the beginning of a new frame to the graphics device.
 
virtual void endFrame (uint32_t=0, uint32_t=PresentFlags::None) override
 Signal the end of a frame to the graphics device.
 
virtual std::string getIdentifier () const override
 Get the graphics device identifier.
 
virtual GraphicsDeviceType getType () const override
 Get the type of the graphics device.
 
virtual IContextgetImmediateContext () override
 Get a pointer to the immediate context used to issue commands to the graphics device.
 
virtual IBuffersgetBuffers () override
 Get a pointer to the buffer management interface.
 
virtual ITexturesgetTextures () override
 Get a pointer to the texture management interface.
 
virtual IRenderTargetsgetRenderTargets () override
 Get a pointer to the render target management interface.
 
virtual IEffectsgetEffects () override
 Get a pointer to the effect management interface.
 
virtual IPipelineStatesgetPipelineStates () override
 Get a pointer to the pipeline state management interface.
 
virtual ICapabilitiesgetCapabilities () override
 Get a pointer to the capability management interface used to query the graphics device capability flags.
 
virtual ISyncObjectsgetSyncObjects () override
 Get a pointer to the sync object management interface.
 
virtual ISwapChaingetDefaultSwapChain () override
 Get a pointer to the default swap chain for this graphics device.
 
virtual void * getNativeDevice () override
 
- Public Member Functions inherited from Cogs::IGraphicsDevice
virtual ~IGraphicsDevice ()=default
 Destructor.
 
virtual bool initializeThread ()
 Initialize the graphics device for operation on the current thread.
 
virtual SharedGraphicsContextcreateSharedContext ()
 Create a shared graphics context that can be used to activate another thread for rendering.
 
virtual void activateSharedContext (SharedGraphicsContext *)
 Activates the given shared context on the calling thread.
 
virtual void releaseSharedContext (SharedGraphicsContext *)
 Releases the given shared context.
 
virtual bool initialize ()=0
 Initializes the graphics device with the settings previous set through calling setSettings.
 
virtual bool isInitializationFinished ()
 Check if async initialization is finished.
 
virtual ResourceStatistics getResourceStatistics ()
 
virtual std::string getIdentifier () const
 Get the graphics device identifier.
 
virtual GraphicsDeviceType getType () const
 Get the type of the graphics device.
 
virtual void setSize (int width, int height)=0
 Set the size of the main drawing buffer used by the graphics device in pixels.
 
virtual bool getSize (int &width, int &height) const =0
 Retrieve the size previously set by setSize.
 
virtual void beginFrame ()=0
 Signal the beginning of a new frame to the graphics device.
 
virtual void endFrame (uint32_t syncInterval=0, uint32_t presentFlags=PresentFlags::None)=0
 Signal the end of a frame to the graphics device.
 
virtual void waitForCommandSync ()
 Wait for any GPU commands on the current device to finish before returning.
 
virtual void releaseResources ()=0
 Release all resources allocated.
 
virtual ISwapChaincreateSwapChain (struct WindowData *)
 Create a new swap chain for the specified window.
 
virtual void deleteSwapChain (ISwapChain *)
 Deletes the specified swap chain.
 
virtual IContextgetImmediateContext ()=0
 Get a pointer to the immediate context used to issue commands to the graphics device.
 
virtual IBuffersgetBuffers ()=0
 Get a pointer to the buffer management interface.
 
virtual ITexturesgetTextures ()=0
 Get a pointer to the texture management interface.
 
virtual IRenderTargetsgetRenderTargets ()=0
 Get a pointer to the render target management interface.
 
virtual IEffectsgetEffects ()=0
 Get a pointer to the effect management interface.
 
virtual IPipelineStatesgetPipelineStates ()=0
 Get a pointer to the pipeline state management interface.
 
virtual ICapabilitiesgetCapabilities ()=0
 Get a pointer to the capability management interface used to query the graphics device capability flags.
 
virtual ISwapChaingetDefaultSwapChain ()=0
 Get a pointer to the default swap chain for this graphics device.
 
virtual ISyncObjectsgetSyncObjects ()=0
 Get a pointer to the sync object management interface.
 
virtual void * getNativeDevice ()
 
virtual bool setSettings (const GraphicsDeviceSettings &newSettings)
 Updates the settings associated with this device.
 
const GraphicsDeviceSettingsgetSettings () const
 

Public Attributes

bool has_device = false
 
CapabilitiesWebGPU capabilities
 
ContextWebGPU context
 
BuffersWebGPU buffers
 
EffectsWebGPU effects
 
PipelineStatesWebGPU pipeline_states
 
RenderTargetsWebGPU renderTargets
 
SyncObjectsCommon syncObjects
 
TexturesWebGPU textures
 
SwapChainWebGPU defaultSwapChain
 
WGPUInstance instance = {}
 
WGPUSurface surface = {}
 
WGPUAdapter adapter = {}
 
WGPUDevice device = {}
 
WGPUQueue queue = {}
 
WGPUCommandEncoder commandEncoder = {}
 

Additional Inherited Members

- Static Public Member Functions inherited from Cogs::IGraphicsDevice
static void fillGraphicsSettings (struct WindowData *windowData, int requestedSampleCount)
 Set platform specific graphics settings used for window creation e.g.: XVisualInfo on Linux.
 
- Protected Attributes inherited from Cogs::IGraphicsDevice
GraphicsDeviceSettings settings
 
std::vector< ISwapChain * > swapChains
 

Detailed Description

Definition at line 19 of file GraphicsDeviceWebGPU.h.

Constructor & Destructor Documentation

◆ GraphicsDeviceWebGPU()

Cogs::GraphicsDeviceWebGPU::GraphicsDeviceWebGPU ( RenderingAllocatorInfo = nullptr)

Definition at line 120 of file GraphicsDeviceWebGPU.cpp.

◆ ~GraphicsDeviceWebGPU()

Cogs::GraphicsDeviceWebGPU::~GraphicsDeviceWebGPU ( )

Definition at line 130 of file GraphicsDeviceWebGPU.cpp.

Member Function Documentation

◆ beginFrame()

void Cogs::GraphicsDeviceWebGPU::beginFrame ( )
overridevirtual

Signal the beginning of a new frame to the graphics device.

Implements Cogs::IGraphicsDevice.

Definition at line 499 of file GraphicsDeviceWebGPU.cpp.

References Cogs::SwapChainWebGPU::beginFrame().

◆ destroy()

void Cogs::GraphicsDeviceWebGPU::destroy ( )

Definition at line 476 of file GraphicsDeviceWebGPU.cpp.

◆ endFrame()

void Cogs::GraphicsDeviceWebGPU::endFrame ( uint32_t  syncInterval = 0,
uint32_t  presentFlags = PresentFlags::None 
)
overridevirtual

Signal the end of a frame to the graphics device.

When the graphics device itself is responsible for managing the device context (e.g in D3D11), and the PresentFlags::NoSwap flag is not set, this will swap the back buffer to make the result of previous drawing visible.

Parameters
syncIntervalSynchronization interval.
  • 0 - No synchronization, presentation occurs immediately.
  • 1 - Synchronize presentation after 1 vertical blank.
presentFlagsA combination of PresentFlags controlling the presentation of the rendered frame.
See also
PresentFlags

Implements Cogs::IGraphicsDevice.

Definition at line 525 of file GraphicsDeviceWebGPU.cpp.

References Cogs::SwapChainWebGPU::endFrame().

◆ getBuffers()

virtual IBuffers * Cogs::GraphicsDeviceWebGPU::getBuffers ( )
inlineoverridevirtual

Get a pointer to the buffer management interface.

Returns
A pointer to the buffer management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 47 of file GraphicsDeviceWebGPU.h.

◆ getCapabilities()

virtual ICapabilities * Cogs::GraphicsDeviceWebGPU::getCapabilities ( )
inlineoverridevirtual

Get a pointer to the capability management interface used to query the graphics device capability flags.

Returns
A pointer to the capability management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 52 of file GraphicsDeviceWebGPU.h.

◆ getDefaultSwapChain()

virtual ISwapChain * Cogs::GraphicsDeviceWebGPU::getDefaultSwapChain ( )
inlineoverridevirtual

Get a pointer to the default swap chain for this graphics device.

Returns
A pointer to the default swap chain.

Implements Cogs::IGraphicsDevice.

Definition at line 54 of file GraphicsDeviceWebGPU.h.

◆ getEffects()

virtual IEffects * Cogs::GraphicsDeviceWebGPU::getEffects ( )
inlineoverridevirtual

Get a pointer to the effect management interface.

Returns
A pointer to the effect management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 50 of file GraphicsDeviceWebGPU.h.

◆ getIdentifier()

virtual std::string Cogs::GraphicsDeviceWebGPU::getIdentifier ( ) const
inlineoverridevirtual

Get the graphics device identifier.

Returns
A string containing the name of the currently initialized graphics device.

Reimplemented from Cogs::IGraphicsDevice.

Definition at line 44 of file GraphicsDeviceWebGPU.h.

◆ getImmediateContext()

virtual IContext * Cogs::GraphicsDeviceWebGPU::getImmediateContext ( )
inlineoverridevirtual

Get a pointer to the immediate context used to issue commands to the graphics device.

Returns
A pointer to the context interface.

Implements Cogs::IGraphicsDevice.

Definition at line 46 of file GraphicsDeviceWebGPU.h.

◆ getNativeDevice()

virtual void * Cogs::GraphicsDeviceWebGPU::getNativeDevice ( )
inlineoverridevirtual

Reimplemented from Cogs::IGraphicsDevice.

Definition at line 56 of file GraphicsDeviceWebGPU.h.

◆ getPipelineStates()

virtual IPipelineStates * Cogs::GraphicsDeviceWebGPU::getPipelineStates ( )
inlineoverridevirtual

Get a pointer to the pipeline state management interface.

Returns
A pointer to the pipeline state management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 51 of file GraphicsDeviceWebGPU.h.

◆ getRenderTargets()

virtual IRenderTargets * Cogs::GraphicsDeviceWebGPU::getRenderTargets ( )
inlineoverridevirtual

Get a pointer to the render target management interface.

Returns
A pointer to the render target management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 49 of file GraphicsDeviceWebGPU.h.

◆ getSize()

virtual bool Cogs::GraphicsDeviceWebGPU::getSize ( int &  width,
int &  height 
) const
inlineoverridevirtual

Retrieve the size previously set by setSize.

Implements Cogs::IGraphicsDevice.

Definition at line 34 of file GraphicsDeviceWebGPU.h.

References Cogs::SwapChainWebGPU::getHeight(), and Cogs::SwapChainWebGPU::getWidth().

Referenced by Cogs::ContextWebGPU::setScissor().

◆ getSyncObjects()

virtual ISyncObjects * Cogs::GraphicsDeviceWebGPU::getSyncObjects ( )
inlineoverridevirtual

Get a pointer to the sync object management interface.

Returns
A pointer to the sync object management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 53 of file GraphicsDeviceWebGPU.h.

◆ getTextures()

virtual ITextures * Cogs::GraphicsDeviceWebGPU::getTextures ( )
inlineoverridevirtual

Get a pointer to the texture management interface.

Returns
A pointer to the texture management interface.

Implements Cogs::IGraphicsDevice.

Definition at line 48 of file GraphicsDeviceWebGPU.h.

◆ getType()

virtual GraphicsDeviceType Cogs::GraphicsDeviceWebGPU::getType ( ) const
inlineoverridevirtual

Get the type of the graphics device.

Returns
The identifier of the graphics device.

Reimplemented from Cogs::IGraphicsDevice.

Definition at line 45 of file GraphicsDeviceWebGPU.h.

References Cogs::WebGPU.

◆ initialize()

bool Cogs::GraphicsDeviceWebGPU::initialize ( )
overridevirtual

Initializes the graphics device with the settings previous set through calling setSettings.

Implements Cogs::IGraphicsDevice.

Definition at line 135 of file GraphicsDeviceWebGPU.cpp.

References Cogs::GraphicsDeviceSettings::ioHandler, Cogs::EffectsCommon::setIOHandler(), and Cogs::GraphicsDeviceSettings::windowData.

◆ initialize_adapter()

void Cogs::GraphicsDeviceWebGPU::initialize_adapter ( WGPUAdapter  adapter)

Definition at line 209 of file GraphicsDeviceWebGPU.cpp.

◆ initialize_device()

void Cogs::GraphicsDeviceWebGPU::initialize_device ( WGPUDevice  device)

Definition at line 398 of file GraphicsDeviceWebGPU.cpp.

◆ isInitializationFinished()

virtual bool Cogs::GraphicsDeviceWebGPU::isInitializationFinished ( )
inlineoverridevirtual

Check if async initialization is finished.

Reimplemented from Cogs::IGraphicsDevice.

Definition at line 27 of file GraphicsDeviceWebGPU.h.

◆ releaseResources()

void Cogs::GraphicsDeviceWebGPU::releaseResources ( )
overridevirtual

◆ setSize()

virtual void Cogs::GraphicsDeviceWebGPU::setSize ( int  width,
int  height 
)
inlineoverridevirtual

Set the size of the main drawing buffer used by the graphics device in pixels.

Parameters
widthWidth of the drawing buffer in pixels.
heightHeight of the drawing buffer in pixels.

Implements Cogs::IGraphicsDevice.

Definition at line 30 of file GraphicsDeviceWebGPU.h.

References Cogs::SwapChainWebGPU::setSize().

◆ waitForCommandSync()

virtual void Cogs::GraphicsDeviceWebGPU::waitForCommandSync ( )
inlineoverridevirtual

Wait for any GPU commands on the current device to finish before returning.

After this command returns, any commands issued to the graphics device should be finished, and results from these ready to use.

Reimplemented from Cogs::IGraphicsDevice.

Definition at line 40 of file GraphicsDeviceWebGPU.h.

Member Data Documentation

◆ adapter

WGPUAdapter Cogs::GraphicsDeviceWebGPU::adapter = {}

Definition at line 72 of file GraphicsDeviceWebGPU.h.

◆ buffers

BuffersWebGPU Cogs::GraphicsDeviceWebGPU::buffers

Definition at line 62 of file GraphicsDeviceWebGPU.h.

◆ capabilities

CapabilitiesWebGPU Cogs::GraphicsDeviceWebGPU::capabilities

Definition at line 60 of file GraphicsDeviceWebGPU.h.

◆ commandEncoder

WGPUCommandEncoder Cogs::GraphicsDeviceWebGPU::commandEncoder = {}

Definition at line 76 of file GraphicsDeviceWebGPU.h.

◆ context

ContextWebGPU Cogs::GraphicsDeviceWebGPU::context

Definition at line 61 of file GraphicsDeviceWebGPU.h.

◆ defaultSwapChain

SwapChainWebGPU Cogs::GraphicsDeviceWebGPU::defaultSwapChain

Definition at line 68 of file GraphicsDeviceWebGPU.h.

◆ device

WGPUDevice Cogs::GraphicsDeviceWebGPU::device = {}

Definition at line 73 of file GraphicsDeviceWebGPU.h.

◆ effects

EffectsWebGPU Cogs::GraphicsDeviceWebGPU::effects

Definition at line 63 of file GraphicsDeviceWebGPU.h.

◆ has_device

bool Cogs::GraphicsDeviceWebGPU::has_device = false

Definition at line 58 of file GraphicsDeviceWebGPU.h.

◆ instance

WGPUInstance Cogs::GraphicsDeviceWebGPU::instance = {}

Definition at line 70 of file GraphicsDeviceWebGPU.h.

◆ pipeline_states

PipelineStatesWebGPU Cogs::GraphicsDeviceWebGPU::pipeline_states

Definition at line 64 of file GraphicsDeviceWebGPU.h.

◆ queue

WGPUQueue Cogs::GraphicsDeviceWebGPU::queue = {}

Definition at line 74 of file GraphicsDeviceWebGPU.h.

◆ renderTargets

RenderTargetsWebGPU Cogs::GraphicsDeviceWebGPU::renderTargets

Definition at line 65 of file GraphicsDeviceWebGPU.h.

◆ surface

WGPUSurface Cogs::GraphicsDeviceWebGPU::surface = {}

Definition at line 71 of file GraphicsDeviceWebGPU.h.

◆ syncObjects

SyncObjectsCommon Cogs::GraphicsDeviceWebGPU::syncObjects

Definition at line 66 of file GraphicsDeviceWebGPU.h.

◆ textures

TexturesWebGPU Cogs::GraphicsDeviceWebGPU::textures

Definition at line 67 of file GraphicsDeviceWebGPU.h.


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