*/
// INTERNAL INCLUDES
-#include <dali/internal/common/message.h>
+#include <dali/public-api/math/rect.h>
#include <dali/internal/render/common/post-process-resource-dispatcher.h>
-#include <dali/internal/render/gl-resources/bitmap-texture.h>
-#include <dali/internal/update/common/double-buffered.h>
#include <dali/internal/update/resources/resource-manager-declarations.h>
-#include <dali/public-api/math/rect.h>
namespace Dali
{
namespace Internal
{
class Context;
+class ProgramCache;
namespace SceneGraph
{
class Renderer;
class RenderQueue;
-class RenderMaterial;
class TextureCache;
class RenderInstruction;
class RenderInstructionContainer;
class RenderTracker;
+class Shader;
/**
* RenderManager is responsible for rendering the result of the previous "update", which
TextureCache& GetTextureCache();
/**
- * Retrieves the context. Can only be called inside render thread
- * TODO remove this when programs are initialized in render thread
- * @return reference to the context
- */
- Context& GetContext();
-
- /**
* @copydoc Dali::Integration::Core::ContextCreated()
*/
void ContextCreated();
void RemoveRenderer( Renderer* renderer );
/**
- * Adds a RenderMaterial to the render manager for MeshRenderers to use.
- * The RenderManager takes ownership of the material
- * @param[in] renderMaterial
- * @post renderMaterial is owned by RenderManager
- */
- void AddRenderMaterial( RenderMaterial* renderMaterial );
-
- /**
- * Removes a RenderMaterial from the RenderManager
- * RenderManager will destroy the material
- * @pre renderManager owns the materail
- * @param[in] renderMaterial
- * @post renderMaterial is destroyed
- */
- void RemoveRenderMaterial( RenderMaterial* renderMaterial );
-
- /**
* Adds a render tracker to the RenderManager. RenderManager takes ownership of the
* tracker. The lifetime of the tracker is related to the lifetime of the tracked
* object, usually an offscreen render task.
*/
void RemoveRenderTracker( RenderTracker* renderTracker );
+ /**
+ * Set the default shader that is to be used in absence of custom shader
+ * @param[in] shader that is the default one
+ */
+ void SetDefaultShader( Shader* shader );
+
+ /**
+ * returns the Program controller for sending program messages
+ * @return the ProgramController
+ */
+ ProgramCache* GetProgramCache();
+
// This method should be called from Core::Render()
/**
/**
* Helper to process a single RenderInstruction.
* @param[in] instruction A description of the rendering operation.
+ * @param[in] defaultShader default shader to use.
+ * @param[in] elapsedTime from previous render.
*/
- void DoRender( RenderInstruction& instruction, float elapsedTime );
+ void DoRender( RenderInstruction& instruction, Shader& defaultShader, float elapsedTime );
private: