Castor3D  ..
Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Amis | Liste de tous les membres
Référence de la classe Castor3D::RenderSystemabstract

Représentation du système de rendu. Plus de détails...

+ Graphe de collaboration de Castor3D::RenderSystem:

Fonctions membres publiques

 RenderSystem (Engine *p_pEngine, eRENDERER_TYPE p_eRendererType)
 Constructeur. Plus de détails...
 
virtual ~RenderSystem ()
 Destructeur. Plus de détails...
 
void Initialise ()
 Initialise le render system. Plus de détails...
 
void Cleanup ()
 Nettoie le render system. Plus de détails...
 
virtual void PrepareRenderersCleanup ()
 Met les renderers vidables à vider. Plus de détails...
 
virtual void CleanupRenderers ()
 Vide les renderers vidables. Plus de détails...
 
virtual bool CheckSupport (eSHADER_MODEL p_eProfile)=0
 Vérifie le support d'un modèle de shaders. Plus de détails...
 
virtual bool NeedsMatrixTransposition () const =0
 Vérifie si l'API de rendu nécessite de transposer les matrices pour les variables de shaders. Plus de détails...
 
template<class Ty >
std::shared_ptr< Ty > CreateRenderer ()
 Crée un renderer. Plus de détails...
 
OverlayRendererSPtr CreateOverlayRenderer ()
 Crée un renderer d'incrustations. Plus de détails...
 
std::shared_ptr< GpuBuffer
< uint8_t > > 
CreateVertexBuffer (BufferDeclaration const &p_elements, CpuBuffer< uint8_t > *p_pBuffer)
 Crée un tampon de sommets, selon une déclaration de tampon. Plus de détails...
 
std::shared_ptr< GpuBuffer
< uint32_t > > 
CreateIndexBuffer (CpuBuffer< uint32_t > *p_pBuffer)
 Crée un tampon d'indices. Plus de détails...
 
std::shared_ptr< GpuBuffer
< real > > 
CreateMatrixBuffer (CpuBuffer< real > *p_pBuffer)
 Crée un tampon de matrices. Plus de détails...
 
std::shared_ptr< GpuBuffer
< uint8_t > > 
CreateTextureBuffer (CpuBuffer< uint8_t > *p_pBuffer)
 Crée un tampon detexture. Plus de détails...
 
virtual GeometryBuffersSPtr CreateGeometryBuffers (VertexBufferUPtr p_pVertexBuffer, IndexBufferUPtr p_pIndexBuffer, MatrixBufferUPtr p_pMatrixBuffer)=0
 Crée un conteneur de buffers de géométrie. Plus de détails...
 
DynamicTextureSPtr CreateDynamicTexture ()
 Crée une texture dynamique. Plus de détails...
 
StaticTextureSPtr CreateStaticTexture ()
 Crée une texture statique. Plus de détails...
 
ShaderProgramBaseSPtr CreateShaderProgram ()
 Crée un ShaderProgram (GLSL ou HLSL seulement) Plus de détails...
 
ShaderProgramBaseSPtr CreateShaderProgram (eSHADER_LANGUAGE p_eLanguage)
 Crée un ShaderProgram dans un langage donné Plus de détails...
 
IPipelineImplCreatePipeline (Pipeline *p_pPipeline, eSHADER_LANGUAGE p_eLanguage)
 Crée un IPipelineImpl, dépendant d'un langage de shader. Plus de détails...
 
void DestroyPipeline (eSHADER_LANGUAGE p_eLanguage, IPipelineImpl *p_pPipeline)
 Détruit un IPipelineImpl spécifique à un langage. Plus de détails...
 
virtual void BeginOverlaysRendering (Castor::Size const &p_size)
 Démarre le rendu des overlays (éléments 2D) Plus de détails...
 
virtual void EndOverlaysRendering ()
 Termine le rendu des overlays (éléments 2D) Plus de détails...
 
void RenderAmbientLight (Castor::Colour const &p_clColour, ShaderProgramBase *p_pProgram)
 Rend la lumière ambiante de la scène. Plus de détails...
 
virtual int LockLight ()=0
 Verrouille l'index d'une lumière. Plus de détails...
 
virtual void UnlockLight (int p_iIndex)=0
 Déverrouille un index de lumière. Plus de détails...
 
void PushScene (Scene *p_pScene)
 Met une scène sur la pile. Plus de détails...
 
void PopScene ()
 Enlève la scène du haut de la pile. Plus de détails...
 
SceneGetTopScene ()
 Récupère la scène du haut de la pile. Plus de détails...
 
CameraGetCurrentCamera () const
 Récupère la caméra actuellement active. Plus de détails...
 
void SetCurrentCamera (Camera *p_pCamera)
 Définit la caméra actuellement active. Plus de détails...
 
