#include <dali/internal/render/renderers/render-renderer.h>
#include <dali/internal/render/shaders/scene-graph-shader.h>
#include <dali/internal/update/render-tasks/scene-graph-camera.h>
+#include <dali/internal/update/common/scene-graph-scene.h>
namespace Dali
{
{
DiscardQueue::DiscardQueue( RenderQueue& renderQueue )
-: mRenderQueue( renderQueue )
+: mRenderQueue( renderQueue ),
+ mNodeQueue(),
+ mShaderQueue(),
+ mRendererQueue(),
+ mCameraQueue(),
+ mSceneQueue()
{
}
// The GL resources will now be freed in frame N
// The Update for frame N+1 may occur in parallel with the rendering of frame N
// Queue the node for destruction in frame N+2
- if ( 0u == updateBufferIndex )
- {
- mNodeQueue0.PushBack( node );
- }
- else
- {
- mNodeQueue1.PushBack( node );
- }
+ mNodeQueue[ updateBufferIndex ].PushBack( node );
}
void DiscardQueue::Add( BufferIndex updateBufferIndex, Shader* shader )
// The GL resources will now be freed in frame N
// The Update for frame N+1 may occur in parallel with the rendering of frame N
// Queue the node for destruction in frame N+2
- if ( 0u == updateBufferIndex )
- {
- mShaderQueue0.PushBack( shader );
- }
- else
- {
- mShaderQueue1.PushBack( shader );
- }
+ mShaderQueue[ updateBufferIndex ].PushBack( shader );
}
void DiscardQueue::Add( BufferIndex updateBufferIndex, Renderer* renderer )
// The GL resources will now be freed in frame N
// The Update for frame N+1 may occur in parallel with the rendering of frame N
// Queue the node for destruction in frame N+2
- if ( 0u == updateBufferIndex )
- {
- mRendererQueue0.PushBack( renderer );
- }
- else
- {
- mRendererQueue1.PushBack( renderer );
- }
+ mRendererQueue[ updateBufferIndex ].PushBack( renderer );
}
void DiscardQueue::Add( BufferIndex updateBufferIndex, Camera* camera )
{
DALI_ASSERT_DEBUG( NULL != camera );
- if ( 0u == updateBufferIndex )
- {
- mCameraQueue0.PushBack( camera );
- }
- else
- {
- mCameraQueue1.PushBack( camera );
- }
+ mCameraQueue[ updateBufferIndex ].PushBack( camera );
+}
+
+void DiscardQueue::Add( BufferIndex updateBufferIndex, Scene* scene )
+{
+ DALI_ASSERT_DEBUG( NULL != scene );
+
+ mSceneQueue[ updateBufferIndex ].PushBack( scene );
}
void DiscardQueue::Clear( BufferIndex updateBufferIndex )
{
// Destroy some discarded objects; these should no longer own any GL resources
-
- if ( 0u == updateBufferIndex )
- {
- mNodeQueue0.Clear();
- mShaderQueue0.Clear();
- mRendererQueue0.Clear();
- mCameraQueue0.Clear();
- }
- else
- {
- mNodeQueue1.Clear();
- mShaderQueue1.Clear();
- mRendererQueue1.Clear();
- mCameraQueue1.Clear();
- }
+ mNodeQueue[ updateBufferIndex ].Clear();
+ mShaderQueue[ updateBufferIndex ].Clear();
+ mRendererQueue[ updateBufferIndex ].Clear();
+ mCameraQueue[ updateBufferIndex ].Clear();
+ mSceneQueue[ updateBufferIndex ].Clear();
}
} // namespace SceneGraph