Dali 3D User Interface Engine
List of all members | Public Member Functions | Private Attributes
Dali::Internal::Render::RenderTracker Class Reference

This class is used to communicate with Fence Sync objects, keeping access solely in the RenderThread to avoid having mutual exclusion locks or messages back to the UpdateThread. More...

#include <render-tracker.h>

Collaboration diagram for Dali::Internal::Render::RenderTracker:
Collaboration graph
[legend]

Public Member Functions

 RenderTracker ()
 Constructor. More...
 
 ~RenderTracker ()
 Destructor. More...
 
void CreateSyncObject (Integration::GlSyncAbstraction &glSyncAbstraction)
 Creates a sync object for this tracker. More...
 
void PollSyncObject ()
 Check the GL Sync objects. More...
 
bool IsSynced ()
 Check the sync trigger. More...
 
void ResetSyncFlag ()
 Atomically reset the sync trigger. More...
 
void SetSyncFlag ()
 Atomically sets the sync trigger. More...
 

Private Attributes

Integration::GlSyncAbstractionmGlSyncAbstraction
 
Integration::GlSyncAbstraction::SyncObjectmSyncObject
 
volatile int mSyncTrigger
 

Detailed Description

This class is used to communicate with Fence Sync objects, keeping access solely in the RenderThread to avoid having mutual exclusion locks or messages back to the UpdateThread.

Definition at line 35 of file render-tracker.h.

Constructor & Destructor Documentation

Dali::Internal::Render::RenderTracker::RenderTracker ( )

Constructor.

Definition at line 36 of file render-tracker.cpp.

References TRACKER_LOG.

Dali::Internal::Render::RenderTracker::~RenderTracker ( )

Destructor.

Definition at line 44 of file render-tracker.cpp.

References Dali::Integration::GlSyncAbstraction::DestroySyncObject(), mGlSyncAbstraction, mSyncObject, and TRACKER_LOG.

Here is the call graph for this function:

Member Function Documentation

void Dali::Internal::Render::RenderTracker::CreateSyncObject ( Integration::GlSyncAbstraction glSyncAbstraction)

Creates a sync object for this tracker.

Will delete any existing sync object.

Definition at line 54 of file render-tracker.cpp.

References Dali::Integration::GlSyncAbstraction::CreateSyncObject(), Dali::Integration::GlSyncAbstraction::DestroySyncObject(), mGlSyncAbstraction, mSyncObject, ResetSyncFlag(), and TRACKER_LOG.

Referenced by Dali::Internal::SceneGraph::RenderManager::DoRender().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Dali::Internal::Render::RenderTracker::IsSynced ( )

Check the sync trigger.

This is called from Update Thread, so atomically reads the sync trigger It clears the sync trigger if it was set.

Returns
true if the tracker has been synced

Definition at line 83 of file render-tracker.cpp.

References mSyncTrigger, and TRACKER_LOG_FMT.

Referenced by Dali::Internal::SceneGraph::RenderTask::UpdateState().

Here is the caller graph for this function:

void Dali::Internal::Render::RenderTracker::PollSyncObject ( )

Check the GL Sync objects.

This is called from Render Thread. If the GlSyncObject has been triggered, then atomically set the sync trigger

Definition at line 69 of file render-tracker.cpp.

References Dali::Integration::GlSyncAbstraction::DestroySyncObject(), Dali::Integration::GlSyncAbstraction::SyncObject::IsSynced(), mGlSyncAbstraction, mSyncObject, SetSyncFlag(), and TRACKER_LOG_FMT.

Here is the call graph for this function:

void Dali::Internal::Render::RenderTracker::ResetSyncFlag ( )

Atomically reset the sync trigger.

This may be called from any thread

Definition at line 91 of file render-tracker.cpp.

References mSyncTrigger, and TRACKER_LOG.

Referenced by CreateSyncObject().

Here is the caller graph for this function:

void Dali::Internal::Render::RenderTracker::SetSyncFlag ( )

Atomically sets the sync trigger.

This may be called from any thread

Definition at line 97 of file render-tracker.cpp.

References mSyncTrigger.

Referenced by PollSyncObject().

Here is the caller graph for this function:

Member Data Documentation

Integration::GlSyncAbstraction* Dali::Internal::Render::RenderTracker::mGlSyncAbstraction
private

Definition at line 78 of file render-tracker.h.

Referenced by CreateSyncObject(), PollSyncObject(), and ~RenderTracker().

Integration::GlSyncAbstraction::SyncObject* Dali::Internal::Render::RenderTracker::mSyncObject
private

Definition at line 79 of file render-tracker.h.

Referenced by CreateSyncObject(), PollSyncObject(), and ~RenderTracker().

volatile int Dali::Internal::Render::RenderTracker::mSyncTrigger
private

Definition at line 80 of file render-tracker.h.

Referenced by IsSynced(), ResetSyncFlag(), and SetSyncFlag().


The documentation for this class was generated from the following files:
Dali Docs Home
Read more about Dali