bool UseMultiTexturing () const
 Dit si le multi-texturing est disponible. Plus de détails...
 
bool UseShaders () const
 Dit si les shaders sont disponibles. Plus de détails...
 
bool ForceShaders () const
 Dit si les shaders sont obligatoires (OpenGL 3.x/4.x) Plus de détails...
 
bool HasShaderType (eSHADER_TYPE p_eType) const
 Dit si le RenderSystem supporte le type de shader donné Plus de détails...
 
bool IsInitialised () const
 Dit si le RenderSystem est initialisé Plus de détails...
 
bool IsStereoAvailable () const
 Dit si le RenderSystem supporte la stéréo. Plus de détails...
 
void SetStereoAvailable (bool p_bStereo)
 Définit si le RenderSystem supporte la stéréo. Plus de détails...
 
EngineGetEngine () const
 Récupère le moteur. Plus de détails...
 
PipelineGetPipeline () const
 Récupère le pipeline. Plus de détails...
 
eRENDERER_TYPE GetRendererType () const
 Récupère l'API de rendu. Plus de détails...
 
bool HasInstancing () const
 Récupère le support de l'instanciation. Plus de détails...
 
bool HasAccumulationBuffer () const
 Récupère le support du buffer d'accumulation. Plus de détails...
 
bool HasNonPowerOfTwoTextures () const
 Récupère le support des textures non puissance de deux. Plus de détails...
 
virtual ContextSPtr CreateContext ()=0
 Crée un contexte de rendu. Plus de détails...
 
virtual FrameVariableBufferSPtr CreateFrameVariableBuffer (Castor::String const &p_strName)=0
 Crée un FrameVariableBuffer. Plus de détails...
 
void SetMainContext (ContextSPtr p_pContext)
 Définit le contexte de rendu principal. Plus de détails...
 
ContextSPtr GetMainContext ()
 Récupère le contexte de rendu principal. Plus de détails...
 
void SetCurrentContext (Context *p_pContext)
 Définit le contexte de rendu actuellement actif. Plus de détails...
 
ContextGetCurrentContext ()
 Récupère le contexte de rendu actuellement actif. Plus de détails...
 
OverlayRendererSPtr GetOverlayRenderer ()
 Récupère le renderer d'overlays. Plus de détails...
 
virtual bool SupportsDepthBuffer () const =0
 Dit si l'API de rendu supporte les tampons de profondeur pour le FBO principal. Plus de détails...
 
virtual DepthStencilStateSPtr CreateDepthStencilState ()=0
 Crée un objet d'états de depth et stencil. Plus de détails...
 
virtual RasteriserStateSPtr CreateRasteriserState ()=0
 Crée un objet d'états de rasteriser. Plus de détails...
 
virtual BlendStateSPtr CreateBlendState ()=0
 Crée un objet d'états de blend. Plus de détails...
 
virtual BillboardListSPtr CreateBillboardsList (SceneRPtr p_pScene)=0
 Crée une liste de billboards. Plus de détails...
 

Fonctions membres protégées

virtual void DoInitialise ()=0
 Initialise le render system. Plus de détails...
 
virtual void DoCleanup ()=0
 Nettoie le render system. Plus de détails...
 
virtual void DoRenderAmbientLight (Castor::Colour const &p_clColour)=0
 Rend la lumière ambiante de la scène, si elle ne peut être rendue au travers d'un shader. Plus de détails...
 
virtual ShaderProgramBaseSPtr DoCreateGlslShaderProgram ()=0
 Crée un ShaderProgram GLSL. Plus de détails...
 
virtual ShaderProgramBaseSPtr DoCreateHlslShaderProgram ()=0
 Crée un ShaderProgram HLSL. Plus de détails...
 
virtual ShaderProgramBaseSPtr DoCreateShaderProgram ()=0
 Crée un ShaderProgram (GLSL ou HLSL seulement) Plus de détails...
 
virtual SubmeshRendererSPtr DoCreateSubmeshRenderer ()=0
 Crée un renderer de submesh. Plus de détails...
 
virtual TextureRendererSPtr DoCreateTextureRenderer ()=0
 Crée un renderer de texture. Plus de détails...
 
virtual PassRendererSPtr DoCreatePassRenderer ()=0
 Crée un renderer de passe. Plus de détails...
 
virtual OverlayRendererSPtr DoCreateOverlayRenderer ()=0
 Crée un renderer d'incrustations. Plus de détails...
 
virtual CameraRendererSPtr DoCreateCameraRenderer ()=0
 Crée un renderer de caméra. Plus de détails...
 
virtual LightRendererSPtr DoCreateLightRenderer ()=0
 Crée un renderer de lumière. Plus de détails...
 
