Castor3D 0.15.0
Multiplatform 3D engine
Classes | Fonctions membres publiques | Attributs publics statiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::RenderLoopabstract

#include <RenderLoop.hpp>

Graphe d'héritage de castor3d::RenderLoop:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::RenderLoop:
Collaboration graph
[légende]

Classes

struct  UploadResources
 

Fonctions membres publiques

C3D_API RenderLoop (Engine &engine, uint32_t wantedFPS, bool isAsync)
 Constructeur.
 
virtual C3D_API ~RenderLoop ()
 Destructeur.
 
C3D_API void cleanup ()
 Nettoie la boucle de rendu.
 
C3D_API void showDebugOverlays (bool show)
 Affiche ou cache les incrustations de débogage.
 
virtual C3D_API void enableVSync (bool enable)
 Met à jour le statut de synchronisation verticale.
 
C3D_API void flushEvents ()
 Vide tous les évènements de tous les frame listeners.
 
C3D_API void registerTimer (castor::String const &category, FramePassTimer &timer)
 Enregistre un timer de passe de rendu.
 
C3D_API void unregisterTimer (castor::String const &category, FramePassTimer &timer)
 Désenregistre un timer de passe de rendu.
 
C3D_API void registerBuffer (ShaderBuffer const &buffer)
 Enregistre un ShaderBuffer.
 
C3D_API void unregisterBuffer (ShaderBuffer const &buffer)
 Désenregistre un ShaderBuffer.
 
C3D_API bool hasDebugOverlays () const
 
C3D_API void dumpFrameTimes (Parameters &params) const
 Le temps moyen pour une frame, en nanosecondes.
 
C3D_API castor::Nanoseconds getAvgFrameTime () const
 
virtual C3D_API void beginRendering ()=0
 Commence le rendu threadé.
 
virtual C3D_API void renderSyncFrame (castor::Milliseconds tslf=0_ms)=0
 Rend une image, uniquement hors de la boucle de rendu.
 
virtual C3D_API void pause ()=0
 Met la boucle de rendu en pause.
 
virtual C3D_API void resume ()=0
 Redémarre la boucle de rendu.
 
virtual C3D_API void endRendering ()=0
 Termine le rendu, nettoie le moteur.
 
castor::Milliseconds getFrameTime () const
 
uint32_t getWantedFps () const
 
castor::Microseconds getLastFrameTime () const
 

Attributs publics statiques

static constexpr uint32_t UnlimitedFPS = 0xFFFFFFFFu
 

Fonctions membres protégées

C3D_API void doRenderFrame (castor::Milliseconds tslf=0_ms)
 Commence le rendu threadé.
 

Attributs protégés

RenderSystemm_renderSystem
 
uint32_t m_wantedFPS
 
castor::Milliseconds m_frameTime
 
std::atomic< castor::Microseconds > m_lastFrameTime
 
std::unique_ptr< DebugOverlaysm_debugOverlays
 
std::mutex m_debugOverlaysMtx
 
std::array< UploadResources, 2u > m_uploadResources
 
uint32_t m_currentUpdate { 0u }
 
crg::SemaphoreWaitArray m_toWait
 

Documentation des constructeurs et destructeur

◆ RenderLoop()

C3D_API castor3d::RenderLoop::RenderLoop ( Engine engine,
uint32_t  wantedFPS,
bool  isAsync 
)

Constructeur.

Paramètres
[in]engineLe moteur.
[in]wantedFPSLe nombre voulu du FPS.
[in]isAsyncDit si la boucle de rendu est asynchrone.

◆ ~RenderLoop()

virtual C3D_API castor3d::RenderLoop::~RenderLoop ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ beginRendering()

virtual C3D_API void castor3d::RenderLoop::beginRendering ( )
pure virtual

Commence le rendu threadé.

Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.

◆ cleanup()

C3D_API void castor3d::RenderLoop::cleanup ( )

Nettoie la boucle de rendu.

◆ doRenderFrame()

C3D_API void castor3d::RenderLoop::doRenderFrame ( castor::Milliseconds  tslf = 0_ms)
protected

Commence le rendu threadé.

Paramètres
[in]tslfLe temps écoulé depuis la dernière frame.

◆ dumpFrameTimes()

C3D_API void castor3d::RenderLoop::dumpFrameTimes ( Parameters params) const

Le temps moyen pour une frame, en nanosecondes.

◆ enableVSync()

virtual C3D_API void castor3d::RenderLoop::enableVSync ( bool  enable)
virtual

Met à jour le statut de synchronisation verticale.

Paramètres
[in]enableLe statut.

Réimplémentée dans castor3d::RenderLoopAsync.

◆ endRendering()

virtual C3D_API void castor3d::RenderLoop::endRendering ( )
pure virtual

