TRendererCreator Class Reference

This class creates renderer device. More...

#include <RendererTypes.h>

List of all members.

Public Member Functions

virtual BOOL Destroy (void)=0
 This method destroys this object.
virtual BOOL EnumerateRenderers (void)=0
 This method creates all possible renderer device.
virtual BOOL FreeEnumerateRenderers (void)=0
 Frees all renderers enumerated via previous calling EnumerateRenderers() method.
virtual DWORD GetRenderersCount (void) const =0
 Returns number of created renderer devices created via last calling EnumRenderers() method.
virtual const TRendererCapsGetRendererCapabilities (DWORD index) const =0
 This method returns information about capabilities of specified renderer device.
virtual TRendererCreateRenderer (void *wnd, DWORD index, DWORD width, DWORD height, DWORD freqs, EnumGraphicFormat backBufferFormat, EnumGraphicFormat depthStencilFormat, BOOL window, BOOL vsync, EnumGraphicVertexShaderVersion vsVersion, EnumGraphicPixelShaderVersion psVersion, BOOL vsDebug, BOOL psDebug)=0
 Creates renderer device according to capabilities stored inside this class.


Detailed Description

This class creates renderer device.

Class must offers all possible types which may be created on system and theirs capabilities. Caller then select specified renderer identified by identificator.

This class may be create only from specialized function that exports renderer from DLL - CreateRendererCreator(void).

When renderer is created no other may be created until old renderer is destroyed. In TRenderer destructor must be secured static variable in TRendererCreator will be set to NULL, which identifies renderer doesn't exists. (This means TRenderer destructor set m_renderer member variable to NULL)

This class may be destroyed only via Release() method which may be called only when renderer is prepared to destroy.

This class is virtual, each renderer type (Direct3D,OpenGL) must implement this class inside DLL. Program choose DLL type and then load function CreateRendererCreator(void) from library to create renderer creator which create renderer device.

Definition at line 2979 of file RendererTypes.h.


Member Function Documentation

virtual TRenderer* TRendererCreator::CreateRenderer void *  wnd,
DWORD  index,
DWORD  width,
DWORD  height,
DWORD  freqs,
EnumGraphicFormat  backBufferFormat,
EnumGraphicFormat  depthStencilFormat,
BOOL  window,
BOOL  vsync,
EnumGraphicVertexShaderVersion  vsVersion,
EnumGraphicPixelShaderVersion  psVersion,
BOOL  vsDebug,
BOOL  psDebug
[pure virtual]
 

Creates renderer device according to capabilities stored inside this class.

After creating renderer is returned and joined with TRendererCreator object - from this moment no other TRenderer object can be created until created TRenderer object is destroyed. If renderer is already created then method returns pointer to this renderer.

If method fail then return NULL.

Parameters:
wnd [in] variable argument, under Windows is equal to handle to windows (HWND) where renderer will be created
index [in] index of renderer device capabilities dedicated to create renderer
width [in] width of backbuffer in pixels (must be available for this enumerated device)
height [in] height of backbuffer in pixels (must be available for this enumerated device)
freqs [in] refresh rate in Hz (must be available for this enumerated device)
backBufferFormat [in] format of backbuffer (must be one from those which are compatible with this display format in device caps structure, its recommended to use such a format which is available in fullscreen and windowed mode to like X8R8G8B8)
depthStencilFormat [in] format of depth stencil surface used in device (must be available on device and must be compatible with backbuffer format)
window [in] determines whether renderer will be created in window (may be changed later)
vsync [in] determines whether vertical synchronization will be used
vsVersion [in] version of vertex shader (determines number of VS registers, must be available on device)
psVersion [in] version of pixel shader (determines number of PS registers and texture samplers, must be available on device)
vsDebug [in] determines whether renderer will be support vertex shader debugging, if renderer doesnt supported debugging, warning will be printed
psDebug [in] determines whether renderer will be support pixel shader debugging (WARNING: Pixel shader debugging is on most hardware available only on reference (software) device), if renderer doesnt supported debugging, warning will be printed

Referenced by TRendererCreatorHelper::CreateRenderer().

virtual BOOL TRendererCreator::Destroy void   )  [pure virtual]
 

This method destroys this object.

Object may be destroyed only if no renderer is created.

TRenderer object must set variable m_renderer inside TRendererCreator to NULL while is destroyed.

Methods returns TRUE if object was destroyed, otherwise returns FALSE, because renderer object still exists.

Referenced by TRendererCreatorHelper::FreeEnumerateRenderers().

virtual BOOL TRendererCreator::EnumerateRenderers void   )  [pure virtual]
 

This method creates all possible renderer device.

This method must be called after TRendererCreator object is created. Calling this method automatically destroy previous enumerated renderer devices, if they exists. This method can be called even while renderer is created!!!

virtual BOOL TRendererCreator::FreeEnumerateRenderers void   )  [pure virtual]
 

Frees all renderers enumerated via previous calling EnumerateRenderers() method.

Referenced by TRendererCreatorHelper::FreeEnumerateRenderers().

virtual const TRendererCaps* TRendererCreator::GetRendererCapabilities DWORD  index  )  const [pure virtual]
 

This method returns information about capabilities of specified renderer device.

If index is out of range then NULL is returned.

Parameters:
index [in] index of renderer device - must be in range <0,GetRenderersCount()-1>

Referenced by TRendererCreatorHelper::FindRenderersHW(), TRendererCreatorHelper::FindRenderersSW(), TRendererCreatorHelper::GetClosestResolution(), and TRendererCreatorHelper::GetRendererCapabilities().

virtual DWORD TRendererCreator::GetRenderersCount void   )  const [pure virtual]
 

Returns number of created renderer devices created via last calling EnumRenderers() method.

Referenced by TRendererCreatorHelper::FindRenderersHW(), and TRendererCreatorHelper::FindRenderersSW().


The documentation for this class was generated from the following file:
Generated on Wed Nov 28 22:43:32 2007 for Joy4D by  doxygen 1.4.6-NO