X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fimage%2Fimage-visual.h;h=334406fb4ab0c759af284dbbd645c6a7500a091c;hb=e08b0aa7f70b223de1e389a2bb82fe572eb7ef8d;hp=91134377e562b0fc92dc583e663eca7e40948550;hpb=05316fdb6779dced99b135c06326ddaeea1fc2ee;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/image/image-visual.h b/dali-toolkit/internal/visuals/image/image-visual.h index 9113437..334406f 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.h +++ b/dali-toolkit/internal/visuals/image/image-visual.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_IMAGE_VISUAL_H /* - * Copyright (c) 2016 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. @@ -46,13 +46,14 @@ class ImageVisual; typedef IntrusivePtr< ImageVisual > ImageVisualPtr; /** - * The visual which renders an image to the control's quad + * The visual which renders an image to a quad geometry * * The following properties are optional * * | %Property Name | Type | * |--------------------|-------------------| * | url | STRING | + * | alphaMaskUrl | STRING | * | fittingMode | INTEGER OR STRING | * | samplingMode | INTEGER OR STRING | * | desiredWidth | INTEGER | @@ -238,11 +239,16 @@ public: * To avoid rendering garbage pixels, renderer should be added to actor after the resources are ready. * This callback is the place to add the renderer as it would be called once the loading is finished. */ - virtual void UploadComplete( bool success, TextureSet textureSet, bool usingAtlas, const Vector4& atlasRectangle ); + virtual void UploadComplete( bool success, int32_t textureId, TextureSet textureSet, bool usingAtlas, const Vector4& atlasRectangle ); private: /** + * Allocate the mask data when a masking property is defined in the property map + */ + void AllocateMaskData(); + + /** * @brief Applies the image to the texture set used for this renderer * * @param[in] image The Image to apply to the texture set used for this renderer @@ -313,12 +319,25 @@ private: void DoSetProperty( Property::Index index, const Property::Value& value ); private: + struct MaskingData + { + MaskingData( TextureManager& textureManager ); + ~MaskingData(); + void SetImage( const std::string& url ); + + TextureManager& mTextureManager; + VisualUrl mAlphaMaskUrl; + TextureManager::TextureId mAlphaMaskId; + float mContentScaleFactor; + bool mCropToMask; + }; Image mImage; PixelData mPixels; Vector4 mPixelArea; WeakHandle mPlacementActor; VisualUrl mImageUrl; + MaskingData* mMaskingData; Dali::ImageDimensions mDesiredSize; TextureManager::TextureId mTextureId; @@ -331,6 +350,8 @@ private: bool mTextureLoading:1; ///< True if the texture is being loaded asynchronously, or false when it has loaded. }; + + } // namespace Internal } // namespace Toolkit