virtual WindowRendererSPtr DoCreateWindowRenderer ()=0
 Crée un renderer de fenêtre. Plus de détails...
 
virtual TargetRendererSPtr DoCreateTargetRenderer ()=0
 Crée un renderer d'overlay. Plus de détails...
 
virtual SamplerRendererSPtr DoCreateSamplerRenderer ()=0
 Crée un renderer de sampler. Plus de détails...
 
virtual std::shared_ptr
< GpuBuffer< uint8_t > > 
DoCreateVertexBuffer (BufferDeclaration const &p_elements, CpuBuffer< uint8_t > *p_pBuffer)=0
 Crée un tampon de sommets, selon une déclaration de tampon. Plus de détails...
 
virtual std::shared_ptr
< GpuBuffer< uint32_t > > 
DoCreateIndexBuffer (CpuBuffer< uint32_t > *p_pBuffer)=0
 Crée un tampon d'indices. Plus de détails...
 
virtual std::shared_ptr
< GpuBuffer< real > > 
DoCreateMatrixBuffer (CpuBuffer< real > *p_pBuffer)=0
 Crée un tampon de matrices. Plus de détails...
 
virtual std::shared_ptr
< GpuBuffer< uint8_t > > 
DoCreateTextureBuffer (CpuBuffer< uint8_t > *p_pBuffer)=0
 Crée un tampon detexture. Plus de détails...
 
virtual StaticTextureSPtr DoCreateStaticTexture ()=0
 Crée une texture. Plus de détails...
 
virtual DynamicTextureSPtr DoCreateDynamicTexture ()=0
 Crée une texture. Plus de détails...
 

Attributs protégés

std::recursive_mutex m_mutex
 Mutex pour rendre cette classe thread safe. Plus de détails...
 
bool m_useMultiTexturing
 Dit si le multi-texturing est supporté Plus de détails...
 
bool m_useShaders
 Dit si les shaders sont supportés. Plus de détails...
 
bool m_forceShaders
 Dit si les shaders sont forcés (OpenGl 3.x/4.x) Plus de détails...
 
bool m_useShader [eSHADER_TYPE_COUNT]
 Dit quel type de shaders sont supportés. Plus de détails...
 
bool m_bInitialised
 Dit si le render system est initialisé Plus de détails...
 
bool m_bInstancing
 Dit si l'API de rendu choisie supporte le dessin instancié Plus de détails...
 
bool m_bAccumBuffer
 Dit si l'API de rendu choisie supporte le buffer d'accumulation. Plus de détails...
 
bool m_bNonPowerOfTwoTextures
 Dit si l'API de rendu choisie supporte les textures non puissance de 2. Plus de détails...
 
SubmeshRendererPtrArray m_submeshRenderers
 Liste des renderer de submesh. Plus de détails...
 
TextureRendererPtrArray m_textureRenderers
 Liste des renderer de texture. Plus de détails...
 
PassRendererPtrArray m_passRenderers
 Liste des renderer de passe. Plus de détails...
 
LightRendererPtrArray m_lightRenderers
 Liste des renderer de lumière. Plus de détails...
 
WindowRendererPtrArray m_windowRenderers
 Liste des renderer de fenêtre. Plus de détails...
 
CameraRendererPtrArray m_cameraRenderers
 Liste des renderer de caméra. Plus de détails...
 
OverlayRendererPtrArray m_overlayRenderers
 Liste des renderer d'overlay. Plus de détails...
 
TargetRendererPtrArray m_targetRenderers
 Liste des renderer de render target. Plus de détails...
 
SamplerRendererPtrArray m_arraySamplerRenderers
 Liste des renderer de samplers. Plus de détails...
 
SubmeshRendererPtrArray m_submeshRenderersToCleanup
 Liste des renderer de submesh à détruire. Plus de détails...
 
TextureRendererPtrArray m_textureRenderersToCleanup
 Liste des renderer de texture à détruire. Plus de détails...
 
PassRendererPtrArray m_passRenderersToCleanup
 Liste des renderer de passe à détruire. Plus de détails...
 
LightRendererPtrArray m_lightRenderersToCleanup
 Liste des renderer de lumière à détruire. Plus de détails...
 
WindowRendererPtrArray m_windowRenderersToCleanup
 Liste des renderer de fenêtre à détruire. Plus de détails...
 
CameraRendererPtrArray m_cameraRenderersToCleanup
 Liste des renderer de caméra à détruire. Plus de détails...
 
OverlayRendererPtrArray m_overlayRenderersToCleanup
 Liste des renderer d'overlay à détruire. Plus de détails...
 
TargetRendererPtrArray m_targetRenderersToCleanup
 Liste des renderer de render target à détruire. Plus de détails...
 
