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 d'héritage de castor3d::RenderSystem:
+ Graphe de collaboration de castor3d::RenderSystem:

Fonctions membres publiques

C3D_API RenderSystem (Engine &engine, castor::String const &name)
 Constructeur. Plus de détails...
 
virtual C3D_API ~RenderSystem ()
 Destructeur. Plus de détails...
 
C3D_API void initialise (GpuInformations &&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 *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 ()
 
C3D_API glsl::GlslWriter createGlslWriter ()
 Une instance pré-configurée de GlslWriter. Plus de détails...
 
C3D_API void setCurrentContext (Context *context)
 Définit le contexte de rendu actuellement actif. Plus de détails...
 
C3D_API ContextgetCurrentContext ()
 
C3D_API GpuBufferOffset getBuffer (BufferType type, uint32_t size, BufferAccessType accessType, BufferAccessNature accessNature)
 Récupère un tampon GPU avec la taille donnée. Plus de détails...
 
C3D_API void putBuffer (BufferType type, BufferAccessType accessType, BufferAccessNature accessNature, GpuBufferOffset const &bufferOffset)
 Libère un tampon GPU. Plus de détails...
 
C3D_API void cleanupPool ()
 Nettoie le pool de tampons. 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 context)
 Définit le contexte de rendu principal. Plus de détails...
 
ContextSPtr getMainContext ()
 
OverlayRendererSPtr getOverlayRenderer ()
 
template<class Rep , class Period >
void incGpuTime (std::chrono::duration< Rep, Period > const &time)
 Incrémente le temps CPU. Plus de détails...
 
void resetGpuTime ()
 Réinitialise le temps CPU. Plus de détails...
 
castor::Nanoseconds const & getGpuTime () const
 
virtual C3D_API ShaderProgramSPtr createShaderProgram ()=0
 Crée un ShaderProgram. Plus de détails...
 
virtual C3D_API UniformBufferBindingUPtr createUniformBufferBinding (UniformBuffer &ubo, ShaderProgram const &program)=0
 Crée un UniformBufferBinding. Plus de détails...
 
virtual C3D_API GeometryBuffersSPtr createGeometryBuffers (Topology topology, ShaderProgram const &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 &&dsState, RasteriserState &&rsState, BlendState &&bdState, MultisampleState &&msState, ShaderProgram &program, PipelineFlags const &flags)=0
 Crée un pipeline de rendu. Plus de détails...
 
virtual C3D_API ComputePipelineUPtr createComputePipeline (ShaderProgram &program)=0
 Crée un pipeline de pipeline. Plus de détails...
 
virtual C3D_API SamplerSPtr createSampler (castor::String const &name)=0
 Crée un échantillonneur. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr createTexture (TextureType type, AccessTypes const &cpuAccess, AccessTypes const &gpuAccess)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr createTexture (TextureType type, AccessTypes const &cpuAccess, AccessTypes const &gpuAccess, uint32_t mipmapCount)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr createTexture (TextureType type, AccessTypes const &cpuAccess, AccessTypes const &gpuAccess, castor::PixelFormat format, castor::Size const &size)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureLayoutSPtr createTexture (TextureType type, AccessTypes const &cpuAccess, AccessTypes const &gpuAccess, castor::PixelFormat format, castor::Point3ui const &size)=0
 Crée une texture. Plus de détails...
 
virtual C3D_API TextureStorageUPtr createTextureStorage (TextureStorageType type, TextureLayout &layout, AccessTypes const &cpuAccess, AccessTypes const &gpuAccess)=0
 Crée un stockage de texture. Plus de détails...
 
virtual C3D_API TransformFeedbackUPtr createTransformFeedback (BufferDeclaration const &computed, Topology topology, ShaderProgram &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 type)=0
 Crée une requête GPU. Plus de détails...
 
