Castor3D  ..
Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | 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 d'héritage de Castor3D::RenderSystem:
+ Graphe de collaboration de Castor3D::RenderSystem:

Fonctions membres publiques

C3D_API RenderSystem (Engine &p_engine, Castor::String const &p_name)
 Constructeur. Plus de détails...
 
virtual C3D_API ~RenderSystem ()
 Destructeur. Plus de détails...
 
C3D_API void Initialise (GpuInformations &&p_informations)
 Initialise le render system. Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie le render system. Plus de détails...
 
C3D_API void PushScene (Scene *p_scene)
 Met une scène sur la pile. Plus de détails...
 
C3D_API void PopScene ()
 Enlève la scène du haut de la pile. Plus de détails...
 
C3D_API SceneGetTopScene ()
 Récupère la scène du haut de la pile. Plus de détails...
 
C3D_API GLSL::GlslWriter CreateGlslWriter ()
 Une instance pré-configurée de GlslWriter. Plus de détails...
 
C3D_API void SetCurrentContext (Context *p_context)
 Définit le contexte de rendu actuellement actif. Plus de détails...
 
C3D_API ContextGetCurrentContext ()
 Récupère le contexte de rendu actuellement actif. Plus de détails...
 
GpuInformations const & GetGpuInformations () const
 
bool IsInitialised () const
 Dit si le RenderSystem est initialisé Plus de détails...
 
Castor::String const & GetRendererType () const
 Récupère l'API de rendu. Plus de détails...
 
void SetMainContext (ContextSPtr p_context)
 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...
 
OverlayRendererSPtr GetOverlayRenderer ()
 Récupère le renderer d'overlays. Plus de détails...
 
template<class Rep , class Period >
void IncGpuTime (std::chrono::duration< Rep, Period > const &p_time)
 Incrémente le temps CPU. Plus de détails...
 
void ResetGpuTime ()
 Réinitialise le temps CPU. Plus de détails...
 
std::chrono::nanoseconds const & GetGpuTime () const
 Récupère le temps CPU. Plus de détails...
 
virtual C3D_API ShaderProgramSPtr CreateShaderProgram ()=0
 Crée un ShaderProgram. Plus de détails...
 
virtual C3D_API UniformBufferBindingUPtr CreateUniformBufferBinding (UniformBuffer &p_ubo, ShaderProgram const &p_program)=0
 Crée un UniformBufferBinding. Plus de détails...
 
virtual C3D_API GeometryBuffersSPtr CreateGeometryBuffers (Topology p_topology, ShaderProgram const &p_program)=0
 Crée un conteneur de buffers de géométrie. Plus de détails...
 
virtual C3D_API ContextSPtr CreateContext ()=0
 Crée un contexte de rendu. Plus de détails...
 
virtual C3D_API RenderPipelineUPtr CreateRenderPipeline (DepthStencilState &&p_dsState, RasteriserState &&p_rsState, BlendState &&p_bdState, MultisampleState &&p_msState, ShaderProgram &p_program, PipelineFlags const &p_flags)=0
 Crée un pipeline de rendu. Plus de détails...
 
virtual C3D_API ComputePipelineUPtr CreateComputePipeline (ShaderProgram &p_program)=0
 Crée un pipeline de pipeline. Plus de détails...
 
virtual C3D_API SamplerSPtr CreateSampler (Castor::String const &p_name)=0
 Crée un échantillonneur. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr CreateTexture (TextureType p_type, AccessTypes const &p_cpuAccess, AccessTypes const &p_gpuAccess)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr CreateTexture (TextureType p_type, AccessTypes const &p_cpuAccess, AccessTypes const &p_gpuAccess, Castor::PixelFormat p_format, Castor::Size const &p_size)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr CreateTexture (TextureType p_type, AccessTypes const &p_cpuAccess, AccessTypes const &p_gpuAccess, Castor::PixelFormat p_format, Castor::Point3ui const &p_size)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureStorageUPtr CreateTextureStorage (TextureStorageType p_type, TextureLayout &p_layout, AccessTypes const &p_cpuAccess, AccessTypes const &p_gpuAccess)=0
 Crée un stockage de texture. Plus de détails...
 