SamplerRendererPtrArray m_arraySamplerRenderersToCleanup
 Liste des renderer de samplers à détruire. Plus de détails...
 
OverlayRendererSPtr m_overlayRenderer
 Le renderer d'overlays. Plus de détails...
 
ContextWPtr m_wpMainContext
 Le contexte de rendu principal. Plus de détails...
 
ContextRPtr m_pCurrentContext
 Le contexte de rendu actuellement actif. Plus de détails...
 
EngineRPtr m_pEngine
 Le moteur. Plus de détails...
 
Pipelinem_pPipeline
 Le pipeline contenant les matrices. Plus de détails...
 
std::stack< SceneRPtr > m_stackScenes
 Pile des scènes. Plus de détails...
 
eRENDERER_TYPE m_eRendererType
 Le type de l'api de rendu actuellement chargée. Plus de détails...
 
bool m_bStereoAvailable
 Dit si le RenderSystem supporte la stéréo. Plus de détails...
 
CameraRPtr m_pCurrentCamera
 La caméra actuellement active. Plus de détails...
 
eMTXMODE m_ePreviousMtxMode
 Le mode de matrice avant l'appel à BeginOverlaysRendering. Plus de détails...
 

Amis

template<class Ty >
struct RendererCreator
 
template<class Ty >
struct RendererAdder
 

Description détaillée

Représentation du système de rendu.

Auteur
Sylvain DOREMUS
Date
09/02/2010
Version
0.1
Remarques
Cette classe fait le lien entre Castor3D et l'api de rendu (OpenGL ou Direct3D)
Ainsi c'est aussi la seule classe à même de créer les renderers

Documentation des constructeurs et destructeur

Castor3D::RenderSystem::RenderSystem ( Engine p_pEngine,
eRENDERER_TYPE  p_eRendererType 
)

Constructeur.

Paramètres
[in]p_pEngineLe moteur
[in]p_eRendererTypeL'API de rendu
virtual Castor3D::RenderSystem::~RenderSystem ( )
virtual

Destructeur.

Documentation des fonctions membres

virtual void Castor3D::RenderSystem::BeginOverlaysRendering ( Castor::Size const &  p_size)
virtual

Démarre le rendu des overlays (éléments 2D)

Paramètres
[in]p_sizeLes dimensions de la cible du rendu
virtual bool Castor3D::RenderSystem::CheckSupport ( eSHADER_MODEL  p_eProfile)
pure virtual

Vérifie le support d'un modèle de shaders.

Paramètres
[in]p_eProfileLe modèle de shaders
Renvoie
false si le modèle donné n'est pas supporté par l'API actuelle
void Castor3D::RenderSystem::Cleanup ( )

Nettoie le render system.

virtual void Castor3D::RenderSystem::CleanupRenderers ( )
virtual

Vide les renderers vidables.

virtual BillboardListSPtr Castor3D::RenderSystem::CreateBillboardsList ( SceneRPtr  p_pScene)
pure virtual

Crée une liste de billboards.

Paramètres
[in]p_pSceneLa scène parente
Renvoie
L'objet
virtual BlendStateSPtr Castor3D::RenderSystem::CreateBlendState ( )
pure virtual

Crée un objet d'états de blend.

Renvoie
L'objet
virtual ContextSPtr Castor3D::RenderSystem::CreateContext ( )
pure virtual

Crée un contexte de rendu.

Renvoie
Le contexte créé
virtual DepthStencilStateSPtr Castor3D::RenderSystem::CreateDepthStencilState ( )
pure virtual

Crée un objet d'états de depth et stencil.

Renvoie
L'objet
DynamicTextureSPtr Castor3D::RenderSystem::CreateDynamicTexture ( )

Crée une texture dynamique.

Remarques
Seul le render system peut faire ça
Renvoie
La texture créée, dépendante de l'API actuelle
virtual FrameVariableBufferSPtr Castor3D::RenderSystem::CreateFrameVariableBuffer ( Castor::String const &  p_strName)
pure virtual

Crée un FrameVariableBuffer.

Renvoie
Le FrameVariableBuffer créé
virtual GeometryBuffersSPtr Castor3D::RenderSystem::CreateGeometryBuffers ( VertexBufferUPtr  p_pVertexBuffer,
IndexBufferUPtr  p_pIndexBuffer,
MatrixBufferUPtr  p_pMatrixBuffer 
)
pure virtual

Crée un conteneur de buffers de géométrie.

Paramètres
[in]p_pVertexBufferLe tampon de sommets
[in]p_pIndexBufferLe tampon d'indices
[in]p_pMatrixBufferLe tampon de matrices
Renvoie
Le conteneur de buffers de géométrie
std::shared_ptr< GpuBuffer< uint32_t > > Castor3D::RenderSystem::CreateIndexBuffer ( CpuBuffer< uint32_t > *  p_pBuffer)

