#define __DALI_INTERNAL_RENDER_TASK_H__
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// INTERNAL INCLUDES
#include <dali/public-api/object/base-object.h>
#include <dali/public-api/render-tasks/render-task.h>
-#include <dali/public-api/images/frame-buffer-image.h>
+#include <dali/internal/event/images/frame-buffer-image-impl.h>
#include <dali/internal/event/common/object-impl.h>
+#include <dali/internal/event/rendering/frame-buffer-impl.h>
namespace Dali
{
namespace SceneGraph
{
class RenderTask;
+class Camera;
}
class RenderTask : public Object
/**
* @copydoc Dali::RenderTask::SetTargetFrameBuffer()
*/
- void SetTargetFrameBuffer( Dali::FrameBufferImage frameBuffer );
+ void SetTargetFrameBuffer( FrameBufferImagePtr frameBuffer );
/**
* @copydoc Dali::RenderTask::GetTargetFrameBuffer
*/
- Dali::FrameBufferImage GetTargetFrameBuffer() const;
+ FrameBufferImage* GetTargetFrameBuffer() const;
+
+ /**
+ * @copydoc Dali::RenderTask::SetFrameBuffer()
+ */
+ void SetFrameBuffer( FrameBufferPtr frameBuffer );
+
+ /**
+ * @copydoc Dali::RenderTask::GetFrameBuffer
+ */
+ FrameBuffer* GetFrameBuffer() const;
/**
* @copydoc Dali::RenderTask::SetScreenToFrameBufferFunction
const Vector4& GetClearColor() const;
/**
+ * Indicate whether GL sync is required for native render target.
+ * @param[in] requiresSync whether GL sync is required.
+ */
+ void SetSyncRequired( bool requiresSync );
+
+ /**
+ * Query whether the sync object is required for native render target.
+ * @return True if the sync object is required, false otherwise.
+ */
+ bool IsSyncRequired() const;
+
+ /**
* @copydoc Dali::RenderTask::SetClearEnabled()
*/
void SetClearEnabled( bool enabled );
RenderTask& mRenderTask;
Actor* mActor; ///< Raw-pointer to the actor; not owned.
+ const SceneGraph::Camera* mCamera; ///< Raw-pointer to camera scene-graph object; not owned.
};
private:
Connector mSourceConnector; ///< Responsible for connecting/disconnecting source Nodes
Connector mCameraConnector; ///< Responsible for connecting/disconnecting camera Nodes
- Connector mMappingConnector; /// Responsible for connecting/disconnection actor node, which used to mapping screen to frame buffer coordinate
+ Connector mMappingConnector; /// Responsible for connecting/disconnecting actor node, which used to mapping screen to frame buffer coordinate
Vector4 mClearColor; ///< Optional clear color
unsigned int mRefreshOnceCounter;
- Dali::FrameBufferImage mFrameBufferImage; ///< Optional off-screen render target.
+ FrameBufferImagePtr mFrameBufferImage; ///< Optional off-screen render target.
+ FrameBufferPtr mFrameBuffer;
+
Dali::RenderTask::ScreenToFrameBufferFunction mScreenToFrameBufferFunction; ///< Used to convert screen to frame-buffer coordinates
bool mClearEnabled : 1; ///< True if the render-task should be clear the color buffer.
bool mCullMode : 1; ///< True if the render-task's actors should be culled
bool mIsSystemLevel : 1; ///< True if the render-task is on the system level task list.
+ bool mRequiresSync : 1; ///< True if the GL sync is required to track the render of.
//Signals
Dali::RenderTask::RenderTaskSignalType mSignalFinished; ///< Signal emmited when the render task has been processed.