virtual C3D_API IViewportImplUPtr createViewport (Viewport &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...
 
virtual C3D_API GpuBufferSPtr doCreateBuffer (BufferType type)=0
 Crée un tampon GPU. 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
 
castor::Nanoseconds m_gpuTime
 
GpuBufferPool m_gpuBufferPool
 

Amis

class GpuBufferPool
 

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 engine,
castor::String const &  name 
)

Constructeur.

Paramètres
[in]engineLe moteur.
[in]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.

◆ cleanupPool()

C3D_API void castor3d::RenderSystem::cleanupPool ( )

Nettoie le pool de tampons.

◆ 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 program)
pure virtual

Crée un pipeline de pipeline.

Paramètres
[in]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 :

◆ 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  topology,
ShaderProgram const &  program 
)
pure virtual

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

Paramètres
[in]topologyLa topologie des tampons.
[in]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  type)
pure virtual

Crée une requête GPU.

Paramètres
[in]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 &&  dsState,
RasteriserState &&  rsState,
BlendState &&  bdState,
MultisampleState &&  msState,
ShaderProgram program,
PipelineFlags const &  flags 
)
pure virtual

Crée un pipeline de rendu.

Paramètres
[in]dsStateL'état de stencil et profondeur.
[in]rsStateL'état de rastériseur.
[in]bdStateL'état de mélange.
[in]msStateL'état de multi-échantillonnage.
[in]programLe programme shader.
[in]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 &  name)
pure virtual

Crée un échantillonneur.

Paramètres
[in]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/4]

virtual C3D_API TextureLayoutSPtr castor3d::RenderSystem::createTexture ( TextureType  type,
AccessTypes const &  cpuAccess,
AccessTypes const &  gpuAccess 
)
pure virtual

Crée une texture.

Paramètres
[in]typeLe type de texture.
[in]cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]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/4]

virtual C3D_API TextureLayoutSPtr castor3d::RenderSystem::createTexture ( TextureType  type,
AccessTypes const &  cpuAccess,
AccessTypes const &  gpuAccess,
uint32_t  mipmapCount 
)
pure virtual

Crée une texture.

Paramètres
[in]typeLe type de texture.
[in]cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
[in]mipmapCountLe nombre de mipmaps voulus.
Renvoie
La texture créée, dépendante de l'API actuelle.

◆ createTexture() [3/4]

virtual C3D_API TextureLayoutSPtr castor3d::RenderSystem::createTexture ( TextureType  type,
AccessTypes const &  cpuAccess,
AccessTypes const &  gpuAccess,
castor::PixelFormat  format,
castor::Size const &  size 
)
pure virtual

Crée une texture.

Paramètres
[in]typeLe type de texture.
[in]cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
[in]formatLe format de la texture.
[in]sizeLes dimensions de la texture.
Renvoie
La texture créée, dépendante de l'API actuelle.

◆ createTexture() [4/4]

virtual C3D_API TextureLayoutSPtr castor3d::RenderSystem::createTexture ( TextureType  type,
AccessTypes const &  cpuAccess,
AccessTypes const &  gpuAccess,
castor::PixelFormat  format,
castor::Point3ui const &  size 
)
pure virtual

Crée une texture.

Paramètres
[in]typeLe type de texture.
[in]cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]gpuAccessLes accès requis pour le GPU (combinaison de AccessType).
[in]formatLe format de la texture.
[in]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  type,
TextureLayout layout,
AccessTypes const &  cpuAccess,
AccessTypes const &  gpuAccess 
)
pure virtual

Crée un stockage de texture.

Paramètres
[in]typeLe type de stockage.
[in]layoutLe layout de la texture.
[in]cpuAccessLes accès requis pour le CPU (combinaison de AccessType).
[in]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 &  computed,
Topology  topology,
ShaderProgram program 
)
pure virtual

Crée une instance de transform feedback.

Paramètres
[in]computedLa description des éléments calculés.
[in]topologyLa topologie.
[in]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 :

◆ createUniformBufferBinding()

virtual C3D_API UniformBufferBindingUPtr castor3d::RenderSystem::createUniformBufferBinding ( UniformBuffer ubo,
ShaderProgram const &  program 
)
pure virtual

Crée un UniformBufferBinding.

Paramètres
[in]ubole tampon d'uniformes parent.
[in]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 viewport)
pure virtual

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

Paramètres
[in]viewportLe viewport 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 :

◆ doCreateBuffer()

virtual C3D_API GpuBufferSPtr castor3d::RenderSystem::doCreateBuffer ( BufferType  type)
protectedpure virtual

Crée un tampon GPU.

Paramètres
[in]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 :

◆ 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 :

◆ getBuffer()

C3D_API GpuBufferOffset castor3d::RenderSystem::getBuffer ( BufferType  type,
uint32_t  size,
BufferAccessType  accessType,
BufferAccessNature  accessNature 
)

Récupère un tampon GPU avec la taille donnée.

Paramètres
[in]typeLe type de tampon.
[in]sizeLa taille voulue pour le tampon.
[in]accessTypeType d'accès du tampon.
[in]accessNatureNature d'accès du tampon.
Renvoie
Le tampon créé, dépendant de l'API actuelle.

◆ getCurrentContext()

C3D_API Context* castor3d::RenderSystem::getCurrentContext ( )
Renvoie
Le contexte de rendu actuellement actif.

◆ getGpuInformations()

GpuInformations const& castor3d::RenderSystem::getGpuInformations ( ) const
inline
Renvoie
Les informations sur le GPU.

Références m_gpuInformations.

◆ getGpuTime()

castor::Nanoseconds const& castor3d::RenderSystem::getGpuTime ( ) const
inline

◆ getMainContext()

ContextSPtr castor3d::RenderSystem::getMainContext ( )
inline
Renvoie
Le contexte de rendu principal.

Références m_mainContext.

◆ getOverlayRenderer()

OverlayRendererSPtr castor3d::RenderSystem::getOverlayRenderer ( )
inline
Renvoie
Le renderer d'overlays.

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 ( )
Renvoie
La scène du haut de la pile, nullptr si la pile est vide.

◆ incGpuTime()

template<class Rep , class Period >
void castor3d::RenderSystem::incGpuTime ( std::chrono::duration< Rep, Period > const &  time)
inline

Incrémente le temps CPU.

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

Références m_gpuTime.

◆ initialise()

C3D_API void castor3d::RenderSystem::initialise ( GpuInformations &&  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 scene)

Met une scène sur la pile.

Paramètres
[in]sceneLa scène

◆ putBuffer()

C3D_API void castor3d::RenderSystem::putBuffer ( BufferType  type,
BufferAccessType  accessType,
BufferAccessNature  accessNature,
GpuBufferOffset const &  bufferOffset 
)

Libère un tampon GPU.

Paramètres
[in]typeLe type de tampon.
[in]accessTypeType d'accès du tampon.
[in]accessNatureNature d'accès du tampon.
[in]bufferOffsetLe tampon à libérer.

◆ resetGpuTime()

void castor3d::RenderSystem::resetGpuTime ( )
inline

Réinitialise le temps CPU.

Références m_gpuTime.

◆ setCurrentContext()

C3D_API void castor3d::RenderSystem::setCurrentContext ( Context context)

Définit le contexte de rendu actuellement actif.

Paramètres
[in]contextLe contexte

◆ setMainContext()

void castor3d::RenderSystem::setMainContext ( ContextSPtr  context)
inline

Définit le contexte de rendu principal.

Paramètres
[in]contextLe contexte

Références m_mainContext.

Documentation des fonctions amies et associées

◆ GpuBufferPool

friend class GpuBufferPool
friend

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_gpuBufferPool

GpuBufferPool castor3d::RenderSystem::m_gpuBufferPool
protected

Le pool de tampons GPU.

◆ m_gpuInformations

GpuInformations castor3d::RenderSystem::m_gpuInformations
protected

Les informations sur le GPU.

Référencé par getGpuInformations().

◆ m_gpuTime

castor::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 :