Crée un tampon d'indices.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon d'indices
Renvoie
Le tampon d'indices créé, dépendant de l'API actuelle
std::shared_ptr< GpuBuffer< real > > Castor3D::RenderSystem::CreateMatrixBuffer ( CpuBuffer< real > *  p_pBuffer)

Crée un tampon de matrices.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon
Renvoie
Le tampon créé, dépendant de l'API actuelle
OverlayRendererSPtr Castor3D::RenderSystem::CreateOverlayRenderer ( )

Crée un renderer d'incrustations.

Renvoie
Le renderer créé
IPipelineImpl* Castor3D::RenderSystem::CreatePipeline ( Pipeline p_pPipeline,
eSHADER_LANGUAGE  p_eLanguage 
)

Crée un IPipelineImpl, dépendant d'un langage de shader.

Paramètres
[in]p_pPipelineLe pipeline parent
[in]p_eLanguageLe langage de shader
Renvoie
Le IPipelineImpl créé, NULL si le langage n'est pas supporté
virtual RasteriserStateSPtr Castor3D::RenderSystem::CreateRasteriserState ( )
pure virtual

Crée un objet d'états de rasteriser.

Renvoie
L'objet
template<class Ty >
std::shared_ptr< Ty > Castor3D::RenderSystem::CreateRenderer ( )

Crée un renderer.

Remarques
Seul le render system peut faire ça
Renvoie
Le renderer créé
ShaderProgramBaseSPtr Castor3D::RenderSystem::CreateShaderProgram ( )

Crée un ShaderProgram (GLSL ou HLSL seulement)

Remarques
Seul le render system peut faire ça
Renvoie
Le ShaderProgram créé
ShaderProgramBaseSPtr Castor3D::RenderSystem::CreateShaderProgram ( eSHADER_LANGUAGE  p_eLanguage)

Crée un ShaderProgram dans un langage donné

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_eLanguageLe langage du shader
Renvoie
Le ShaderProgram créé
StaticTextureSPtr Castor3D::RenderSystem::CreateStaticTexture ( )

Crée une texture statique.

Remarques
Seul le render system peut faire ça
Renvoie
La texture créée, dépendante de l'API actuelle
std::shared_ptr< GpuBuffer< uint8_t > > Castor3D::RenderSystem::CreateTextureBuffer ( CpuBuffer< uint8_t > *  p_pBuffer)

Crée un tampon detexture.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon de texture
Renvoie
Le tampon de texture créé, dépendant de l'API actuelle
std::shared_ptr< GpuBuffer< uint8_t > > Castor3D::RenderSystem::CreateVertexBuffer ( BufferDeclaration const &  p_elements,
CpuBuffer< uint8_t > *  p_pBuffer 
)

Crée un tampon de sommets, selon une déclaration de tampon.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_elementsLa déclaration de tampon
[in]p_pBufferLe tampon hardware auquel sera lié le tampon de sommets
Renvoie
Le tampon de sommets créé, dépendant de l'API actuelle
void Castor3D::RenderSystem::DestroyPipeline ( eSHADER_LANGUAGE  p_eLanguage,
IPipelineImpl p_pPipeline 
)

Détruit un IPipelineImpl spécifique à un langage.

Paramètres
[in]p_eLanguageLe langage de shader
[in]p_pPipelineLe IPipelineImpl
virtual void Castor3D::RenderSystem::DoCleanup ( )
protectedpure virtual

Nettoie le render system.

virtual CameraRendererSPtr Castor3D::RenderSystem::DoCreateCameraRenderer ( )
protectedpure virtual

Crée un renderer de caméra.

Renvoie
Le renderer créé
virtual DynamicTextureSPtr Castor3D::RenderSystem::DoCreateDynamicTexture ( )
protectedpure virtual

Crée une texture.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_eTypeLe type de texture
Renvoie
La texture créée, dépendante de l'API actuelle
virtual ShaderProgramBaseSPtr Castor3D::RenderSystem::DoCreateGlslShaderProgram ( )
protectedpure virtual

Crée un ShaderProgram GLSL.

Renvoie
Le ShaderProgram créé
virtual ShaderProgramBaseSPtr Castor3D::RenderSystem::DoCreateHlslShaderProgram ( )
protectedpure virtual

Crée un ShaderProgram HLSL.

Renvoie
Le ShaderProgram créé
virtual std::shared_ptr< GpuBuffer< uint32_t > > Castor3D::RenderSystem::DoCreateIndexBuffer ( CpuBuffer< uint32_t > *  p_pBuffer)
protectedpure virtual

