Keos::CD3D9RenderSystem Class Reference

Class for Direct3D9 renderer system. More...

#include <KeosD3D9RenderSystem.h>

Inheritance diagram for Keos::CD3D9RenderSystem:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 CD3D9RenderSystem ()
 Constructor.
 ~CD3D9RenderSystem ()
 Destructor.
const StringGetName (void) const
 See RenderSystem.
virtual IRenderWindowInitialise (bool bAutoCreateWindow, const String &strWindowTitle="KEOS Render Window")
 See IRenderSystem.
virtual IRenderWindowCreateRenderWindow (const String &strName, uint nWidth, uint nHeight, uint nColourDepth, bool bFullScreen)
 See IRenderSystem.
virtual void Reinitialise (void)
 See IRenderSystem.
virtual void Shutdown (void)
 See IRenderSystem.
virtual void BeginScene (void) const
 Start a scene render.
virtual void EndScene (void) const
 End a scene render.
virtual void PrintInfo (void) const
 Print information on the API.
virtual IBufferBase_CreateVB (ulong nSize, ulong nStride, ulong nFlags) const
 See IRenderSystem.
virtual IBufferBase_CreateIB (ulong nSize, ulong nStride, ulong nFlags) const
 See IRenderSystem.
virtual IDeclarationCreateDeclaration (const TDeclarationElement *pElements, size_t nCount) const
 See IRenderSystem.
virtual void _SetVB (uint nStream, const IBufferBase *pBuffer, ulong nStride, ulong nMinVertex, ulong nMaxVertex)
 See IRenderSystem.
virtual void _SetIB (const IBufferBase *pBuffer, ulong nStride)
 See IRenderSystem.
virtual void SetDeclaration (const IDeclaration *pDeclaration)
 See IRenderSystem.
virtual void DrawPrimitives (TPrimitiveType Type, ulong nFirstVertex, ulong nCount) const
 See IRenderSystem.
virtual void DrawIndexedPrimitives (TPrimitiveType Type, ulong nFirstIndex, ulong nCount) const
 See IRenderSystem.
virtual void PushMatrix (TMatrixType Type)
 See IRenderSystem.
virtual void PopMatrix (TMatrixType Type)
 See IRenderSystem.
virtual void LoadMatrix (TMatrixType Type, const CMatrix4 &Matrix)
 See IRenderSystem.
virtual void LoadMatrixMult (TMatrixType Type, const CMatrix4 &Matrix)
 See IRenderSystem.
virtual void GetMatrix (TMatrixType Type, CMatrix4 &Matrix) const
 See IRenderSystem.
virtual ulong ConvertColor (const CColor &Color) const
 See IRenderSystem.
virtual ITextureBaseCreateTexture (const TVector2I &Size, TPixelFormat Format, ulong nFlags=0) const
 See IRenderSystem.
virtual void SetTexture (uint nUnit, const ITextureBase *pTexture) const
 See IRenderSystem.
virtual void SetupAlphaBlending (TBlend Src, TBlend Dest) const
 See IRenderSystem.
virtual void SetupTextureUnit (uint nUnit, TTextureOp Op, TTextureArg Arg1, TTextureArg Arg2=TXA_DIFFUSE, const CColor &Constant=0x00) const
 See IRenderSystem.
virtual void Enable (TRenderParameter Param, bool bValue) const
 See IRenderSystem.
virtual IShaderBaseCreateShader (CGprogram Program, TShaderType Type) const
 See IRenderSystem.
virtual void SetVertexShader (const IShaderBase *pShader)
 See IRenderSystem.
virtual void SetPixelShader (const IShaderBase *pShader)
 See IRenderSystem.
virtual void SetClearColor (const CColor &Color)
 See IRenderSystem.
virtual void SetLight (uint nIndex, CLight *pLight)
 See IRenderSystem.
virtual void SetFillMode (TFillMode Mode)
 See IRenderSystem.
