X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fshader-effects%2Fmask-effect.h;h=8da0c991fcf795c04ea73748fdd6d8bb99dec173;hb=af4073fd7a4f946e26110ecd608ef8e748c078aa;hp=a950ecb29cf1b33db810f04d98bfab874572e021;hpb=f58b8383147de70affa1e3949cf1c6757d705d3c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/devel-api/shader-effects/mask-effect.h b/dali-toolkit/devel-api/shader-effects/mask-effect.h index a950ecb..8da0c99 100644 --- a/dali-toolkit/devel-api/shader-effects/mask-effect.h +++ b/dali-toolkit/devel-api/shader-effects/mask-effect.h @@ -29,44 +29,39 @@ 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, + ShaderEffect::GeometryHints( ShaderEffect::HINT_BLENDING ) ); -private: // Not intended for application developers + shaderEffect.SetEffectImage( maskImage ); - DALI_INTERNAL MaskEffect( ShaderEffect handle ); -}; + return shaderEffect; +} } // namespace Toolkit