Crée un tampon d'indices.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon d'indices
Renvoie
Le tampon d'indices créé, dépendant de l'API actuelle
virtual LightRendererSPtr Castor3D::RenderSystem::DoCreateLightRenderer ( )
protectedpure virtual

Crée un renderer de lumière.

Renvoie
Le renderer créé
virtual std::shared_ptr< GpuBuffer< real > > Castor3D::RenderSystem::DoCreateMatrixBuffer ( CpuBuffer< real > *  p_pBuffer)
protectedpure virtual

Crée un tampon de matrices.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon
Renvoie
Le tampon créé, dépendant de l'API actuelle
virtual OverlayRendererSPtr Castor3D::RenderSystem::DoCreateOverlayRenderer ( )
protectedpure virtual

Crée un renderer d'incrustations.

Renvoie
Le renderer créé
virtual PassRendererSPtr Castor3D::RenderSystem::DoCreatePassRenderer ( )
protectedpure virtual

Crée un renderer de passe.

Renvoie
Le renderer créé
virtual SamplerRendererSPtr Castor3D::RenderSystem::DoCreateSamplerRenderer ( )
protectedpure virtual

Crée un renderer de sampler.

Renvoie
Le renderer créé
virtual ShaderProgramBaseSPtr Castor3D::RenderSystem::DoCreateShaderProgram ( )
protectedpure virtual

Crée un ShaderProgram (GLSL ou HLSL seulement)

Renvoie
Le ShaderProgram créé
virtual StaticTextureSPtr Castor3D::RenderSystem::DoCreateStaticTexture ( )
protectedpure virtual

Crée une texture.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_eTypeLe type de texture
Renvoie
La texture créée, dépendante de l'API actuelle
virtual SubmeshRendererSPtr Castor3D::RenderSystem::DoCreateSubmeshRenderer ( )
protectedpure virtual

Crée un renderer de submesh.

Renvoie
Le renderer créé
virtual TargetRendererSPtr Castor3D::RenderSystem::DoCreateTargetRenderer ( )
protectedpure virtual

Crée un renderer d'overlay.

Renvoie
Le renderer créé
virtual std::shared_ptr< GpuBuffer< uint8_t > > Castor3D::RenderSystem::DoCreateTextureBuffer ( CpuBuffer< uint8_t > *  p_pBuffer)
protectedpure virtual

Crée un tampon detexture.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_pBufferLe tampon hardware auquel sera lié le tampon de texture
Renvoie
Le tampon de texture créé, dépendant de l'API actuelle
virtual TextureRendererSPtr Castor3D::RenderSystem::DoCreateTextureRenderer ( )
protectedpure virtual

Crée un renderer de texture.

Renvoie
Le renderer créé
virtual std::shared_ptr< GpuBuffer< uint8_t > > Castor3D::RenderSystem::DoCreateVertexBuffer ( BufferDeclaration const &  p_elements,
CpuBuffer< uint8_t > *  p_pBuffer 
)
protectedpure virtual

Crée un tampon de sommets, selon une déclaration de tampon.

Remarques
Seul le render system peut faire ça
Paramètres
[in]p_elementsLa déclaration de tampon
[in]p_pBufferLe tampon hardware auquel sera lié le tampon de sommets
Renvoie
Le tampon de sommets créé, dépendant de l'API actuelle
virtual WindowRendererSPtr Castor3D::RenderSystem::DoCreateWindowRenderer ( )
protectedpure virtual

Crée un renderer de fenêtre.

Renvoie
Le renderer créé
virtual void Castor3D::RenderSystem::DoInitialise ( )
protectedpure virtual

Initialise le render system.

virtual void Castor3D::RenderSystem::DoRenderAmbientLight ( Castor::Colour const &  p_clColour)
protectedpure virtual

Rend la lumière ambiante de la scène, si elle ne peut être rendue au travers d'un shader.

Paramètres
[in]p_clColourLa couleur de la lumière
virtual void Castor3D::RenderSystem::EndOverlaysRendering ( )
virtual

Termine le rendu des overlays (éléments 2D)

bool Castor3D::RenderSystem::ForceShaders ( ) const
inline

Dit si les shaders sont obligatoires (OpenGL 3.x/4.x)

Camera* Castor3D::RenderSystem::GetCurrentCamera ( ) const

Récupère la caméra actuellement active.

Renvoie
La caméra
Context* Castor3D::RenderSystem::GetCurrentContext ( )
inline

Récupère le contexte de rendu actuellement actif.

Renvoie
Le contexte
Engine* Castor3D::RenderSystem::GetEngine ( ) const
inline

Récupère le moteur.

ContextSPtr Castor3D::RenderSystem::GetMainContext ( )
inline

