#include <dali/public-api/object/ref-object.h>
#include <dali/public-api/object/base-object.h>
#include <dali/public-api/render-tasks/render-task.h>
-#include <dali/public-api/rendering/texture.h>
#include <dali/public-api/rendering/frame-buffer.h>
// INTERNAL INCLUDES
class Capture : public BaseObject, public ConnectionTracker
{
public:
+
+ static constexpr uint32_t DEFAULT_QUALITY = 100;
+
/**
* @brief Constructor.
*/
/**
* @copydoc Dali::Capture::Start
*/
- void Start( Dali::Actor source, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor );
+ void Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor, const uint32_t quality );
+
+ /**
+ * @copydoc Dali::Capture::Start
+ */
+ void Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor );
+
+ /**
+ * @copydoc Dali::Capture::SetImageQuality
+ */
+ void SetImageQuality( uint32_t quality );
/**
* @copydoc Dali::Capture::GetNativeImageSource
Dali::NativeImageSourcePtr GetNativeImageSource() const;
/**
+ * @copydoc Dali::Capture::GetTexture
+ */
+ Dali::Texture GetTexture();
+
+ /**
* @copydoc Dali::Capture::FinishedSignal
*/
Dali::Capture::CaptureFinishedSignalType& FinishedSignal();
/**
* @brief Create native image source.
*/
- void CreateNativeImageSource( const Dali::Vector2& size );
+ void CreateTexture( const Dali::Vector2& size );
/**
* @brief Delete native image source.
void DeleteNativeImageSource();
/**
- * @brief Query whether native image source is created or not.
- *
- * @return True is native image source is created.
- */
- bool IsNativeImageSourceCreated();
-
- /**
* @brief Create frame buffer.
*/
void CreateFrameBuffer();
/**
* @brief Setup render task.
*
- * @param[in] source is captured.
+ * @param[in] position top-left position of area to be captured
+ * this position is defined in the window.
+ * @param[in] size two dimensional size of area to be captured
+ * @param[in] source sub-scene tree to be captured.
* @param[in] clearColor background color
*/
- void SetupRenderTask( Dali::Actor source, const Dali::Vector4& clearColor );
+ void SetupRenderTask( const Dali::Vector2& position, const Dali::Vector2& size, Dali::Actor source, const Dali::Vector4& clearColor );
/**
* @brief Unset render task.
/**
* @brief Setup resources for capture.
*
- * @param[in] size is surface size.
- * @param[in] clearColor is clear color of surface.
- * @param[in] source is captured.
+ * @param[in] position top-left position of area to be captured
+ * this position is defined in the window.
+ * @param[in] size two dimensional size of area to be captured
+ * @param[in] clearColor color to clear background surface.
+ * @param[in] source sub-scene tree to be captured.
*/
- void SetupResources( const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source );
+ void SetupResources( const Dali::Vector2& position, const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source );
/**
* @brief Unset resources for capture.
Capture& operator=( const Capture& rhs );
private:
- Dali::Texture mNativeTexture;
+ uint32_t mQuality;
+ Dali::Texture mTexture;
Dali::FrameBuffer mFrameBuffer;
Dali::RenderTask mRenderTask;
- Dali::Actor mParent;
Dali::Actor mSource;
Dali::CameraActor mCameraActor;
- Dali::Timer mTimer; ///< For timeout.
+ Dali::Timer mTimer; ///< For timeout.
Dali::Capture::CaptureFinishedSignalType mFinishedSignal;
std::string mPath;
- Dali::NativeImageSourcePtr mNativeImageSourcePtr; ///< pointer to surface image
+ Dali::NativeImageSourcePtr mNativeImageSourcePtr; ///< pointer to surface image
bool mFileSave;
+ bool mIsNativeImageSourcePossible;
};
} // End of namespace Adaptor