virtual C3D_API std::unique_ptr< GpuBuffer< uint8_t > > CreateUInt8Buffer (BufferType p_type)=0
 Crée un tampon d'uint8_t. Plus de détails...
 
virtual C3D_API std::unique_ptr< GpuBuffer< uint16_t > > CreateUInt16Buffer (BufferType p_type)=0
 Crée un tampon d'uint16_t. Plus de détails...
 
virtual C3D_API std::unique_ptr< GpuBuffer< uint32_t > > CreateUInt32Buffer (BufferType p_type)=0
 Crée un tampon d'uint32_t. Plus de détails...
 
virtual C3D_API std::unique_ptr< GpuBuffer< float > > CreateFloatBuffer (BufferType p_type)=0
 Crée un tampon de float. Plus de détails...
 
virtual C3D_API TransformFeedbackUPtr CreateTransformFeedback (BufferDeclaration const &p_computed, Topology p_topology, ShaderProgram &p_program)=0
 Crée une instance de transform feedback. Plus de détails...
 
virtual C3D_API FrameBufferSPtr CreateFrameBuffer ()=0
 Crée un tampon d'image. Plus de détails...
 
virtual C3D_API BackBuffersSPtr CreateBackBuffers ()=0
 Crée les tampons d'image de la fenêtre. Plus de détails...
 
virtual C3D_API GpuQueryUPtr CreateQuery (QueryType p_type)=0
 Crée une requête GPU. Plus de détails...
 
virtual C3D_API IViewportImplUPtr CreateViewport (Viewport &p_viewport)=0
 Crée une implémentation de viewport spécifique à l'API de rendu. Plus de détails...
 

Fonctions membres protégées

virtual C3D_API void DoInitialise ()=0
 Initialise le render system. Plus de détails...
 
virtual C3D_API void DoCleanup ()=0
 Nettoie le render system. Plus de détails...
 

Attributs protégés

std::recursive_mutex m_mutex
 
bool m_initialised
 
GpuInformations m_gpuInformations
 
OverlayRendererSPtr m_overlayRenderer
 
ContextSPtr m_mainContext
 
std::map< std::thread::id, ContextRPtr > m_currentContexts
 
std::stack< SceneRPtr > m_stackScenes
 
Castor::String m_name
 
std::chrono::nanoseconds m_gpuTime
 

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

◆ RenderSystem()

C3D_API Castor3D::RenderSystem::RenderSystem ( Engine p_engine,
Castor::String const &  p_name 
)

Constructeur.

Paramètres
[in]p_engineLe moteur.
[in]p_nameLe nom du renderer.

◆ ~RenderSystem()

virtual C3D_API Castor3D::RenderSystem::~RenderSystem ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ Cleanup()

C3D_API void Castor3D::RenderSystem::Cleanup ( )

Nettoie le render system.

◆ CreateBackBuffers()

virtual C3D_API BackBuffersSPtr Castor3D::RenderSystem::CreateBackBuffers ( )
pure virtual

Crée les tampons d'image de la fenêtre.

Renvoie
Les tampons d'image créés.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateComputePipeline()

virtual C3D_API ComputePipelineUPtr Castor3D::RenderSystem::CreateComputePipeline ( ShaderProgram p_program)
pure virtual

Crée un pipeline de pipeline.

Paramètres
[in]p_programLe programme shader.
Renvoie
Le pipeline.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateContext()

virtual C3D_API ContextSPtr Castor3D::RenderSystem::CreateContext ( )
pure virtual

Crée un contexte de rendu.

Renvoie
Le contexte créé

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateFloatBuffer()