Récupère le contexte de rendu principal.

Renvoie
Le contexte
OverlayRendererSPtr Castor3D::RenderSystem::GetOverlayRenderer ( )
inline

Récupère le renderer d'overlays.

Renvoie
La valeur
Pipeline* Castor3D::RenderSystem::GetPipeline ( ) const
inline

Récupère le pipeline.

eRENDERER_TYPE Castor3D::RenderSystem::GetRendererType ( ) const
inline

Récupère l'API de rendu.

Scene* Castor3D::RenderSystem::GetTopScene ( )

Récupère la scène du haut de la pile.

Renvoie
La scène, NULL si la pile est vide
bool Castor3D::RenderSystem::HasAccumulationBuffer ( ) const
inline

Récupère le support du buffer d'accumulation.

Renvoie
La valeur
bool Castor3D::RenderSystem::HasInstancing ( ) const
inline

Récupère le support de l'instanciation.

Renvoie
La valeur
bool Castor3D::RenderSystem::HasNonPowerOfTwoTextures ( ) const
inline

Récupère le support des textures non puissance de deux.

Renvoie
La valeur
bool Castor3D::RenderSystem::HasShaderType ( eSHADER_TYPE  p_eType) const
inline

Dit si le RenderSystem supporte le type de shader donné

Paramètres
[in]p_eTypeLe type de shader
void Castor3D::RenderSystem::Initialise ( )

Initialise le render system.

bool Castor3D::RenderSystem::IsInitialised ( ) const
inline

Dit si le RenderSystem est initialisé

bool Castor3D::RenderSystem::IsStereoAvailable ( ) const
inline

Dit si le RenderSystem supporte la stéréo.

virtual int Castor3D::RenderSystem::LockLight ( )
pure virtual

Verrouille l'index d'une lumière.

Remarques
8 lumières peuvent être rendues à la fois en mode non shader
Renvoie
L'index verrouillé, -1 s'il n'y en a plus de disponible
virtual bool Castor3D::RenderSystem::NeedsMatrixTransposition ( ) const
pure virtual

Vérifie si l'API de rendu nécessite de transposer les matrices pour les variables de shaders.

Remarques
Nécessaire à cause de Direct3D 11
Renvoie
false s'il la transposition n'est pas nécessaire
void Castor3D::RenderSystem::PopScene ( )

Enlève la scène du haut de la pile.

virtual void Castor3D::RenderSystem::PrepareRenderersCleanup ( )
virtual

Met les renderers vidables à vider.

void Castor3D::RenderSystem::PushScene ( Scene p_pScene)

Met une scène sur la pile.

Paramètres
[in]p_pSceneLa scène
void Castor3D::RenderSystem::RenderAmbientLight ( Castor::Colour const &  p_clColour,
ShaderProgramBase p_pProgram 
)

Rend la lumière ambiante de la scène.

Paramètres
[in]p_clColourLa couleur de la lumière
[in]p_pProgramLe ShaderProgram, le cas échéant
void Castor3D::RenderSystem::SetCurrentCamera ( Camera p_pCamera)

Définit la caméra actuellement active.

Paramètres
[in]p_pCameraLa caméra
void Castor3D::RenderSystem::SetCurrentContext ( Context p_pContext)
inline

Définit le contexte de rendu actuellement actif.

Paramètres
[in]p_pContextLe contexte
void Castor3D::RenderSystem::SetMainContext ( ContextSPtr  p_pContext)
inline

Définit le contexte de rendu principal.

Paramètres
[in]p_pContextLe contexte
void Castor3D::RenderSystem::SetStereoAvailable ( bool  p_bStereo)
inline

Définit si le RenderSystem supporte la stéréo.

virtual bool Castor3D::RenderSystem::SupportsDepthBuffer ( ) const
pure virtual

Dit si l'API de rendu supporte les tampons de profondeur pour le FBO principal.

Renvoie
Le statut du support
virtual void Castor3D::RenderSystem::UnlockLight ( int  p_iIndex)
pure virtual

Déverrouille un index de lumière.

Paramètres
[in]p_iIndexL'index
bool Castor3D::RenderSystem::UseMultiTexturing ( ) const
inline

Dit si le multi-texturing est disponible.

bool Castor3D::RenderSystem::UseShaders ( ) const
inline

Dit si les shaders sont disponibles.

Documentation des fonctions amies et associées

template<class Ty >
friend struct RendererAdder
friend
template<class Ty >
friend struct RendererCreator
friend

Documentation des données membres

SamplerRendererPtrArray Castor3D::RenderSystem::m_arraySamplerRenderers
protected

Liste des renderer de samplers.

