Cogs.Core
|
Public Member Functions | |
GraphicsDeviceD3D11 (RenderingAllocatorInfo *allocator) | |
bool | initialize () |
Initializes the graphics device with the settings previous set through calling setSettings. | |
std::string | getIdentifier () const override |
Get the graphics device identifier. | |
GraphicsDeviceType | getType () const override |
Get the type of the graphics device. | |
void | beginFrame () |
Signal the beginning of a new frame to the graphics device. | |
void | endFrame (uint32_t syncInterval=0, uint32_t presentFlags=PresentFlags::None) |
Signal the end of a frame to the graphics device. | |
void | releaseResources () |
Release all resources allocated. | |
virtual ISwapChain * | createSwapChain (struct WindowData *windowData) override |
Create a new swap chain for the specified window. | |
virtual void | deleteSwapChain (ISwapChain *swapChain) override |
Deletes the specified swap chain. | |
void | setSize (int newWidth, int newHeight) |
Set the size of the main drawing buffer used by the graphics device in pixels. | |
bool | getSize (int &w, int &h) const override |
Retrieve the size previously set by setSize. | |
bool | resizeSharedSurfaces () |
IBuffers * | getBuffers () |
Get a pointer to the buffer management interface. | |
ITextures * | getTextures () |
Get a pointer to the texture management interface. | |
IContext * | getImmediateContext () |
Get a pointer to the immediate context used to issue commands to the graphics device. | |
IEffects * | getEffects () |
Get a pointer to the effect management interface. | |
IPipelineStates * | getPipelineStates () |
Get a pointer to the pipeline state management interface. | |
IRenderTargets * | getRenderTargets () |
Get a pointer to the render target management interface. | |
ICapabilities * | getCapabilities () |
Get a pointer to the capability management interface used to query the graphics device capability flags. | |
ISyncObjects * | getSyncObjects () override |
Get a pointer to the sync object management interface. | |
SwapChainD3D11 * | getDefaultSwapChain () override |
Get a pointer to the default swap chain for this graphics device. | |
virtual void * | getNativeDevice () override |
ResourcePointer< ID3D11Device > & | getDevice () |
Memory::Allocator * | getResourceAllocator () |
ResourceStatistics | getResourceStatistics () override |
![]() | |
virtual | ~IGraphicsDevice ()=default |
Destructor. | |
virtual bool | initializeThread () |
Initialize the graphics device for operation on the current thread. | |
virtual SharedGraphicsContext * | createSharedContext () |
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 ISwapChain * | createSwapChain (struct WindowData *) |
Create a new swap chain for the specified window. | |
virtual void | deleteSwapChain (ISwapChain *) |
Deletes the specified swap chain. | |
virtual IContext * | getImmediateContext ()=0 |
Get a pointer to the immediate context used to issue commands to the graphics device. | |
virtual IBuffers * | getBuffers ()=0 |
Get a pointer to the buffer management interface. | |
virtual ITextures * | getTextures ()=0 |
Get a pointer to the texture management interface. | |
virtual IRenderTargets * | getRenderTargets ()=0 |
Get a pointer to the render target management interface. | |
virtual IEffects * | getEffects ()=0 |
Get a pointer to the effect management interface. | |
virtual IPipelineStates * | getPipelineStates ()=0 |
Get a pointer to the pipeline state management interface. | |
virtual ICapabilities * | getCapabilities ()=0 |
Get a pointer to the capability management interface used to query the graphics device capability flags. | |
virtual ISwapChain * | getDefaultSwapChain ()=0 |
Get a pointer to the default swap chain for this graphics device. | |
virtual ISyncObjects * | getSyncObjects ()=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 GraphicsDeviceSettings & | getSettings () const |
Private Member Functions | |
bool | initializeDeviceAndSwapChain () |
bool | initializeDeviceShared () |
void | setupDebugging () |
HRESULT | createDevice (IDXGIAdapter *adapter, D3D_DRIVER_TYPE driverType, UINT flags, const std::vector< D3D_FEATURE_LEVEL > &featureLevelsRequested, D3D_FEATURE_LEVEL &apiFeatureLevel) |
Private Attributes | |
std::unique_ptr< Memory::Allocator > | resourceAllocator |
ResourcePointer< ID3D11Device > | device |
ResourcePointer< ID3D11Device1 > | device1 |
ResourcePointer< ID3D11Device5 > | device5 |
ResourcePointer< ID3D11InfoQueue > | infoQueue |
SwapChainD3D11 | defaultSwapChain |
ContextD3D11 | context |
CapabilitiesD3D11 | capabilities |
BuffersD3D11 | buffers |
TexturesD3D11 | textures |
EffectsD3D11 | effects |
RenderTargetsD3D11 | renderTargets |
SyncObjectsD3D11 | syncObjects |
bool | inFrame = false |
Additional Inherited Members | |
![]() | |
static void | fillGraphicsSettings (struct WindowData *windowData, int requestedSampleCount) |
Set platform specific graphics settings used for window creation e.g.: XVisualInfo on Linux. | |
![]() | |
GraphicsDeviceSettings | settings |
std::vector< ISwapChain * > | swapChains |
Definition at line 18 of file GraphicsDeviceD3D11.h.
Cogs::GraphicsDeviceD3D11::GraphicsDeviceD3D11 | ( | RenderingAllocatorInfo * | allocator | ) |
Definition at line 74 of file GraphicsDeviceD3D11.cpp.
|
virtual |
Signal the beginning of a new frame to the graphics device.
Implements Cogs::IGraphicsDevice.
Definition at line 124 of file GraphicsDeviceD3D11.cpp.
|
private |
Definition at line 480 of file GraphicsDeviceD3D11.cpp.
|
overridevirtual |
Create a new swap chain for the specified window.
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 178 of file GraphicsDeviceD3D11.cpp.
|
overridevirtual |
Deletes the specified swap chain.
The swap chain must have been previously created through a call to createSwapChain.
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 189 of file GraphicsDeviceD3D11.cpp.
|
virtual |
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.
syncInterval | Synchronization interval.
|
presentFlags | A combination of PresentFlags controlling the presentation of the rendered frame. |
Implements Cogs::IGraphicsDevice.
Definition at line 137 of file GraphicsDeviceD3D11.cpp.
References Cogs::Logging::Log::logFileLine(), and Cogs::Logging::Unspecified.
|
inlinevirtual |
Get a pointer to the buffer management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 41 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the capability management interface used to query the graphics device capability flags.
Implements Cogs::IGraphicsDevice.
Definition at line 47 of file GraphicsDeviceD3D11.h.
|
inlineoverridevirtual |
Get a pointer to the default swap chain for this graphics device.
Implements Cogs::IGraphicsDevice.
Definition at line 49 of file GraphicsDeviceD3D11.h.
|
inline |
Definition at line 52 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the effect management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 44 of file GraphicsDeviceD3D11.h.
|
inlineoverridevirtual |
Get the graphics device identifier.
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 26 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the immediate context used to issue commands to the graphics device.
Implements Cogs::IGraphicsDevice.
Definition at line 43 of file GraphicsDeviceD3D11.h.
|
inlineoverridevirtual |
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 51 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the pipeline state management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 45 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the render target management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 46 of file GraphicsDeviceD3D11.h.
|
inline |
Definition at line 53 of file GraphicsDeviceD3D11.h.
|
overridevirtual |
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 461 of file GraphicsDeviceD3D11.cpp.
|
overridevirtual |
Retrieve the size previously set by setSize.
Implements Cogs::IGraphicsDevice.
Definition at line 203 of file GraphicsDeviceD3D11.cpp.
|
inlineoverridevirtual |
Get a pointer to the sync object management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 48 of file GraphicsDeviceD3D11.h.
|
inlinevirtual |
Get a pointer to the texture management interface.
Implements Cogs::IGraphicsDevice.
Definition at line 42 of file GraphicsDeviceD3D11.h.
|
inlineoverridevirtual |
Get the type of the graphics device.
Reimplemented from Cogs::IGraphicsDevice.
Definition at line 27 of file GraphicsDeviceD3D11.h.
References Cogs::Direct3D11.
|
virtual |
Initializes the graphics device with the settings previous set through calling setSettings.
Implements Cogs::IGraphicsDevice.
Definition at line 84 of file GraphicsDeviceD3D11.cpp.
References Cogs::UseSharedSurface.
|
private |
Definition at line 258 of file GraphicsDeviceD3D11.cpp.
|
private |
Definition at line 378 of file GraphicsDeviceD3D11.cpp.
|
virtual |
Release all resources allocated.
Implements Cogs::IGraphicsDevice.
Definition at line 171 of file GraphicsDeviceD3D11.cpp.
bool Cogs::GraphicsDeviceD3D11::resizeSharedSurfaces | ( | ) |
Definition at line 209 of file GraphicsDeviceD3D11.cpp.
|
virtual |
Set the size of the main drawing buffer used by the graphics device in pixels.
width | Width of the drawing buffer in pixels. |
height | Height of the drawing buffer in pixels. |
Implements Cogs::IGraphicsDevice.
Definition at line 199 of file GraphicsDeviceD3D11.cpp.
|
private |
Definition at line 425 of file GraphicsDeviceD3D11.cpp.
|
private |
Definition at line 79 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 78 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 77 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 76 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 71 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 72 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 73 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 81 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 74 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 85 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 82 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 65 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 83 of file GraphicsDeviceD3D11.h.
|
private |
Definition at line 80 of file GraphicsDeviceD3D11.h.