Castor3D
..
|
Représentation du système de rendu. Plus de détails...
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 Scene * | getTopScene () |
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 Context * | getCurrentContext () |
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 |
Représentation du système de rendu.
Constructeur.
[in] | engine | Le moteur. |
[in] | name | Le nom du renderer. |
|
virtual |
Destructeur.
C3D_API void castor3d::RenderSystem::cleanup | ( | ) |
Nettoie le render system.
C3D_API void castor3d::RenderSystem::cleanupPool | ( | ) |
Nettoie le pool de tampons.
|
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] | 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 d'image.
Référencé par getGpuTime().
|
pure virtual |
Crée un conteneur de buffers de géométrie.
[in] | topology | La topologie des tampons. |
[in] | 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] | type | Le type de requête. |
Référencé par getGpuTime().
|
pure virtual |
Crée un pipeline de rendu.
[in] | dsState | L'état de stencil et profondeur. |
[in] | rsState | L'état de rastériseur. |
[in] | bdState | L'état de mélange. |
[in] | msState | L'état de multi-échantillonnage. |
[in] | program | Le programme shader. |
[in] | flags | Les indicateurs de création. |
Référencé par getGpuTime().
|
pure virtual |
Crée un échantillonneur.
[in] | 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] | type | Le type de texture. |
[in] | cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
Référencé par getGpuTime().
|
pure virtual |
Crée une texture.
[in] | type | Le type de texture. |
[in] | cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
[in] | mipmapCount | Le nombre de mipmaps voulus. |
|
pure virtual |
Crée une texture.
[in] | type | Le type de texture. |
[in] | cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
[in] | format | Le format de la texture. |
[in] | size | Les dimensions de la texture. |
|
pure virtual |
Crée une texture.
[in] | type | Le type de texture. |
[in] | cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | gpuAccess | Les accès requis pour le GPU (combinaison de AccessType). |
[in] | format | Le format de la texture. |
[in] | size | Les dimensions de la texture. |
|
pure virtual |
Crée un stockage de texture.
[in] | type | Le type de stockage. |
[in] | layout | Le layout de la texture. |
[in] | cpuAccess | Les accès requis pour le CPU (combinaison de AccessType). |
[in] | 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] | computed | La description des éléments calculés. |
[in] | topology | La topologie. |
[in] | program | Le programm shader. |
Référencé par getGpuTime().
|
pure virtual |
Crée un UniformBufferBinding.
[in] | ubo | le tampon d'uniformes parent. |
[in] | 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] | viewport | Le viewport parent. |
Référencé par getGpuTime().
|
protectedpure virtual |
Nettoie le render system.
Référencé par getGpuTime().
|
protectedpure virtual |
Crée un tampon GPU.
[in] | type | Le type de tampon. |
Référencé par getGpuTime().
|
protectedpure virtual |
Initialise le render system.
Référencé par getGpuTime().
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.
[in] | type | Le type de tampon. |
[in] | size | La taille voulue pour le tampon. |
[in] | accessType | Type d'accès du tampon. |
[in] | accessNature | Nature d'accès du tampon. |
|
inline |
Références m_gpuInformations.
|
inline |
Références C3D_API, createBackBuffers(), createComputePipeline(), createContext(), createFrameBuffer(), createGeometryBuffers(), createQuery(), createRenderPipeline(), createSampler(), createShaderProgram(), createTexture(), createTextureStorage(), createTransformFeedback(), createUniformBufferBinding(), createViewport(), doCleanup(), doCreateBuffer(), doInitialise(), et m_gpuTime.
|
inline |
Références m_mainContext.
|
inline |
Références m_overlayRenderer.
|
inline |
Récupère l'API de rendu.
Références m_name.
|
inline |
C3D_API void castor3d::RenderSystem::initialise | ( | GpuInformations && | 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] | scene | La scène |
C3D_API void castor3d::RenderSystem::putBuffer | ( | BufferType | type, |
BufferAccessType | accessType, | ||
BufferAccessNature | accessNature, | ||
GpuBufferOffset const & | bufferOffset | ||
) |
Libère un tampon GPU.
[in] | type | Le type de tampon. |
[in] | accessType | Type d'accès du tampon. |
[in] | accessNature | Nature d'accès du tampon. |
[in] | bufferOffset | Le tampon à libérer. |
|
inline |
Réinitialise le temps CPU.
Références m_gpuTime.
Définit le contexte de rendu actuellement actif.
[in] | context | Le contexte |
|
inline |
|
friend |
|
protected |
Le contexte de rendu actuellement actif.
|
protected |
Le pool de tampons GPU.
|
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.