2 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include <dali/internal/update/nodes/scene-graph-layer.h>
20 #include <dali/internal/event/actors/layer-impl.h>
23 #include <dali/public-api/common/dali-common.h>
34 SceneGraph::Layer* Layer::New()
36 // Layers are currently heap allocated, unlike Nodes which are in a memory pool
37 // However Node::Delete( layer ) will correctly delete a layer / node depending on type
43 mSortFunction( Internal::Layer::ZValue ),
44 mClippingBox( 0,0,0,0 ),
46 mBehavior( Dali::Layer::LAYER_2D ),
48 mDepthTestDisabled( true ),
49 mIsDefaultSortFunction( true )
51 // set a flag the node to say this is a layer
54 // layer starts off dirty
55 mAllChildTransformsClean[ 0 ] = false;
56 mAllChildTransformsClean[ 1 ] = false;
63 void Layer::SetSortFunction( Dali::Layer::SortFunctionType function )
65 if( mSortFunction != function )
67 // is a custom sort function used
68 if( function != Internal::Layer::ZValue )
70 mIsDefaultSortFunction = false;
74 mIsDefaultSortFunction = true;
77 // changing the sort function makes the layer dirty
78 mAllChildTransformsClean[ 0 ] = false;
79 mAllChildTransformsClean[ 1 ] = false;
80 mSortFunction = function;
84 void Layer::SetClipping(bool enabled)
86 mIsClipping = enabled;
89 void Layer::SetClippingBox(const Dali::ClippingBox& box)
91 mClippingBox.Set(box.x, box.y, box.width, box.height);
94 void Layer::SetBehavior( Dali::Layer::Behavior behavior )
99 void Layer::SetDepthTestDisabled( bool disable )
101 mDepthTestDisabled = disable;
104 bool Layer::IsDepthTestDisabled() const
106 return mDepthTestDisabled;
109 void Layer::ClearRenderables()
111 colorRenderables.Clear();
112 overlayRenderables.Clear();
115 } // namespace SceneGraph
117 } // namespace Internal