Castor3D
..
|
Représentation du système de rendu. Plus de détails...
Classes | |
struct | ObjectDeclaration |
Fonctions membres publiques | |
C3D_API | RenderSystem (Engine &p_engine, eRENDERER_TYPE p_eRendererType) |
Constructeur. Plus de détails... | |
virtual C3D_API | ~RenderSystem () |
Destructeur. Plus de détails... | |
C3D_API void | Initialise () |
Initialise le render system. Plus de détails... | |
C3D_API void | Cleanup () |
Nettoie le render system. Plus de détails... | |
C3D_API ShaderProgramSPtr | CreateShaderProgram (eSHADER_LANGUAGE p_langage) |
Crée un ShaderProgram dans un langage donné Plus de détails... | |
C3D_API void | RenderAmbientLight (Castor::Colour const &p_clColour, FrameVariableBuffer &p_variableBuffer) |
Rend la lumière ambiante de la scène. 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 Camera * | GetCurrentCamera () const |
Récupère la caméra actuellement active. Plus de détails... | |
C3D_API void | SetCurrentCamera (Camera *p_pCamera) |
Définit la caméra actuellement active. Plus de détails... | |
C3D_API GLSL::GlslWriter | CreateGlslWriter () |
Une instance pré-configurée de GlslWriter. Plus de détails... | |
C3D_API ShaderProgramSPtr | CreateBillboardsProgram (RenderTechnique const &p_technique, uint32_t p_flags) |
Crée un programme shader pour les rendu de billboards. Plus de détails... | |
C3D_API Castor::String | GetVertexShaderSource (uint32_t p_programFlags) |
Récupère le source du vertex shader qui correspond aux flags donnés. Plus de détails... | |
bool | CheckSupport (eSHADER_MODEL p_model) |
Vérifie le support d'un modèle de shaders. Plus de détails... | |
eSHADER_MODEL | GetMaxShaderModel () |
virtual C3D_API GeometryBuffersSPtr | CreateGeometryBuffers (eTOPOLOGY p_topology, ShaderProgram const &p_program, VertexBuffer *p_vtx, IndexBuffer *p_idx, VertexBuffer *p_bones, VertexBuffer *p_inst)=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 FrameVariableBufferSPtr | CreateFrameVariableBuffer (Castor::String const &p_name)=0 |
Crée un FrameVariableBuffer. Plus de détails... | |
virtual C3D_API DepthStencilStateSPtr | CreateDepthStencilState ()=0 |
Crée un objet d'états de depth et stencil. Plus de détails... | |
virtual C3D_API RasteriserStateSPtr | CreateRasteriserState ()=0 |
Crée un objet d'états de rasteriser. Plus de détails... | |
virtual C3D_API BlendStateSPtr | CreateBlendState ()=0 |
Crée un objet d'états de blend. 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 ShaderProgramSPtr | CreateShaderProgram ()=0 |
Crée un ShaderProgram (GLSL ou HLSL seulement) Plus de détails... | |
virtual C3D_API StaticTextureSPtr | CreateStaticTexture ()=0 |
Crée une texture. Plus de détails... | |
virtual C3D_API DynamicTextureSPtr | CreateDynamicTexture (uint8_t p_cpuAccess, uint8_t p_gpuAccess)=0 |
Crée une texture. Plus de détails... | |
virtual C3D_API std::shared_ptr< GpuBuffer< uint8_t > > | CreateVertexBuffer (CpuBuffer< uint8_t > *p_buffer)=0 |
Crée un tampon de sommets. Plus de détails... | |
virtual C3D_API std::shared_ptr< GpuBuffer< uint32_t > > | CreateIndexBuffer (CpuBuffer< uint32_t > *p_buffer)=0 |
Crée un tampon d'indices. Plus de détails... | |
virtual C3D_API IPipelineImplSPtr | GetPipelineImpl ()=0 |
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 GpuQuerySPtr | CreateQuery (eQUERY_TYPE p_type)=0 |
Crée une requête GPU. Plus de détails... | |
bool | HasShaderType (eSHADER_TYPE p_type) 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... | |
Pipeline const & | GetPipeline () const |
Récupère le pipeline. Plus de détails... | |
Pipeline & | GetPipeline () |
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... | |
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... | |
void | SetCurrentContext (Context *p_context) |
Définit le contexte de rendu actuellement actif. Plus de détails... | |
Context * | GetCurrentContext () |
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... | |
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::milliseconds | GetGpuTime () const |
Récupère le temps CPU. Plus de détails... | |
uint32_t | GetShaderLanguageVersion () const |
bool | HasConstantsBuffers () const |
bool | HasTextureBuffers () const |
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... | |
template<typename T > | |
bool | DoTrack (T *p_object, std::string const &p_type, std::string const &p_file, int p_line, std::string &p_name) |
bool | DoTrack (Castor::Named *p_object, std::string const &p_type, std::string const &p_file, int p_line, std::string &p_name) |
template<typename T > | |
bool | DoUntrack (T *p_object, ObjectDeclaration &p_declaration) |
C3D_API void | DoReportTracked () |
Attributs protégés | |
std::recursive_mutex | m_mutex |
Mutex pour rendre cette classe thread safe. Plus de détails... | |
bool | m_initialised |
Dit si le render system est initialisé Plus de détails... | |
bool | m_instancing |
Dit si l'API de rendu choisie supporte le dessin instancié Plus de détails... | |
bool | m_accumBuffer |
Dit si l'API de rendu choisie supporte le buffer d'accumulation. Plus de détails... | |
bool | m_nonPowerOfTwoTextures |
Dit si l'API de rendu choisie supporte les textures non puissance de 2. Plus de détails... | |
bool | m_stereoAvailable |
Dit si le RenderSystem supporte la stéréo. Plus de détails... | |
bool | m_useShader [eSHADER_TYPE_COUNT] |
Dit quel type de shaders sont supportés. Plus de détails... | |
eSHADER_MODEL | m_maxShaderModel |
Le modèle de shader maximum supporté. Plus de détails... | |
OverlayRendererSPtr | m_overlayRenderer |
Le renderer d'overlays. Plus de détails... | |
ContextSPtr | m_mainContext |
Le contexte de rendu principal. Plus de détails... | |
ContextRPtr | m_currentContext |
Le contexte de rendu actuellement actif. Plus de détails... | |
std::unique_ptr< Pipeline > | m_pipeline |
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_rendererType |
Le type de l'api de rendu actuellement chargée. Plus de détails... | |
CameraRPtr | m_pCurrentCamera |
La caméra actuellement active. Plus de détails... | |
std::chrono::milliseconds | m_gpuTime |
Le temps passé sur le GPU pour l'image courante. Plus de détails... | |
uint32_t | m_shaderLanguageVersion |
La version du langage de shader. Plus de détails... | |
bool | m_hasConstantsBuffers |
Le statut du support de tampons de constantes. Plus de détails... | |
bool | m_hasTextureBuffers |
Le statut du support de tampons de textures. Plus de détails... | |
uint32_t | m_id = 0 |
std::list< ObjectDeclaration > | m_allocated |
Amis | |
template<class Ty > | |
struct | RendererCreator |
template<class Ty > | |
struct | RendererAdder |
Représentation du système de rendu.
C3D_API Castor3D::RenderSystem::RenderSystem | ( | Engine & | p_engine, |
eRENDERER_TYPE | p_eRendererType | ||
) |
Constructeur.
[in] | p_engine | Le moteur |
[in] | p_eRendererType | L'API de rendu |
|
virtual |
Destructeur.
|
inline |
Vérifie le support d'un modèle de shaders.
[in] | p_model | Le modèle de shaders |
false
si le modèle donné n'est pas supporté par l'API actuelle Références m_maxShaderModel.
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 GetMaxShaderModel().
C3D_API ShaderProgramSPtr Castor3D::RenderSystem::CreateBillboardsProgram | ( | RenderTechnique const & | p_technique, |
uint32_t | p_flags | ||
) |
Crée un programme shader pour les rendu de billboards.
|
pure virtual |
Crée un objet d'états de blend.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un contexte de rendu.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un objet d'états de depth et stencil.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée une texture.
[in] | p_cpuAccess | Les accès requis pour le CPU (combinaison de eACCESS_TYPE). |
[in] | p_gpuAccess | Les accès requis pour le GPU (combinaison de eACCESS_TYPE). |
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un tampon d'image.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un FrameVariableBuffer.
Référencé par GetMaxShaderModel().
|
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. |
[in] | p_vtx | Le tampon de sommets. |
[in] | p_idx | Le tampon d'indices. |
[in] | p_bones | Le tampon de données de bones. |
[in] | p_inst | Le tampon de matrices d'instances. |
Référencé par GetMaxShaderModel().
C3D_API GLSL::GlslWriter Castor3D::RenderSystem::CreateGlslWriter | ( | ) |
Une instance pré-configurée de GlslWriter.
|
pure virtual |
Crée un tampon d'indices.
[in] | p_buffer | Le tampon hardware auquel sera lié le tampon d'indices |
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée une requête GPU.
[in] | p_type | Le type de requête. |
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un objet d'états de rasteriser.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un échantillonneur.
[in] | p_name | Le nom de l'échantillonneur |
Référencé par GetMaxShaderModel().
C3D_API ShaderProgramSPtr Castor3D::RenderSystem::CreateShaderProgram | ( | eSHADER_LANGUAGE | p_langage | ) |
Crée un ShaderProgram dans un langage donné
[in] | p_langage | Le langage du shader |
|
pure virtual |
Crée un ShaderProgram (GLSL ou HLSL seulement)
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée une texture.
Référencé par GetMaxShaderModel().
|
pure virtual |
Crée un tampon de sommets.
[in] | p_buffer | Le tampon hardware auquel sera lié le tampon de sommets |
Référencé par GetMaxShaderModel().
|
protectedpure virtual |
Nettoie le render system.
Référencé par HasTextureBuffers().
|
protectedpure virtual |
Initialise le render system.
Référencé par HasTextureBuffers().
|
protected |
|
inlineprotected |
Références Castor3D::RenderSystem::ObjectDeclaration::m_id.
Référencé par DoTrack().
|
inlineprotected |
|
inlineprotected |
Références DoReportTracked(), et Castor3D::RenderSystem::ObjectDeclaration::m_ref.
C3D_API Camera* Castor3D::RenderSystem::GetCurrentCamera | ( | ) | const |
Récupère la caméra actuellement active.
|
inline |
|
inline |
|
inline |
|
inline |
Références CreateBackBuffers(), CreateBlendState(), CreateContext(), CreateDepthStencilState(), CreateDynamicTexture(), CreateFrameBuffer(), CreateFrameVariableBuffer(), CreateGeometryBuffers(), CreateIndexBuffer(), CreateQuery(), CreateRasteriserState(), CreateSampler(), CreateShaderProgram(), CreateStaticTexture(), CreateVertexBuffer(), GetPipelineImpl(), et m_maxShaderModel.
|
inline |
|
inline |
Récupère le pipeline.
Références m_pipeline.
|
inline |
Récupère le pipeline.
Références m_pipeline.
|
pure virtual |
Référencé par GetMaxShaderModel().
|
inline |
Récupère l'API de rendu.
Références m_rendererType.
|
inline |
Références m_shaderLanguageVersion.
C3D_API Scene* Castor3D::RenderSystem::GetTopScene | ( | ) |
Récupère la scène du haut de la pile.
C3D_API Castor::String Castor3D::RenderSystem::GetVertexShaderSource | ( | uint32_t | p_programFlags | ) |
Récupère le source du vertex shader qui correspond aux flags donnés.
[in] | p_programFlags | Combinaison de ePROGRAM_FLAG |
|
inline |
|
inline |
Références m_hasConstantsBuffers.
|
inline |
|
inline |
Récupère le support des textures non puissance de deux.
Références m_nonPowerOfTwoTextures.
|
inline |
Dit si le RenderSystem supporte le type de shader donné
[in] | p_type | Le type de shader |
Références m_useShader.
|
inline |
Références DoCleanup(), DoInitialise(), et m_hasTextureBuffers.
|
inline |
C3D_API void Castor3D::RenderSystem::Initialise | ( | ) |
Initialise le render system.
|
inline |
Dit si le RenderSystem est initialisé
Références m_initialised.
|
inline |
Dit si le RenderSystem supporte la stéréo.
Références m_stereoAvailable.
C3D_API void Castor3D::RenderSystem::PopScene | ( | ) |
Enlève la scène du haut de la pile.
C3D_API void Castor3D::RenderSystem::PushScene | ( | Scene * | p_scene | ) |
Met une scène sur la pile.
[in] | p_scene | La scène |
C3D_API void Castor3D::RenderSystem::RenderAmbientLight | ( | Castor::Colour const & | p_clColour, |
FrameVariableBuffer & | p_variableBuffer | ||
) |
Rend la lumière ambiante de la scène.
[in] | p_clColour | La couleur de la lumière |
[in] | p_variableBuffer | Le buffer the variables, qui reçoit la lumière ambient |
|
inline |
Réinitialise le temps CPU.
Références m_gpuTime.
C3D_API void Castor3D::RenderSystem::SetCurrentCamera | ( | Camera * | p_pCamera | ) |
Définit la caméra actuellement active.
[in] | p_pCamera | La caméra |
|
inline |
Définit le contexte de rendu actuellement actif.
[in] | p_context | Le contexte |
Références m_currentContext.
|
inline |
Définit le contexte de rendu principal.
[in] | p_context | Le contexte |
Références m_mainContext.
|
inline |
Définit si le RenderSystem supporte la stéréo.
Références m_stereoAvailable.
|
friend |
|
friend |
|
protected |
Dit si l'API de rendu choisie supporte le buffer d'accumulation.
Référencé par HasAccumulationBuffer().
|
protected |
|
protected |
Le contexte de rendu actuellement actif.
Référencé par GetCurrentContext(), et SetCurrentContext().
|
protected |
Le temps passé sur le GPU pour l'image courante.
Référencé par GetGpuTime(), IncGpuTime(), et ResetGpuTime().
|
protected |
Le statut du support de tampons de constantes.
Référencé par HasConstantsBuffers().
|
protected |
Le statut du support de tampons de textures.
Référencé par HasTextureBuffers().
|
protected |
|
protected |
Dit si le render system est initialisé
Référencé par IsInitialised().
|
protected |
Dit si l'API de rendu choisie supporte le dessin instancié
Référencé par HasInstancing().
|
protected |
Le contexte de rendu principal.
Référencé par GetMainContext(), et SetMainContext().
|
protected |
Le modèle de shader maximum supporté.
Référencé par CheckSupport(), et GetMaxShaderModel().
|
protected |
Mutex pour rendre cette classe thread safe.
|
protected |
Dit si l'API de rendu choisie supporte les textures non puissance de 2.
Référencé par HasNonPowerOfTwoTextures().
|
protected |
Le renderer d'overlays.
Référencé par GetOverlayRenderer().
|
protected |
La caméra actuellement active.
|
protected |
Le pipeline contenant les matrices.
Référencé par GetPipeline().
|
protected |
Le type de l'api de rendu actuellement chargée.
Référencé par GetRendererType().
|
protected |
La version du langage de shader.
Référencé par GetShaderLanguageVersion().
|
protected |
Pile des scènes.
|
protected |
Dit si le RenderSystem supporte la stéréo.
Référencé par IsStereoAvailable(), et SetStereoAvailable().
|
protected |
Dit quel type de shaders sont supportés.
Référencé par HasShaderType().