X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Frender%2Fcommon%2Frender-manager.h;h=9191a27ec873434090813ad2c39490559955c98d;hb=0643c768fd100bd7ffb522e3358b88d075bc1d2e;hp=49bc16bf73883b3e124d4ffe923a766b59cad16f;hpb=0a0f0cd9e8a92555f24f1a2e5939475dc9b5a009;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/render/common/render-manager.h b/dali/internal/render/common/render-manager.h index 49bc16b..9191a27 100644 --- a/dali/internal/render/common/render-manager.h +++ b/dali/internal/render/common/render-manager.h @@ -2,7 +2,7 @@ #define __DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -20,6 +20,7 @@ // INTERNAL INCLUDES #include +#include #include #include #include @@ -71,12 +72,15 @@ public: /** * Construct a new RenderManager. - * @param[in] glAbstraction The GL abstraction used for rendering. - * @param[in] glSyncAbstraction The GL sync abstraction used fence sync creation/deletion. - * @param[out] resourcePostProcessQueue A queue for sending rendered texture ids to the update-thread.* + * @param[in] glAbstraction The GL abstraction used for rendering. + * @param[in] glSyncAbstraction The GL sync abstraction used fence sync creation/deletion. + * @param[in] depthBufferAvailable Whether the depth buffer is available + * @param[in] stencilBufferAvailable Whether the stencil buffer is available */ static RenderManager* New( Integration::GlAbstraction& glAbstraction, - Integration::GlSyncAbstraction& glSyncAbstraction ); + Integration::GlSyncAbstraction& glSyncAbstraction, + Integration::DepthBufferAvailable depthBufferAvailable, + Integration::StencilBufferAvailable stencilBufferAvailable ); /** * Non-virtual destructor; not intended as a base class @@ -138,7 +142,7 @@ public: * @param[in] renderer The renderer to add. * @post renderer is owned by RenderManager */ - void AddRenderer( Render::Renderer* renderer ); + void AddRenderer( OwnerPointer< Render::Renderer >& renderer ); /** * Remove a Renderer from the render manager. @@ -152,7 +156,7 @@ public: * @param[in] sampler The sampler to add. * @post sampler is owned by RenderManager */ - void AddSampler( Render::Sampler* sampler ); + void AddSampler( OwnerPointer< Render::Sampler >& sampler ); /** * Remove a sampler from the render manager. @@ -181,7 +185,7 @@ public: * @param[in] propertyBuffer The property buffer to add. * @post propertBuffer is owned by RenderManager */ - void AddPropertyBuffer( Render::PropertyBuffer* propertyBuffer ); + void AddPropertyBuffer( OwnerPointer< Render::PropertyBuffer >& propertyBuffer ); /** * Remove a property buffer from the render manager. @@ -195,7 +199,7 @@ public: * @param[in] geometry The geometry to add. * @post geometry is owned by RenderManager */ - void AddGeometry( Render::Geometry* geometry ); + void AddGeometry( OwnerPointer< Render::Geometry >& geometry ); /** * Remove a geometry from the render manager. @@ -209,7 +213,7 @@ public: * @param[in] geometry The geometry * @param[in] propertyBuffer The property buffer to remove. */ - void AddVertexBuffer( Render::Geometry* geometry, Render::PropertyBuffer* propertyBuffer ); + void AttachVertexBuffer( Render::Geometry* geometry, Render::PropertyBuffer* propertyBuffer ); /** * Remove a property buffer from a Render::Geometry from the render manager. @@ -224,7 +228,7 @@ public: * @param[in] propertyBuffer The property buffer. * @param[in] format The new format of the buffer */ - void SetPropertyBufferFormat( Render::PropertyBuffer* propertyBuffer, Render::PropertyBuffer::Format* format ); + void SetPropertyBufferFormat( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Render::PropertyBuffer::Format>& format ); /** * Sets the data of an existing property buffer @@ -232,7 +236,7 @@ public: * @param[in] data The new data of the buffer * @param[in] size The new size of the buffer */ - void SetPropertyBufferData( Render::PropertyBuffer* propertyBuffer, Dali::Vector* data, size_t size ); + void SetPropertyBufferData( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Vector >& data, size_t size ); /** * Sets the data for the index buffer of an existing geometry @@ -252,7 +256,7 @@ public: * Adds a texture to the render manager * @param[in] texture The texture to add */ - void AddTexture( Render::Texture* texture ); + void AddTexture( OwnerPointer< Render::Texture >& texture ); /** * Removes a texture from the render manager @@ -319,9 +323,10 @@ public: /** * Renders the results of the previous "update" traversal. - * @param[out] status contains the flag that indicates if render instructions exist + * @param[out] status contains the rendering flags. + * @param[in] forceClear force the Clear on the framebuffer even if nothing is rendered. */ - void Render( Integration::RenderStatus& status ); + void Render( Integration::RenderStatus& status, bool forceClear ); private: