Add support for Animation::EndAction::BakeFinal to builder
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / shader-effects / alpha-discard-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/alpha-discard-effect.h>
19
20 namespace Dali
21 {
22
23 namespace Toolkit
24 {
25
26 AlphaDiscardEffect::AlphaDiscardEffect()
27 {
28 }
29
30 AlphaDiscardEffect::~AlphaDiscardEffect()
31 {
32 }
33
34 AlphaDiscardEffect AlphaDiscardEffect::New()
35 {
36   const char* ALPHA_DISCARD_FRAGMENT_SHADER_SOURCE =
37       "void main()                                                    \n"
38       "{                                                              \n"
39       "  vec4 color = texture2D( sTexture, vTexCoord );               \n"
40       "  if(color.a <= 0.0001)                                        \n"
41       "  {                                                            \n"
42       "    discard;                                                   \n"
43       "  }                                                            \n"
44       "  gl_FragColor = color * uColor;                               \n"
45       "}                                                              \n";
46
47   ShaderEffect shader = ShaderEffect::New( "", // Use default
48                                            ALPHA_DISCARD_FRAGMENT_SHADER_SOURCE );
49   return AlphaDiscardEffect( shader );
50 }
51
52 //Call the Parent copy constructor to add reference to the implementation for this object
53 AlphaDiscardEffect::AlphaDiscardEffect( ShaderEffect handle )
54 : ShaderEffect( handle )
55 {
56 }
57
58 } // namespace Toolkit
59
60 } // namespace Dali