SamplerRendererPtrArray Castor3D::RenderSystem::m_arraySamplerRenderersToCleanup
protected

Liste des renderer de samplers à détruire.

bool Castor3D::RenderSystem::m_bAccumBuffer
protected

Dit si l'API de rendu choisie supporte le buffer d'accumulation.

bool Castor3D::RenderSystem::m_bInitialised
protected

Dit si le render system est initialisé

bool Castor3D::RenderSystem::m_bInstancing
protected

Dit si l'API de rendu choisie supporte le dessin instancié

bool Castor3D::RenderSystem::m_bNonPowerOfTwoTextures
protected

Dit si l'API de rendu choisie supporte les textures non puissance de 2.

bool Castor3D::RenderSystem::m_bStereoAvailable
protected

Dit si le RenderSystem supporte la stéréo.

CameraRendererPtrArray Castor3D::RenderSystem::m_cameraRenderers
protected

Liste des renderer de caméra.

CameraRendererPtrArray Castor3D::RenderSystem::m_cameraRenderersToCleanup
protected

Liste des renderer de caméra à détruire.

eMTXMODE Castor3D::RenderSystem::m_ePreviousMtxMode
protected

Le mode de matrice avant l'appel à BeginOverlaysRendering.

eRENDERER_TYPE Castor3D::RenderSystem::m_eRendererType
protected

Le type de l'api de rendu actuellement chargée.

bool Castor3D::RenderSystem::m_forceShaders
protected

Dit si les shaders sont forcés (OpenGl 3.x/4.x)

LightRendererPtrArray Castor3D::RenderSystem::m_lightRenderers
protected

Liste des renderer de lumière.

LightRendererPtrArray Castor3D::RenderSystem::m_lightRenderersToCleanup
protected

Liste des renderer de lumière à détruire.

std::recursive_mutex Castor3D::RenderSystem::m_mutex
protected

Mutex pour rendre cette classe thread safe.

OverlayRendererSPtr Castor3D::RenderSystem::m_overlayRenderer
protected

Le renderer d'overlays.

OverlayRendererPtrArray Castor3D::RenderSystem::m_overlayRenderers
protected

Liste des renderer d'overlay.

OverlayRendererPtrArray Castor3D::RenderSystem::m_overlayRenderersToCleanup
protected

Liste des renderer d'overlay à détruire.

PassRendererPtrArray Castor3D::RenderSystem::m_passRenderers
protected

Liste des renderer de passe.

PassRendererPtrArray Castor3D::RenderSystem::m_passRenderersToCleanup
protected

Liste des renderer de passe à détruire.

CameraRPtr Castor3D::RenderSystem::m_pCurrentCamera
protected

La caméra actuellement active.

ContextRPtr Castor3D::RenderSystem::m_pCurrentContext
protected

Le contexte de rendu actuellement actif.

EngineRPtr Castor3D::RenderSystem::m_pEngine
protected

Le moteur.

Pipeline* Castor3D::RenderSystem::m_pPipeline
protected

Le pipeline contenant les matrices.

std::stack< SceneRPtr > Castor3D::RenderSystem::m_stackScenes
protected

Pile des scènes.

SubmeshRendererPtrArray Castor3D::RenderSystem::m_submeshRenderers
protected

Liste des renderer de submesh.

SubmeshRendererPtrArray Castor3D::RenderSystem::m_submeshRenderersToCleanup
protected

Liste des renderer de submesh à détruire.

TargetRendererPtrArray Castor3D::RenderSystem::m_targetRenderers
protected

Liste des renderer de render target.

TargetRendererPtrArray Castor3D::RenderSystem::m_targetRenderersToCleanup
protected

Liste des renderer de render target à détruire.

TextureRendererPtrArray Castor3D::RenderSystem::m_textureRenderers
protected

Liste des renderer de texture.

TextureRendererPtrArray Castor3D::RenderSystem::m_textureRenderersToCleanup
protected

Liste des renderer de texture à détruire.

bool Castor3D::RenderSystem::m_useMultiTexturing
protected

Dit si le multi-texturing est supporté

bool Castor3D::RenderSystem::m_useShader[eSHADER_TYPE_COUNT]
protected

Dit quel type de shaders sont supportés.

bool Castor3D::RenderSystem::m_useShaders
protected

Dit si les shaders sont supportés.

WindowRendererPtrArray Castor3D::RenderSystem::m_windowRenderers
protected

Liste des renderer de fenêtre.

WindowRendererPtrArray Castor3D::RenderSystem::m_windowRenderersToCleanup
protected

Liste des renderer de fenêtre à détruire.

ContextWPtr Castor3D::RenderSystem::m_wpMainContext
protected

Le contexte de rendu principal.


La documentation de cette classe a été générée à partir du fichier suivant :