X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fnodes%2Fscene-graph-layer.h;h=26b217e8de98d1cc7288d4b6c127c3832377f9ba;hb=4d75040ab200bd306ec5a48f2a617480062eef4c;hp=4908b61508dcdd17efc892ffa03ed9c754775af6;hpb=468b1a9ac8e6436b7210d8e1023a37ea28dca66e;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/nodes/scene-graph-layer.h b/dali/internal/update/nodes/scene-graph-layer.h old mode 100644 new mode 100755 index 4908b61..26b217e --- a/dali/internal/update/nodes/scene-graph-layer.h +++ b/dali/internal/update/nodes/scene-graph-layer.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_SCENE_GRAPH_LAYER_H__ -#define __DALI_INTERNAL_SCENE_GRAPH_LAYER_H__ +#ifndef DALI_INTERNAL_SCENE_GRAPH_LAYER_H +#define DALI_INTERNAL_SCENE_GRAPH_LAYER_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -37,6 +37,7 @@ template <> struct ParameterType< Dali::Layer::Behavior > namespace SceneGraph { +class Camera; /** * Pair of node-renderer @@ -44,13 +45,13 @@ namespace SceneGraph struct Renderable { Renderable() - :mNode(0), - mRenderer(0) + : mNode( 0 ), + mRenderer( 0 ) {} Renderable( Node* node, Renderer* renderer ) - :mNode(node), - mRenderer(renderer) + : mNode( node ), + mRenderer( renderer ) {} Node* mNode; @@ -61,9 +62,9 @@ typedef Dali::Vector< Renderable > RenderableContainer; /** * Layers have a "depth" relative to all other layers in the scene-graph. - * Non-layer child nodes (and their attachments) are considered part of the layer. + * Non-layer child nodes are considered part of the layer. * - * Layers are rendered separately, and the depth buffer is cleared before each layer is rendered. + * Layers are rendered separately, and by default the depth buffer is cleared before each layer is rendered. * Objects in higher layers, are rendered after (in front of) objects in lower layers. */ class Layer : public Node @@ -81,11 +82,6 @@ public: static SceneGraph::Layer* New(); /** - * Virtual destructor - */ - virtual ~Layer(); - - /** * From Node, to convert a node to a layer. * @return The layer. */ @@ -184,7 +180,7 @@ public: * to use is the same than the one used before ( Otherwise View transform will be different ) * */ - bool CanReuseRenderers(Node* camera) + bool CanReuseRenderers( Camera* camera ) { bool bReturn( mAllChildTransformsClean[ 0 ] && mAllChildTransformsClean[ 1 ] && camera == mLastCamera ); mLastCamera = camera; @@ -216,27 +212,31 @@ private: // Undefined Layer(const Layer&); + /** + * Virtual destructor + */ + virtual ~Layer(); + // Undefined Layer& operator=(const Layer& rhs); public: // For update-algorithms - RenderableContainer stencilRenderables; RenderableContainer colorRenderables; RenderableContainer overlayRenderables; private: - SortFunctionType mSortFunction; ///< Used to sort semi-transparent geometry + SortFunctionType mSortFunction; ///< Used to sort semi-transparent geometry ClippingBox mClippingBox; ///< The clipping box, in window coordinates - Node* mLastCamera; ///< Pointer to the last camera that has rendered the layer + Camera* mLastCamera; ///< Pointer to the last camera that has rendered the layer Dali::Layer::Behavior mBehavior; ///< The behavior of the layer bool mAllChildTransformsClean[ 2 ]; ///< True if all child nodes transforms are clean, - /// double buffered as we need two clean frames before we can reuse N-1 for N+1 - /// this allows us to cache render items when layer is "static" + /// double buffered as we need two clean frames before we can reuse N-1 for N+1 + /// this allows us to cache render items when layer is "static" bool mIsClipping:1; ///< True when clipping is enabled bool mDepthTestDisabled:1; ///< Whether depth test is disabled. bool mIsDefaultSortFunction:1; ///< whether the default depth sort function is used @@ -332,8 +332,18 @@ inline void SetDepthTestDisabledMessage( EventThreadServices& eventThreadService } // namespace SceneGraph +// Template specialisation for OwnerPointer, because delete is protected +template <> +inline void OwnerPointer::Reset() +{ + if (mObject != NULL) + { + Dali::Internal::SceneGraph::Node::Delete(mObject); + mObject = NULL; + } +} } // namespace Internal } // namespace Dali -#endif // __DALI_INTERNAL_SCENE_GRAPH_LAYER_H__ +#endif // DALI_INTERNAL_SCENE_GRAPH_LAYER_H