Castor3D  0.11.0
Multiplatform 3D engine
Classes | Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::RenderLoopabstract
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. Plus de détails...
 
virtual C3D_API ~RenderLoop ()
 Destructeur. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la boucle de rendu. Plus de détails...
 
C3D_API void createDevice (ashes::WindowHandle handle, RenderWindow &window)
 Crée un contexte de rendu. Plus de détails...
 
C3D_API void showDebugOverlays (bool show)
 Affiche ou cache les incrustations de débogage. Plus de détails...
 
virtual C3D_API void enableVSync (bool enable)
 Met à jour le statut de synchronisation verticale. Plus de détails...
 
C3D_API void flushEvents ()
 Vide tous les évènements de tous les frame listeners. Plus de détails...
 
C3D_API uint32_t registerTimer (RenderPassTimer &timer)
 Enregistre un timer de passe de rendu. Plus de détails...
 
C3D_API void unregisterTimer (RenderPassTimer &timer)
 Désenregistre un timer de passe de rendu. Plus de détails...
 
C3D_API bool hasDebugOverlays () const
 
virtual C3D_API void beginRendering ()=0
 Commence le rendu threadé. Plus de détails...
 
virtual C3D_API void renderSyncFrame (castor::Milliseconds tslf=0_ms)=0
 Rend une image, uniquement hors de la boucle de rendu. Plus de détails...
 
virtual C3D_API void pause ()=0
 Met la boucle de rendu en pause. Plus de détails...
 
virtual C3D_API void resume ()=0
 Redémarre la boucle de rendu. Plus de détails...
 
virtual C3D_API void endRendering ()=0
 Termine le rendu, nettoie le moteur. Plus de détails...
 
castor::Milliseconds getFrameTime ()
 
uint32_t getWantedFps ()
 
castor::Microseconds getLastFrameTime ()
 

Fonctions membres protégées

C3D_API RenderDeviceSPtr doCreateDevice (ashes::WindowHandle handle, RenderWindow &window)
 Demande la création du contexte de rendu. Plus de détails...
 
C3D_API void doRenderFrame (castor::Milliseconds tslf=0_ms)
 Commence le rendu threadé. Plus de détails...
 
virtual C3D_API RenderDeviceSPtr doCreateMainDevice (ashes::WindowHandle handle, RenderWindow &window)=0
 Demande la création du contexte de rendu principal. Plus de détails...
 

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
 
castor::ThreadPool m_queueUpdater
 
std::array< UploadResources, 2u > m_uploadResources
 
uint32_t m_currentUpdate { 0u }
 

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.

◆ createDevice()

C3D_API void castor3d::RenderLoop::createDevice ( ashes::WindowHandle  handle,
RenderWindow window 
)

Crée un contexte de rendu.

Remarques
Si le contexte principal n'a pas encore été créé, le premier contexte créé deviendra le contexte principal. Pour la boucles de rendu asynchrone, cela signifie que le thread appelant cette fonction sera sans contexte associé, prévenant l'appel de renderSyncFrame.
Paramètres
[in]handleLe handle de la fenêtre native.
[in]windowLa fenêtre de rendu utilisée pour initialiser le contexte de rendu, recevra le contexte.

◆ doCreateDevice()

C3D_API RenderDeviceSPtr castor3d::RenderLoop::doCreateDevice ( ashes::WindowHandle  handle,
RenderWindow window 
)
protected

Demande la création du contexte de rendu.

Paramètres
[in]handleLe handle de la fenêtre native.
[in]windowLa fenêtre de rendu utilisée pour initialiser le contexte de rendu, recevra le contexte.
Renvoie
Le contexte créé, ou l'existant.

◆ doCreateMainDevice()

virtual C3D_API RenderDeviceSPtr castor3d::RenderLoop::doCreateMainDevice ( ashes::WindowHandle  handle,
RenderWindow window 
)
protectedpure virtual

Demande la création du contexte de rendu principal.

Paramètres
[in]handleLe handle de la fenêtre native.
[in]windowLa fenêtre de rendu utilisée pour initialiser le contexte de rendu, recevra le contexte.

◆ 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.

◆ 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.

◆ getFrameTime()

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

Références m_frameTime.

◆ getLastFrameTime()

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

Références m_lastFrameTime.

◆ getWantedFps()

uint32_t castor3d::RenderLoop::getWantedFps ( )
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.

◆ registerTimer()

C3D_API uint32_t castor3d::RenderLoop::registerTimer ( RenderPassTimer timer)

Enregistre un timer de passe de rendu.

Paramètres
[in]timerLe timer à enregistrer.
Renvoie
L'ID de la requête.

◆ 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.

◆ unregisterTimer()

C3D_API void castor3d::RenderLoop::unregisterTimer ( RenderPassTimer timer)

Désenregistre un timer de passe de rendu.

Paramètres
[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_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_queueUpdater

castor::ThreadPool castor3d::RenderLoop::m_queueUpdater
protected

Le pool de mise à jour des files de rendu.

◆ m_renderSystem

RenderSystem& castor3d::RenderLoop::m_renderSystem
protected

Le RenderSystem courant.

◆ 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().


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