Castor3D
..
|
Représentation du système de rendu. Plus de détails...
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 Scene * | GetTopScene () |
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 Context * | GetCurrentContext () |
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 |
Représentation du système de rendu.
Constructeur.
[in] | p_engine | Le moteur. |
[in] | p_name | Le nom du renderer. |
|
virtual |
Destructeur.
C3D_API void Castor3D::RenderSystem::Cleanup | ( | ) |
Nettoie le render system.
|
pure virtual |
Crée les tampons d'image de la fenêtre.
Référencé par GetGpuTime().
|
pure virtual |
Crée un pipeline de pipeline.
[in] | p_program | Le programme shader. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un contexte de rendu.
Référencé par GetGpuTime().
|
pure virtual |
Crée un tampon de float.
[in] | p_type | Le type de tampon. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un tampon d'image.
Référencé par GetGpuTime().
|
pure virtual |
Crée un conteneur de buffers de géométrie.
[in] | p_topology | La topologie des tampons. |
[in] | p_program | Le programme shader. |
Référencé par GetGpuTime().
C3D_API GLSL::GlslWriter Castor3D::RenderSystem::CreateGlslWriter | ( | ) |
Une instance pré-configurée de GlslWriter.
Crée une requête GPU.
[in] | p_type | Le type de requête. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un pipeline de rendu.
[in] | p_dsState | L'état de stencil et profondeur. |
[in] | p_rsState | L'état de rastériseur. |
[in] | p_bdState | L'état de mélange. |
[in] | p_msState | L'état de multi-échantillonnage. |
[in] | p_program | Le programme shader. |
[in] | p_flags | Les indicateurs de création. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un échantillonneur.
[in] | p_name | Le nom de l'échantillonneur |
Référencé par GetGpuTime().
|
pure virtual |
Crée un ShaderProgram.
Référencé par GetGpuTime().
|
pure virtual |
Crée une texture.
[in] | p_type | Le type de texture. |
[in] | p_cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | p_gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
Référencé par GetGpuTime().
|
pure virtual |
Crée une texture.
[in] | p_type | Le type de texture. |
[in] | p_cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | p_gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
[in] | p_format | Le format de la texture. |
[in] | p_size | Les dimensions de la texture. |
|
pure virtual |
Crée une texture.
[in] | p_type | Le type de texture. |
[in] | p_cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | p_gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
[in] | p_format | Le format de la texture. |
[in] | p_size | Les dimensions de la texture. |
|
pure virtual |
Crée un stockage de texture.
[in] | p_type | Le type de stockage. |
[in] | p_layout | Le layout de la texture. |
[in] | p_cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | p_gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
Référencé par GetGpuTime().
|
pure virtual |
Crée une instance de transform feedback.
[in] | p_computed | La description des éléments calculés. |
[in] | p_topology | La topologie. |
[in] | p_program | Le programm shader. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un tampon d'uint16_t.
[in] | p_type | Le type de tampon. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un tampon d'uint32_t.
[in] | p_type | Le type de tampon. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un tampon d'uint8_t.
[in] | p_type | Le type de tampon. |
Référencé par GetGpuTime().
|
pure virtual |
Crée un UniformBufferBinding.
[in] | p_ubo | le tampon d'uniformes parent. |
[in] | p_program | Le programme parent. |
Référencé par GetGpuTime().
|
pure virtual |
Crée une implémentation de viewport spécifique à l'API de rendu.
[in] | p_viewport | Le voewport parent. |
Référencé par GetGpuTime().
|
protectedpure virtual |
Nettoie le render system.
Référencé par GetGpuTime().
|
protectedpure virtual |
Initialise le render system.
Référencé par GetGpuTime().
Récupère le contexte de rendu actuellement actif.
|
inline |
Références m_gpuInformations.
|
inline |
Récupère le temps CPU.
Références C3D_API, CreateBackBuffers(), CreateComputePipeline(), CreateContext(), CreateFloatBuffer(), CreateFrameBuffer(), CreateGeometryBuffers(), CreateQuery(), CreateRenderPipeline(), CreateSampler(), CreateShaderProgram(), CreateTexture(), CreateTextureStorage(), CreateTransformFeedback(), CreateUInt16Buffer(), CreateUInt32Buffer(), CreateUInt8Buffer(), CreateUniformBufferBinding(), CreateViewport(), DoCleanup(), DoInitialise(), et m_gpuTime.
|
inline |
|
inline |
|
inline |
Récupère l'API de rendu.
Références m_name.
Récupère la scène du haut de la pile.
|
inline |
C3D_API void Castor3D::RenderSystem::Initialise | ( | GpuInformations && | p_informations | ) |
Initialise le render system.
|
inline |
Dit si le RenderSystem est initialisé
Références m_initialised.
C3D_API void Castor3D::RenderSystem::PopScene | ( | ) |
Enlève la scène du haut de la pile.
Met une scène sur la pile.
[in] | p_scene | La scène |
|
inline |
Réinitialise le temps CPU.
Références m_gpuTime.
Définit le contexte de rendu actuellement actif.
[in] | p_context | Le contexte |
|
inline |
Définit le contexte de rendu principal.
[in] | p_context | Le contexte |
Références m_mainContext.
|
protected |
Le contexte de rendu actuellement actif.
|
protected |
Les informations sur le GPU.
Référencé par GetGpuInformations().
|
protected |
Le temps passé sur le GPU pour l'image courante.
Référencé par GetGpuTime(), IncGpuTime(), et ResetGpuTime().
|
protected |
Dit si le render system est initialisé.
Référencé par IsInitialised().
|
protected |
Le contexte de rendu principal.
Référencé par GetMainContext(), et SetMainContext().
|
protected |
Mutex pour rendre cette classe thread safe.
|
protected |
Le type de l'api de rendu actuellement chargée.
Référencé par GetRendererType().
|
protected |
Le renderer d'overlays.
Référencé par GetOverlayRenderer().
|
protected |
Pile des scènes.