XLE  v0.02.0
Public Member Functions | List of all members
RenderCore::DeviceDX11 Class Reference
Inheritance diagram for RenderCore::DeviceDX11:
Inheritance graph
[legend]

Public Member Functions

virtual void * QueryInterface (const GUID &guid)
 Looks for compatibility with another interface More...
 
ID3D::Device * GetUnderlyingDevice ()
 
ID3D::DeviceContext * GetImmediateDeviceContext ()
 
- Public Member Functions inherited from RenderCore::Device
std::unique_ptr< IPresentationChainCreatePresentationChain (const void *platformValue, unsigned width, unsigned height)
 Initialised a window for rendering More...
 
void BeginFrame (IPresentationChain *presentationChain)
 Begins rendering of a new frame More...
 
std::pair< const char *, const char * > GetVersionInformation ()
 Returns version information for this device More...
 
std::shared_ptr< IThreadContextGetImmediateContext ()
 
std::unique_ptr< IThreadContextCreateDeferredContext ()
 

Additional Inherited Members

- Protected Member Functions inherited from RenderCore::Device
intrusive_ptr< IDXGI::Factory > GetDXGIFactory ()
 
- Protected Attributes inherited from RenderCore::Device
intrusive_ptr< ID3D::Device > _underlying
 
intrusive_ptr< ID3D::DeviceContext > _immediateContext
 
D3D_FEATURE_LEVEL _featureLevel
 
std::shared_ptr< ThreadContextDX11_immediateThreadContext
 

Member Function Documentation

void * RenderCore::DeviceDX11::QueryInterface ( const GUID &  guid)
virtual

Looks for compatibility with another interface

Some implementations of IDevice might provide extension interfaces. to extensions.

Note that reference counting behaviour is not the same as DirectX/COM QueryInterface. RenderCore objects don't have reference counting built it. So we can't increase the reference count on return. So don't delete or deref the returned object. As a result, be careful that another thread doesn't delete the object as you're using it.

Example:

@code
RenderCore::IDeviceDX11* dx11Device =
(RenderCore::IDeviceDX11*)device->QueryInterface(__uuidof(RenderCore::IDeviceDX11));
if (dx11Device) {
...
}
\endcode
Parameters
guidA large random value that is unique to the interface. On the visual studio compiler, use the __uuidof() extension to get the correct guid for a class. For example, To query for the "IDeviceDX11" interface, use __uuid(RenderCore::IDeviceDX11).
Returns
Returns nullptr if the interface isn't supported
See also
RenderCore::IDeviceDX11, RenderCore::IDeviceOpenGLES

Implements RenderCore::IDevice.


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