void RestoreLostDevice (void)
 D3D specific method to restore a lost device.
bool IsDeviceLost (void)
 D3D specific method to return whether the device has been lost.
void _NotifyDeviceLost (void)
 Notify that a device has been lost.

Detailed Description

Class for Direct3D9 renderer system.

Bug:
Two popmatrix for one pushmatrix --> crash (Direct3D only).
Bug:
24bits RGB textures don't work (Direct3D only).

Definition at line 38 of file KeosD3D9RenderSystem.h.


Constructor & Destructor Documentation

Keos::CD3D9RenderSystem::CD3D9RenderSystem (  ) 

Constructor.

Definition at line 45 of file KeosD3D9RenderSystem.cpp.

References D3D9_EXCEPT, and Keos::CD3D9::pD3D.

Keos::CD3D9RenderSystem::~CD3D9RenderSystem (  ) 

Destructor.

Definition at line 64 of file KeosD3D9RenderSystem.cpp.

References Shutdown().


Member Function Documentation

const String & Keos::CD3D9RenderSystem::GetName ( void   )  const [virtual]

See RenderSystem.

Implements Keos::IRenderSystem.

Definition at line 72 of file KeosD3D9RenderSystem.cpp.

IRenderWindow * Keos::CD3D9RenderSystem::Initialise ( bool  bAutoCreateWindow,
const String strWindowTitle = "KEOS Render Window" 
) [virtual]

See IRenderSystem.

Reimplemented from Keos::IRenderSystem.

Definition at line 79 of file KeosD3D9RenderSystem.cpp.

References CreateRenderWindow(), D3D9_EXCEPT, Keos::ILogger::Log(), Keos::IRenderSystem::m_Options, Keos::CStringConverter::ParseBool(), and Keos::CStringConverter::ParseUnsignedInt().

Referenced by Reinitialise().

