Merge "DALi Version 1.1.37" into devel/master
[platform/core/uifw/dali-core.git] / dali / internal / event / rendering / shader-impl.h
index d70992f..d1c74f2 100644 (file)
 #include <dali/public-api/common/dali-common.h> // DALI_ASSERT_ALWAYS
 #include <dali/public-api/common/intrusive-ptr.h> // Dali::IntrusivePtr
 #include <dali/devel-api/rendering/shader.h> // Dali::Shader
-#include <dali/internal/event/common/connectable.h> // Dali::Internal::Connectable
 #include <dali/internal/event/common/object-connector.h> // Dali::Internal::ObjectConnector
 #include <dali/internal/event/common/object-impl.h> // Dali::Internal::Object
 #include <dali/internal/event/resources/resource-ticket.h> // Dali::Internal::ResourceTicketPtr
+#include <dali/internal/common/shader-data.h> // ShaderPtr
 
 namespace Dali
 {
@@ -43,7 +43,7 @@ typedef IntrusivePtr<Shader> ShaderPtr;
  * Shader is an object that contains an array of structures of values that
  * can be accessed as properties.
  */
-class Shader : public Object, public Connectable
+class Shader : public Object
 {
 public:
 
@@ -61,6 +61,12 @@ public:
    */
   const SceneGraph::Shader* GetShaderSceneObject() const;
 
+  /**
+   * Retrieve the scene-graph shader added by this object.
+   * @return A pointer to the shader.
+   */
+  SceneGraph::Shader* GetShaderSceneObject();
+
 public: // Default property extensions from Object
 
   /**
@@ -143,22 +149,6 @@ public: // Default property extensions from Object
    */
   virtual int GetPropertyComponentIndex( Property::Index index ) const;
 
-public: // Functions from Connectable
-  /**
-   * @copydoc Dali::Internal::Connectable::OnStage()
-   */
-  virtual bool OnStage() const;
-
-  /**
-   * @copydoc Dali::Internal::Connectable::Connect()
-   */
-  virtual void Connect();
-
-  /**
-   * @copydoc Dali::Internal::Connectable::Disconnect()
-   */
-  virtual void Disconnect();
-
 private: // implementation
   Shader();
 
@@ -179,8 +169,7 @@ private: // unimplemented methods
 
 private:
   SceneGraph::Shader* mSceneObject;
-  ResourceTicketPtr mTicket;
-  bool mOnStage;
+  Internal::ShaderDataPtr mShaderData;
 };
 
 } // namespace Internal