Fix for slider
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / shader-effects / mask-effect.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 // CLASS HEADER
18 #include <dali-toolkit/public-api/shader-effects/mask-effect.h>
19
20 namespace Dali
21 {
22
23 namespace Toolkit
24 {
25
26 MaskEffect::MaskEffect()
27 {
28 }
29
30 MaskEffect::~MaskEffect()
31 {
32 }
33
34 MaskEffect MaskEffect::New( Image maskImage )
35 {
36   const char* ALPHA_MASK_FRAGMENT_SHADER_SOURCE =
37   "void main()                                                                    \n"
38   "{                                                                              \n"
39   "  highp vec4 mask = texture2D(sEffect, vTexCoord);                             \n"
40   "  gl_FragColor = texture2D(sTexture, vTexCoord) * uColor * vec4(1,1,1,mask.a); \n"
41   "}                                                                              \n";
42
43   ShaderEffect shader = ShaderEffect::New( "", // Use default
44                                            ALPHA_MASK_FRAGMENT_SHADER_SOURCE,
45                                            GeometryType( GEOMETRY_TYPE_IMAGE ),
46                                            ShaderEffect::GeometryHints( ShaderEffect::HINT_BLENDING ) );
47
48   shader.SetEffectImage( maskImage );
49
50   return MaskEffect( shader );
51 }
52
53 //Call the Parent copy constructor to add reference to the implementation for this object
54 MaskEffect::MaskEffect( ShaderEffect handle )
55 : ShaderEffect( handle )
56 {
57 }
58
59 } // namespace Toolkit
60
61 } // namespace Dali