Termine le rendu, nettoie le moteur.

Remarques
Arrête la boucle de rendu threadé, si elle existe.

Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.

◆ flushEvents()

C3D_API void castor3d::RenderLoop::flushEvents ( )

Vide tous les évènements de tous les frame listeners.

◆ getAvgFrameTime()

C3D_API castor::Nanoseconds castor3d::RenderLoop::getAvgFrameTime ( ) const
Renvoie
Le temps moyen pour une frame, en nanosecondes.

◆ getFrameTime()

castor::Milliseconds castor3d::RenderLoop::getFrameTime ( ) const
inline
Renvoie
Le temps voulu pour une frame, en millisecondes.

Références m_frameTime.

◆ getLastFrameTime()

castor::Microseconds castor3d::RenderLoop::getLastFrameTime ( ) const
inline
Renvoie
Le temps écoulé pour la dernière frame, en millisecondes.

Références m_lastFrameTime.

◆ getWantedFps()

uint32_t castor3d::RenderLoop::getWantedFps ( ) const
inline
Renvoie
La vitesse de rafraichissement.

Références m_wantedFPS.

◆ hasDebugOverlays()

C3D_API bool castor3d::RenderLoop::hasDebugOverlays ( ) const
Renvoie
Le statut d'affichage des incrustations de débogage.

◆ pause()

virtual C3D_API void castor3d::RenderLoop::pause ( )
pure virtual

Met la boucle de rendu en pause.

Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.

◆ registerBuffer()

C3D_API void castor3d::RenderLoop::registerBuffer ( ShaderBuffer const &  buffer)

Enregistre un ShaderBuffer.

Paramètres
[in]bufferLe ShaderBuffer.

◆ registerTimer()

C3D_API void castor3d::RenderLoop::registerTimer ( castor::String const &  category,
FramePassTimer &  timer 
)

Enregistre un timer de passe de rendu.

Paramètres
[in]categoryLe nom de la catégorie du timer.
[in]timerLe timer à enregistrer.

◆ renderSyncFrame()

virtual C3D_API void castor3d::RenderLoop::renderSyncFrame ( castor::Milliseconds  tslf = 0_ms)
pure virtual

Rend une image, uniquement hors de la boucle de rendu.

Paramètres
[in]tslfLe temps écoulé depuis la dernière frame.

Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.

◆ resume()

virtual C3D_API void castor3d::RenderLoop::resume ( )
pure virtual

Redémarre la boucle de rendu.

Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.

◆ showDebugOverlays()

C3D_API void castor3d::RenderLoop::showDebugOverlays ( bool  show)

Affiche ou cache les incrustations de débogage.

Paramètres
[in]showLe statut.

◆ unregisterBuffer()

C3D_API void castor3d::RenderLoop::unregisterBuffer ( ShaderBuffer const &  buffer)

Désenregistre un ShaderBuffer.

Paramètres
[in]bufferLe ShaderBuffer.

◆ unregisterTimer()

C3D_API void castor3d::RenderLoop::unregisterTimer ( castor::String const &  category,
FramePassTimer &  timer 
)

Désenregistre un timer de passe de rendu.

Paramètres
[in]categoryLe nom de la catégorie du timer.
[in]timerLe timer à désenregistrer.

Documentation des données membres

◆ m_currentUpdate

uint32_t castor3d::RenderLoop::m_currentUpdate { 0u }
protected

◆ m_debugOverlays

std::unique_ptr< DebugOverlays > castor3d::RenderLoop::m_debugOverlays
protected

Les incrustations de débogage.

◆ m_debugOverlaysMtx

std::mutex castor3d::RenderLoop::m_debugOverlaysMtx
protected

◆ m_frameTime

castor::Milliseconds castor3d::RenderLoop::m_frameTime
protected

Le temps voulu pour une frame.

Référencé par getFrameTime().

◆ m_lastFrameTime

std::atomic< castor::Microseconds > castor3d::RenderLoop::m_lastFrameTime
protected

Le temps écoulé pour la dernière frame.

Référencé par getLastFrameTime().

◆ m_renderSystem

RenderSystem& castor3d::RenderLoop::m_renderSystem
protected

Le RenderSystem courant.

◆ m_toWait

crg::SemaphoreWaitArray castor3d::RenderLoop::m_toWait
protected

◆ m_uploadResources

std::array< UploadResources, 2u > castor3d::RenderLoop::m_uploadResources
protected

◆ m_wantedFPS

uint32_t castor3d::RenderLoop::m_wantedFPS
protected

Le nombre de FPS souhaité, utilisé en rendu threadé.

Référencé par getWantedFps().

◆ UnlimitedFPS

constexpr uint32_t castor3d::RenderLoop::UnlimitedFPS = 0xFFFFFFFFu
staticconstexpr

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