/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// CLASS HEADER
#include <dali/internal/update/nodes/scene-graph-layer.h>
+#include <dali/internal/event/actors/layer-impl.h>
// INTERNAL INCLUDES
#include <dali/public-api/common/dali-common.h>
-
-using namespace std;
-
namespace Dali
{
SceneGraph::Layer* Layer::New()
{
+ // Layers are currently heap allocated, unlike Nodes which are in a memory pool
+ // However Node::Delete( layer ) will correctly delete a layer / node depending on type
return new Layer();
}
Layer::Layer()
-: mSortFunction( Dali::Layer::ZValue ),
+: Node(),
+ mSortFunction( Internal::Layer::ZValue ),
mClippingBox( 0,0,0,0 ),
- mLastCamera(0),
+ mLastCamera( NULL ),
+ mBehavior( Dali::Layer::LAYER_UI ),
mIsClipping( false ),
- mDepthTestDisabled( false ),
+ mDepthTestDisabled( true ),
mIsDefaultSortFunction( true )
{
+ // set a flag the node to say this is a layer
+ mIsLayer = true;
+
// layer starts off dirty
mAllChildTransformsClean[ 0 ] = false;
mAllChildTransformsClean[ 1 ] = false;
{
if( mSortFunction != function )
{
+ SetPropertyDirty( true );
// is a custom sort function used
- if( function != Dali::Layer::ZValue )
+ if( function != Internal::Layer::ZValue )
{
mIsDefaultSortFunction = false;
}
void Layer::SetClipping(bool enabled)
{
mIsClipping = enabled;
+ SetPropertyDirty( true );
}
void Layer::SetClippingBox(const Dali::ClippingBox& box)
{
mClippingBox.Set(box.x, box.y, box.width, box.height);
+ SetPropertyDirty( true );
+}
+
+void Layer::SetBehavior( Dali::Layer::Behavior behavior )
+{
+ mBehavior = behavior;
+ SetPropertyDirty( true );
}
void Layer::SetDepthTestDisabled( bool disable )
{
mDepthTestDisabled = disable;
+ SetPropertyDirty( true );
}
bool Layer::IsDepthTestDisabled() const
return mDepthTestDisabled;
}
+void Layer::ClearRenderables()
+{
+ colorRenderables.Clear();
+ overlayRenderables.Clear();
+}
+
} // namespace SceneGraph
} // namespace Internal