IRenderWindow * Keos::CD3D9RenderSystem::CreateRenderWindow ( const String strName,
uint  nWidth,
uint  nHeight,
uint  nColourDepth,
bool  bFullScreen 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 127 of file KeosD3D9RenderSystem.cpp.

References Keos::IRenderSystem::AttachRenderTarget(), Keos::CColor::Black, Keos::IRenderWindow::Create(), Keos::ILogger::Log(), Keos::CD3D9::pD3DDevice, and SetClearColor().

Referenced by Initialise().

void Keos::CD3D9RenderSystem::Reinitialise ( void   )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 113 of file KeosD3D9RenderSystem.cpp.

References Initialise(), and Shutdown().

void Keos::CD3D9RenderSystem::Shutdown ( void   )  [virtual]

See IRenderSystem.

Reimplemented from Keos::IRenderSystem.

Definition at line 120 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9::ReleaseDevice(), and Keos::IRenderSystem::Shutdown().

Referenced by Reinitialise(), and ~CD3D9RenderSystem().

void Keos::CD3D9RenderSystem::BeginScene ( void   )  const [virtual]

Start a scene render.

Implements Keos::IRenderSystem.

Definition at line 362 of file KeosD3D9RenderSystem.cpp.

References Keos::IRenderSystem::m_ClearColor, Keos::CD3D9::pD3DDevice, and Keos::CColor::ToRGBA().

void Keos::CD3D9RenderSystem::EndScene ( void   )  const [virtual]

End a scene render.

Implements Keos::IRenderSystem.

Definition at line 369 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::PrintInfo ( void   )  const [virtual]

Print information on the API.

Implements Keos::IRenderSystem.

Definition at line 375 of file KeosD3D9RenderSystem.cpp.

IBufferBase * Keos::CD3D9RenderSystem::_CreateVB ( ulong  nSize,
ulong  nStride,
ulong  nFlags 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 381 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::BufferFlags(), D3D9_EXCEPT, and Keos::CD3D9::pD3DDevice.

IBufferBase * Keos::CD3D9RenderSystem::_CreateIB ( ulong  nSize,
ulong  nStride,
ulong  nFlags 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 392 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::BufferFlags(), D3D9_EXCEPT, and Keos::CD3D9::pD3DDevice.

IDeclaration * Keos::CD3D9RenderSystem::CreateDeclaration ( const TDeclarationElement pElements,
size_t  nCount 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 403 of file KeosD3D9RenderSystem.cpp.

References Keos::ELT_TYPE_COLOR, Keos::ELT_TYPE_FLOAT1, Keos::ELT_TYPE_FLOAT2, Keos::ELT_TYPE_FLOAT3, Keos::ELT_TYPE_FLOAT4, Keos::ELT_USAGE_DIFFUSE, Keos::ELT_USAGE_NORMAL, Keos::ELT_USAGE_POSITION, Keos::ELT_USAGE_TEXCOORD0, Keos::ELT_USAGE_TEXCOORD1, Keos::ELT_USAGE_TEXCOORD2, and Keos::ELT_USAGE_TEXCOORD3.

void Keos::CD3D9RenderSystem::_SetVB ( uint  nStream,
const IBufferBase pBuffer,
ulong  nStride,
ulong  nMinVertex,
ulong  nMaxVertex 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 494 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Buffer< T >::GetBuffer(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::_SetIB ( const IBufferBase pBuffer,
ulong  nStride 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 508 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Buffer< T >::GetBuffer(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::SetDeclaration ( const IDeclaration pDeclaration  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 518 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Declaration::GetDeclaration(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::DrawPrimitives ( TPrimitiveType  Type,
ulong  nFirstVertex,
ulong  nCount 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 528 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::DrawIndexedPrimitives ( TPrimitiveType  Type,
ulong  nFirstIndex,
ulong  nCount 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 534 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::PushMatrix ( TMatrixType  Type  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 540 of file KeosD3D9RenderSystem.cpp.

void Keos::CD3D9RenderSystem::PopMatrix ( TMatrixType  Type  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 546 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::LoadMatrix ( TMatrixType  Type,
const CMatrix4 Matrix 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 554 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::LoadMatrixMult ( TMatrixType  Type,
const CMatrix4 Matrix 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 562 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::GetMatrix ( TMatrixType  Type,
CMatrix4 Matrix 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 570 of file KeosD3D9RenderSystem.cpp.

ulong Keos::CD3D9RenderSystem::ConvertColor ( const CColor Color  )  const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 576 of file KeosD3D9RenderSystem.cpp.

References Keos::CColor::ToARGB().

Referenced by SetupTextureUnit().

ITextureBase * Keos::CD3D9RenderSystem::CreateTexture ( const TVector2I Size,
TPixelFormat  Format,
ulong  nFlags = 0 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 582 of file KeosD3D9RenderSystem.cpp.

References Keos::CAP_HW_MIPMAPPING, D3D9_EXCEPT, Keos::CD3D9Enum::Get(), Keos::IRenderSystem::GetCapabilities(), Keos::CRenderSystemCapabilities::HasCapability(), Keos::CD3D9::pD3D, Keos::CD3D9::pD3DDevice, Keos::TEX_NOMIPMAP, Keos::CVector2< T >::x, and Keos::CVector2< T >::y.

void Keos::CD3D9RenderSystem::SetTexture ( uint  nUnit,
const ITextureBase pTexture 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 603 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Texture::GetD3D9Texture(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::SetupAlphaBlending ( TBlend  Src,
TBlend  Dest 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 610 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::SetupTextureUnit ( uint  nUnit,
TTextureOp  Op,
TTextureArg  Arg1,
TTextureArg  Arg2 = TXA_DIFFUSE,
const CColor Constant = 0x00 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 617 of file KeosD3D9RenderSystem.cpp.

References ConvertColor(), Keos::CD3D9Enum::Get(), Keos::CD3D9::pD3DDevice, Keos::TXA_CONSTANT, and Keos::TXO_ALPHA_FIRSTARG.

void Keos::CD3D9RenderSystem::Enable ( TRenderParameter  Param,
bool  bValue 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 641 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

IShaderBase * Keos::CD3D9RenderSystem::CreateShader ( CGprogram  Program,
TShaderType  Type 
) const [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 647 of file KeosD3D9RenderSystem.cpp.

void Keos::CD3D9RenderSystem::SetVertexShader ( const IShaderBase pShader  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 653 of file KeosD3D9RenderSystem.cpp.

References D3D9_EXCEPT, Keos::CD3D9Shader::GetProgram(), Keos::IShaderBase::GetType(), Keos::CD3D9::pD3DDevice, and Keos::SHADER_VERTEX.

void Keos::CD3D9RenderSystem::SetPixelShader ( const IShaderBase pShader  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 671 of file KeosD3D9RenderSystem.cpp.

References D3D9_EXCEPT, Keos::CD3D9Shader::GetProgram(), Keos::IShaderBase::GetType(), Keos::CD3D9::pD3DDevice, and Keos::SHADER_PIXEL.

void Keos::CD3D9RenderSystem::SetClearColor ( const CColor Color  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 721 of file KeosD3D9RenderSystem.cpp.

References Keos::IRenderSystem::m_ClearColor.

Referenced by CreateRenderWindow().

void Keos::CD3D9RenderSystem::SetLight ( uint  nIndex,
CLight pLight 
) [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 727 of file KeosD3D9RenderSystem.cpp.

References D3D9_EXCEPT, Keos::CLight::GetAttenuationConstant(), Keos::CLight::GetAttenuationLinear(), Keos::CLight::GetAttenuationQuadric(), Keos::CLight::GetAttenuationRange(), Keos::CLight::GetDiffuseColor(), Keos::CLight::GetDirection(), Keos::CLight::GetPosition(), Keos::CLight::GetSpecularColor(), Keos::CLight::GetSpotFalloff(), Keos::CLight::GetSpotInnerAngle(), Keos::CLight::GetSpotOuterAngle(), Keos::CLight::GetType(), Keos::CLight::LT_DIRECTIONAL, Keos::CLight::LT_POINT, Keos::CLight::LT_SPOT, Keos::CD3D9::pD3DDevice, Keos::CColor::ToFloat(), Keos::CRadian::valueRadians(), Keos::CVector3< T >::x, Keos::CVector3< T >::y, and Keos::CVector3< T >::z.

void Keos::CD3D9RenderSystem::SetFillMode ( TFillMode  Mode  )  [virtual]

See IRenderSystem.

Implements Keos::IRenderSystem.

Definition at line 798 of file KeosD3D9RenderSystem.cpp.

References Keos::CD3D9Enum::Get(), and Keos::CD3D9::pD3DDevice.

void Keos::CD3D9RenderSystem::RestoreLostDevice ( void   ) 

D3D specific method to restore a lost device.

Definition at line 689 of file KeosD3D9RenderSystem.cpp.

References D3D9_EXCEPT, Keos::IRenderSystem::m_pRenderWindow, and Keos::CD3D9::pD3DDevice.

Referenced by Keos::CD3D9Window::Update().

bool Keos::CD3D9RenderSystem::IsDeviceLost ( void   ) 

D3D specific method to return whether the device has been lost.

Definition at line 709 of file KeosD3D9RenderSystem.cpp.

Referenced by Keos::CD3D9Window::Update().

void Keos::CD3D9RenderSystem::_NotifyDeviceLost ( void   ) 

Notify that a device has been lost.

Definition at line 715 of file KeosD3D9RenderSystem.cpp.


The documentation for this class was generated from the following files:
Generated on Fri Mar 9 14:29:31 2007 for Keos by  doxygen 1.5.1-p1