X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fshader-effects%2Fmask-effect.h;h=fecc1b943aaeb87f227395bc30ce7262968c5c31;hp=a950ecb29cf1b33db810f04d98bfab874572e021;hb=4eb683ee97fc0d8a7278b50252a467b843f869df;hpb=a6f34ab2df1f2418c037366030a4dcfbcda29847 diff --git a/dali-toolkit/public-api/shader-effects/mask-effect.h b/dali-toolkit/public-api/shader-effects/mask-effect.h index a950ecb..fecc1b9 100644 --- a/dali-toolkit/public-api/shader-effects/mask-effect.h +++ b/dali-toolkit/public-api/shader-effects/mask-effect.h @@ -29,44 +29,40 @@ namespace Toolkit { /** - * @brief MaskEffect is used to control which parts of an image are visible, using the alpha channel of a separate mask image. + * @brief Creates a new MaskEffect + * + * MaskEffect is used to control which parts of an image are visible, using the alpha channel of a separate mask image. * * Typically mask images should be the same size as the main image being viewed, but this isn't essential. * * Usage example: * * ImageActor actor = ImageActor::New( Image( EXAMPLE_IMAGE_PATH ) ); - * MaskEffect maskEffect = MaskEffect::New( Image::New( MASK_IMAGE_PATH ) ); + * ShaderEffect maskEffect = CreateMaskEffect( Image::New( MASK_IMAGE_PATH ) ); * actor.SetShaderEffect( maskEffect ); + * + * @param[in] maskImage The image to use as a mask + * @return A handle to a newly allocated ShaderEffect */ -class DALI_IMPORT_API MaskEffect : public ShaderEffect +inline ShaderEffect CreateMaskEffect(Image maskImage) { -public: - - /** - * @brief Create an empty MaskEffect handle. - */ - MaskEffect(); - - /** - * @brief Destructor - * - * This is non-virtual since derived Handle types must not contain data or virtual methods. - */ - ~MaskEffect(); + const char* ALPHA_MASK_FRAGMENT_SHADER_SOURCE = + "void main() \n" + "{ \n" + " highp vec4 mask = texture2D(sEffect, vTexCoord); \n" + " gl_FragColor = texture2D(sTexture, vTexCoord) * uColor * vec4(1,1,1,mask.a); \n" + "} \n"; - /** - * @brief Create a MaskEffect. - * - * @param[in] maskImage The image to use as a mask - * @return A handle to a newly allocated MaskEffect. - */ - static MaskEffect New( Image maskImage ); + ShaderEffect shaderEffect = ShaderEffect::New( + "", // Use default + ALPHA_MASK_FRAGMENT_SHADER_SOURCE, + GeometryType( GEOMETRY_TYPE_IMAGE ), + ShaderEffect::GeometryHints( ShaderEffect::HINT_BLENDING ) ); -private: // Not intended for application developers + shaderEffect.SetEffectImage( maskImage ); - DALI_INTERNAL MaskEffect( ShaderEffect handle ); -}; + return shaderEffect; +} } // namespace Toolkit