virtual C3D_API std::unique_ptr< GpuBuffer< float > > Castor3D::RenderSystem::CreateFloatBuffer ( BufferType  p_type)
pure virtual

Crée un tampon de float.

Paramètres
[in]p_typeLe type de tampon.
Renvoie
Le tampon créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateFrameBuffer()

virtual C3D_API FrameBufferSPtr Castor3D::RenderSystem::CreateFrameBuffer ( )
pure virtual

Crée un tampon d'image.

Renvoie
Le tampon d'image créé.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateGeometryBuffers()

virtual C3D_API GeometryBuffersSPtr Castor3D::RenderSystem::CreateGeometryBuffers ( Topology  p_topology,
ShaderProgram const &  p_program 
)
pure virtual

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

Paramètres
[in]p_topologyLa topologie des tampons.
[in]p_programLe programme shader.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateGlslWriter()

C3D_API GLSL::GlslWriter Castor3D::RenderSystem::CreateGlslWriter ( )

Une instance pré-configurée de GlslWriter.

◆ CreateQuery()

virtual C3D_API GpuQueryUPtr Castor3D::RenderSystem::CreateQuery ( QueryType  p_type)
pure virtual

Crée une requête GPU.

Paramètres
[in]p_typeLe type de requête.
Renvoie
La requête GPU créée.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateRenderPipeline()

virtual C3D_API RenderPipelineUPtr Castor3D::RenderSystem::CreateRenderPipeline ( DepthStencilState &&  p_dsState,
RasteriserState &&  p_rsState,
BlendState &&  p_bdState,
MultisampleState &&  p_msState,
ShaderProgram p_program,
PipelineFlags const &  p_flags 
)
pure virtual

Crée un pipeline de rendu.

Paramètres
[in]p_dsStateL'état de stencil et profondeur.
[in]p_rsStateL'état de rastériseur.
[in]p_bdStateL'état de mélange.
[in]p_msStateL'état de multi-échantillonnage.
[in]p_programLe programme shader.
[in]p_flagsLes indicateurs de création.
Renvoie
Le pipeline.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateSampler()

virtual C3D_API SamplerSPtr Castor3D::RenderSystem::CreateSampler ( Castor::String const &  p_name)
pure virtual

Crée un échantillonneur.

Paramètres
[in]p_nameLe nom de l'échantillonneur
Renvoie
L'objet

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateShaderProgram()

virtual C3D_API ShaderProgramSPtr Castor3D::RenderSystem::CreateShaderProgram ( )
pure virtual

Crée un ShaderProgram.

Renvoie
Le ShaderProgram créé.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateTexture() [1/3]

virtual C3D_API TextureLayoutSPtr Castor3D::RenderSystem::CreateTexture ( TextureType  p_type,
AccessTypes const &  p_cpuAccess,
AccessTypes const &  p_gpuAccess 
)
pure virtual

Crée une texture.

Paramètres
[in]p_typeLe type de texture.
[in]p_cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]p_gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
Renvoie
La texture créée, dépendante de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateTexture() [2/3]

virtual C3D_API TextureLayoutSPtr Castor3D::RenderSystem::CreateTexture ( TextureType  p_type,
AccessTypes const &  p_cpuAccess,
AccessTypes const &  p_gpuAccess,
Castor::PixelFormat  p_format,
Castor::Size const &  p_size 
)
pure virtual

Crée une texture.

Paramètres
[in]p_typeLe type de texture.
[in]p_cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]p_gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
[in]p_formatLe format de la texture.
[in]p_sizeLes dimensions de la texture.
Renvoie
La texture créée, dépendante de l'API actuelle.

◆ CreateTexture() [3/3]

virtual C3D_API TextureLayoutSPtr Castor3D::RenderSystem::CreateTexture ( TextureType  p_type,
AccessTypes const &  p_cpuAccess,
AccessTypes const &  p_gpuAccess,
Castor::PixelFormat  p_format,
Castor::Point3ui const &  p_size 
)
pure virtual

