X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fnpatch%2Fnpatch-renderer.h;h=b6c22e83bcdaf6b02ab01f9619e498e9e1232ff1;hb=f3da11c2818c6d17706fbb2417f21b602b3190f5;hp=6bdb696d9690800cce987c9bdef3a254c3d2a8bf;hpb=959d2c624f92023a5167788ccf6f4b4af3f3d6d8;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.h b/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.h index 6bdb696..b6c22e8 100644 --- a/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.h +++ b/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.h @@ -43,10 +43,10 @@ namespace Internal * * The following properties are optional * - * | %Property Name | Type | - * |---------------------------|------------------| - * | image-url | STRING | - * | border-only | BOOLEAN + * | %Property Name | Type | + * |--------------------------|------------------| + * | imageUrl | STRING | + * | borderOnly | BOOLEAN * */ class NPatchRenderer: public ControlRenderer @@ -55,8 +55,10 @@ public: /** * @brief Constructor. + * + * @param[in] factoryCache A pointer pointing to the RendererFactoryCache object */ - NPatchRenderer(); + NPatchRenderer( RendererFactoryCache& factoryCache ); /** * @brief A reference counted object may only be deleted by calling Unreference(). @@ -66,9 +68,9 @@ public: public: // from ControlRenderer /** - * @copydoc ControlRenderer::Initialize + * @copydoc ControlRenderer::GetNaturalSize */ - virtual void Initialize( RendererFactoryCache& factoryCache, const Property::Map& propertyMap ); + virtual void GetNaturalSize( Vector2& naturalSize ) const; /** * @copydoc ControlRenderer::SetClipRect @@ -83,9 +85,15 @@ public: // from ControlRenderer /** * @copydoc ControlRenderer::CreatePropertyMap */ - virtual void CreatePropertyMap( Property::Map& map ) const; + virtual void DoCreatePropertyMap( Property::Map& map ) const; protected: + + /** + * @copydoc ControlRenderer::DoInitialize + */ + virtual void DoInitialize( Actor& actor, const Property::Map& propertyMap ); + /** * @copydoc ControlRenderer::DoSetOnStage */ @@ -99,13 +107,6 @@ protected: public: /** - * Request the geometry and shader from the cache, if not available, create and save to the cache for sharing. - * - * @param[in] factoryCache A pointer pointing to the RendererFactoryCache object - */ - void Initialize( RendererFactoryCache& factoryCache ); - - /** * @brief Sets the 9 patch image of this renderer to the resource at imageUrl * The renderer will load the image synchronously when the associated actor is put on stage, and destroy the image when it is off stage * @@ -125,9 +126,28 @@ public: private: /** + * @brief Initialize the renderer with the geometry and shader from the cache, if not available, create and save to the cache for sharing. + */ + void InitializeRenderer(); + + /** + * @brief Creates a geometry for this renderer's grid size + * + * @return Returns the created geometry for this renderer's grid size + */ + Geometry CreateGeometry(); + + /** + * @brief Creates a shader for this renderer's grid size + * + * @return Returns the created shader for this renderer's grid size + */ + Shader CreateShader(); + + /** * @brief Creates a geometry for the grid size to be used by this renderers' shaders * - * @param gridSize The grid size of the solid geometry to create + * @param[in] gridSize The grid size of the solid geometry to create * @return Returns the created geometry for the grid size */ Geometry CreateGeometry( Uint16Pair gridSize ); @@ -150,7 +170,7 @@ private: * |/ |/ |/ |/ |/ | * --------------------- * - * @param gridSize The grid size of the solid geometry to create + * @param[in] gridSize The grid size of the solid geometry to create * @return Returns the created geometry for the grid size */ Geometry CreateGeometryBorder( Uint16Pair gridSize ); @@ -158,28 +178,34 @@ private: /** * @brief Creates Image from the image url and parses the image for the stretch borders. Will create a error image if the n patch image is invalid * - * @param nPatchImage The NinePatchImage to base our cropped images and stretch borders from + * @param[in] nPatchImage The NinePatchImage to base our cropped images and stretch borders from */ - void InitialiseFromImage( NinePatchImage nPatchImage ); + void InitializeFromImage( NinePatchImage nPatchImage ); /** - * @brief Creates a black Image to indicate that there was an error in either the image url or the parsing of the image + * @brief Creates an error Image to indicate that there was an error in either the image url or the parsing of the image * */ - void CreateErrorImage(); + void InitializeFromBrokenImage(); /** * @brief Applies this renderer's image to the sampler to the material used for this renderer */ void ApplyImageToSampler(); + /** + * @brief Changes the current renderer if the n-patch meta data has changed + * + * @param[in] oldBorderOnly The old flag indicating if the image should omit the centre of the n-patch and only render the border + * @param[in] oldGridX The old horizontal grid size of the solid geometry + * @param[in] oldGridY The old vertical grid size of the solid geometry + */ + void ChangeRenderer( bool oldBorderOnly, size_t oldGridX, size_t oldGridY ); + private: NinePatchImage mImage; ///< The image to render if the renderer was set from an NinePatchImage, empty otherwise Image mCroppedImage; - Geometry mNinePatchGeometry; - Geometry mNinePatchBorderGeometry; - Shader mNinePatchShader; std::string mImageUrl; ///< The url to the image resource to render if the renderer was set from an image resource url, empty otherwise NinePatchImage::StretchRanges mStretchPixelsX;