Split sync object into EGL/GLES variants
[platform/core/uifw/dali-adaptor.git] / dali / internal / graphics / gles-impl / gles-graphics-render-target.h
index 57169d8..6a9fcab 100644 (file)
@@ -27,6 +27,7 @@
 
 namespace Dali::Graphics::GLES
 {
+class Framebuffer;
 using RenderTargetResource = Resource<Graphics::RenderTarget, Graphics::RenderTargetCreateInfo>;
 
 class RenderTarget : public RenderTargetResource
@@ -37,15 +38,12 @@ public:
    * @param[in] createInfo Valid createInfo structure
    * @param[in] controller Reference to the controller
    */
-  RenderTarget(const Graphics::RenderTargetCreateInfo& createInfo, Graphics::EglGraphicsController& controller)
-  : RenderTargetResource(createInfo, controller)
-  {
-  }
+  RenderTarget(const Graphics::RenderTargetCreateInfo& createInfo, Graphics::EglGraphicsController& controller);
 
   /**
    * @brief Destructor
    */
-  ~RenderTarget() override = default;
+  ~RenderTarget() override;
 
   /**
    * @brief Called when GL resources are destroyed
@@ -73,6 +71,20 @@ public:
   {
     // TODO: Implement moving to the discard queue
   }
+
+  /**
+   * @brief Returns framebuffer associated with the render target
+   */
+  GLES::Framebuffer* GetFramebuffer() const;
+
+  /**
+   * @brief Returns surface associated with the render target
+   */
+  Surface* GetSurface() const;
+
+private:
+  struct Impl;
+  std::unique_ptr<Impl> mImpl{nullptr};
 };
 
 } // namespace Dali::Graphics::GLES