Crée une texture.

Paramètres
[in]p_typeLe type de texture.
[in]p_cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]p_gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
[in]p_formatLe format de la texture.
[in]p_sizeLes dimensions de la texture.
Renvoie
La texture créée, dépendante de l'API actuelle.

◆ CreateTextureStorage()

virtual C3D_API TextureStorageUPtr Castor3D::RenderSystem::CreateTextureStorage ( TextureStorageType  p_type,
TextureLayout p_layout,
AccessTypes const &  p_cpuAccess,
AccessTypes const &  p_gpuAccess 
)
pure virtual

Crée un stockage de texture.

Paramètres
[in]p_typeLe type de stockage.
[in]p_layoutLe layout de la texture.
[in]p_cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]p_gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
Renvoie
Le stockage créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateTransformFeedback()

virtual C3D_API TransformFeedbackUPtr Castor3D::RenderSystem::CreateTransformFeedback ( BufferDeclaration const &  p_computed,
Topology  p_topology,
ShaderProgram p_program 
)
pure virtual

Crée une instance de transform feedback.

Paramètres
[in]p_computedLa description des éléments calculés.
[in]p_topologyLa topologie.
[in]p_programLe programm shader.
Renvoie
Le tampon de transform feedback créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateUInt16Buffer()

virtual C3D_API std::unique_ptr< GpuBuffer< uint16_t > > Castor3D::RenderSystem::CreateUInt16Buffer ( BufferType  p_type)
pure virtual

Crée un tampon d'uint16_t.

Paramètres
[in]p_typeLe type de tampon.
Renvoie
Le tampon créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateUInt32Buffer()

virtual C3D_API std::unique_ptr< GpuBuffer< uint32_t > > Castor3D::RenderSystem::CreateUInt32Buffer ( BufferType  p_type)
pure virtual

Crée un tampon d'uint32_t.

Paramètres
[in]p_typeLe type de tampon.
Renvoie
Le tampon créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateUInt8Buffer()

virtual C3D_API std::unique_ptr< GpuBuffer< uint8_t > > Castor3D::RenderSystem::CreateUInt8Buffer ( BufferType  p_type)
pure virtual

Crée un tampon d'uint8_t.

Paramètres
[in]p_typeLe type de tampon.
Renvoie
Le tampon créé, dépendant de l'API actuelle.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateUniformBufferBinding()

virtual C3D_API UniformBufferBindingUPtr Castor3D::RenderSystem::CreateUniformBufferBinding ( UniformBuffer p_ubo,
ShaderProgram const &  p_program 
)
pure virtual

Crée un UniformBufferBinding.

Paramètres
[in]p_ubole tampon d'uniformes parent.
[in]p_programLe programme parent.
Renvoie
Le UniformBufferBinding créé.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ CreateViewport()

virtual C3D_API IViewportImplUPtr Castor3D::RenderSystem::CreateViewport ( Viewport p_viewport)
pure virtual

Crée une implémentation de viewport spécifique à l'API de rendu.

Paramètres
[in]p_viewportLe voewport parent.
Renvoie
L'implémentation créée.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ DoCleanup()

virtual C3D_API void Castor3D::RenderSystem::DoCleanup ( )
protectedpure virtual

Nettoie le render system.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ DoInitialise()

virtual C3D_API void Castor3D::RenderSystem::DoInitialise ( )
protectedpure virtual

Initialise le render system.

Référencé par GetGpuTime().

+ Voici le graphe des appelants de cette fonction :

◆ GetCurrentContext()

C3D_API Context* Castor3D::RenderSystem::GetCurrentContext ( )

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

Renvoie
Le contexte

◆ GetGpuInformations()

GpuInformations const& Castor3D::RenderSystem::GetGpuInformations ( ) const
inline
Renvoie
Les informations sur le GPU.

