2 * Copyright (c) 2016 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
42 : mSortFunction( Internal::Layer::ZValue ),
43 mClippingBox( 0,0,0,0 ),
45 mBehavior( Dali::Layer::LAYER_2D ),
47 mDepthTestDisabled( true ),
48 mIsDefaultSortFunction( true )
50 // set a flag the node to say this is a layer
53 // layer starts off dirty
54 mAllChildTransformsClean[ 0 ] = false;
55 mAllChildTransformsClean[ 1 ] = false;
62 void Layer::SetSortFunction( Dali::Layer::SortFunctionType function )
64 if( mSortFunction != function )
66 // is a custom sort function used
67 if( function != Internal::Layer::ZValue )
69 mIsDefaultSortFunction = false;
73 mIsDefaultSortFunction = true;
76 // changing the sort function makes the layer dirty
77 mAllChildTransformsClean[ 0 ] = false;
78 mAllChildTransformsClean[ 1 ] = false;
79 mSortFunction = function;
83 void Layer::SetClipping(bool enabled)
85 mIsClipping = enabled;
88 void Layer::SetClippingBox(const Dali::ClippingBox& box)
90 mClippingBox.Set(box.x, box.y, box.width, box.height);
93 void Layer::SetBehavior( Dali::Layer::Behavior behavior )
98 void Layer::SetDepthTestDisabled( bool disable )
100 mDepthTestDisabled = disable;
103 bool Layer::IsDepthTestDisabled() const
105 return mDepthTestDisabled;
108 void Layer::ClearRenderables()
110 colorRenderables.Clear();
111 overlayRenderables.Clear();
114 } // namespace SceneGraph
117 void OwnerPointer<Dali::Internal::SceneGraph::Layer>::Reset()
119 if( mObject != NULL )
121 Dali::Internal::SceneGraph::Node::Delete( mObject );
125 } // namespace Internal