Castor3D 0.16.0
Multiplatform 3D engine
|
#include <RenderLoop.hpp>
Fonctions membres publiques | |
C3D_API | RenderLoop (Engine &engine, uint32_t wantedFPS) |
Constructeur. | |
virtual C3D_API | ~RenderLoop () noexcept |
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 () const |
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 ¶ms) 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. | |
Accesseurs. | |
castor::Milliseconds | getFrameTime () const noexcept |
uint32_t | getWantedFps () const noexcept |
castor::Microseconds | getLastFrameTime () const noexcept |
UploadData & | getUploadData () const noexcept |
Fonctions membres publiques hérités de castor::OwnedBy< Engine > | |
Engine * | getOwner () const |
L'objet propriétaire. | |
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é. | |
Fonctions membres protégées hérités de castor::OwnedBy< Engine > | |
OwnedBy (Engine &owner) | |
Constructeur. | |
Attributs protégés | |
RenderSystem & | m_renderSystem |
uint32_t | m_wantedFPS |
castor::Milliseconds | m_frameTime |
std::atomic< castor::Microseconds > | m_lastFrameTime |
castor::RawUniquePtr< DebugOverlays > | m_debugOverlays |
castor::Mutex | m_debugOverlaysMtx |
Constructeur.
[in] | engine | Le moteur. |
[in] | wantedFPS | Le nombre voulu du FPS. |
|
virtualnoexcept |
Destructeur.
|
pure virtual |
Commence le rendu threadé.
Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.
C3D_API void castor3d::RenderLoop::cleanup | ( | ) |
Nettoie la boucle de rendu.
|
protected |
Commence le rendu threadé.
[in] | tslf | Le temps écoulé depuis la dernière frame. |
C3D_API void castor3d::RenderLoop::dumpFrameTimes | ( | Parameters & | params | ) | const |
Le temps moyen pour une frame, en nanosecondes.
|
virtual |
Met à jour le statut de synchronisation verticale.
[in] | enable | Le statut. |
Réimplémentée dans castor3d::RenderLoopAsync.
|
pure virtual |
Termine le rendu, nettoie le moteur.
Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.
C3D_API void castor3d::RenderLoop::flushEvents | ( | ) | const |
Vide tous les évènements de tous les frame listeners.
C3D_API castor::Nanoseconds castor3d::RenderLoop::getAvgFrameTime | ( | ) | const |
|
inlinenoexcept |
Références m_frameTime.
|
inlinenoexcept |
Références m_lastFrameTime.
|
inlinenoexcept |
|
inlinenoexcept |
Références m_wantedFPS.
C3D_API bool castor3d::RenderLoop::hasDebugOverlays | ( | ) | const |
|
pure virtual |
Met la boucle de rendu en pause.
Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.
C3D_API void castor3d::RenderLoop::registerBuffer | ( | ShaderBuffer const & | buffer | ) |
Enregistre un ShaderBuffer.
[in] | buffer | Le ShaderBuffer. |
C3D_API void castor3d::RenderLoop::registerTimer | ( | castor::String const & | category, |
FramePassTimer & | timer ) |
Enregistre un timer de passe de rendu.
[in] | category | Le nom de la catégorie du timer. |
[in] | timer | Le timer à enregistrer. |
|
pure virtual |
Rend une image, uniquement hors de la boucle de rendu.
[in] | tslf | Le temps écoulé depuis la dernière frame. |
Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.
|
pure virtual |
Redémarre la boucle de rendu.
Implémenté dans castor3d::RenderLoopAsync, et castor3d::RenderLoopSync.
C3D_API void castor3d::RenderLoop::showDebugOverlays | ( | bool | show | ) |
Affiche ou cache les incrustations de débogage.
[in] | show | Le statut. |
C3D_API void castor3d::RenderLoop::unregisterBuffer | ( | ShaderBuffer const & | buffer | ) |
Désenregistre un ShaderBuffer.
[in] | buffer | Le ShaderBuffer. |
C3D_API void castor3d::RenderLoop::unregisterTimer | ( | castor::String const & | category, |
FramePassTimer & | timer ) |
Désenregistre un timer de passe de rendu.
[in] | category | Le nom de la catégorie du timer. |
[in] | timer | Le timer à désenregistrer. |
|
protected |
Les incrustations de débogage.
|
protected |
|
protected |
Le temps voulu pour une frame.
Référencé par getFrameTime().
|
protected |
Le temps écoulé pour la dernière frame.
Référencé par getLastFrameTime().
|
protected |
Le RenderSystem courant.
|
protected |
Le nombre de FPS souhaité, utilisé en rendu threadé.
Référencé par getWantedFps().
|
staticconstexpr |