Références m_gpuInformations.

◆ GetGpuTime()

std::chrono::nanoseconds const& Castor3D::RenderSystem::GetGpuTime ( ) const
inline

◆ GetMainContext()

ContextSPtr Castor3D::RenderSystem::GetMainContext ( )
inline

Récupère le contexte de rendu principal.

Renvoie
Le contexte

Références m_mainContext.

◆ GetOverlayRenderer()

OverlayRendererSPtr Castor3D::RenderSystem::GetOverlayRenderer ( )
inline

Récupère le renderer d'overlays.

Renvoie
La valeur

Références m_overlayRenderer.

◆ GetRendererType()

Castor::String const& Castor3D::RenderSystem::GetRendererType ( ) const
inline

Récupère l'API de rendu.

Références m_name.

◆ GetTopScene()

C3D_API Scene* Castor3D::RenderSystem::GetTopScene ( )

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

Renvoie
La scène, nullptr si la pile est vide

◆ IncGpuTime()

template<class Rep , class Period >
void Castor3D::RenderSystem::IncGpuTime ( std::chrono::duration< Rep, Period > const &  p_time)
inline

Incrémente le temps CPU.

Paramètres
[in]p_timeLa valeur d'incrément.

Références m_gpuTime.

◆ Initialise()

C3D_API void Castor3D::RenderSystem::Initialise ( GpuInformations &&  p_informations)

Initialise le render system.

◆ IsInitialised()

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

Dit si le RenderSystem est initialisé

Références m_initialised.

◆ PopScene()

C3D_API void Castor3D::RenderSystem::PopScene ( )

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

◆ PushScene()

C3D_API void Castor3D::RenderSystem::PushScene ( Scene p_scene)

Met une scène sur la pile.

Paramètres
[in]p_sceneLa scène

◆ ResetGpuTime()

void Castor3D::RenderSystem::ResetGpuTime ( )
inline

Réinitialise le temps CPU.

Références m_gpuTime.

◆ SetCurrentContext()

C3D_API void Castor3D::RenderSystem::SetCurrentContext ( Context p_context)

Définit le contexte de rendu actuellement actif.

Paramètres
[in]p_contextLe contexte

◆ SetMainContext()

void Castor3D::RenderSystem::SetMainContext ( ContextSPtr  p_context)
inline

Définit le contexte de rendu principal.

Paramètres
[in]p_contextLe contexte

Références m_mainContext.

Documentation des données membres

◆ m_currentContexts

std::map< std::thread::id, ContextRPtr > Castor3D::RenderSystem::m_currentContexts
protected

Le contexte de rendu actuellement actif.

◆ m_gpuInformations

GpuInformations Castor3D::RenderSystem::m_gpuInformations
protected

Les informations sur le GPU.

Référencé par GetGpuInformations().

◆ m_gpuTime

std::chrono::nanoseconds Castor3D::RenderSystem::m_gpuTime
protected

Le temps passé sur le GPU pour l'image courante.

Référencé par GetGpuTime(), IncGpuTime(), et ResetGpuTime().

◆ m_initialised

bool Castor3D::RenderSystem::m_initialised
protected

Dit si le render system est initialisé.

Référencé par IsInitialised().

◆ m_mainContext

ContextSPtr Castor3D::RenderSystem::m_mainContext
protected

Le contexte de rendu principal.

Référencé par GetMainContext(), et SetMainContext().

◆ m_mutex

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

Mutex pour rendre cette classe thread safe.

◆ m_name

Castor::String Castor3D::RenderSystem::m_name
protected

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

Référencé par GetRendererType().

◆ m_overlayRenderer

OverlayRendererSPtr Castor3D::RenderSystem::m_overlayRenderer
protected

Le renderer d'overlays.

Référencé par GetOverlayRenderer().

◆ m_stackScenes

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

Pile des scènes.


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