MyGUI
3.2.2
MyGUIEngine
include
MyGUI_LayerNode.h
Go to the documentation of this file.
1
/*
2
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
3
* Distributed under the MIT License
4
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5
*/
6
7
#ifndef MYGUI_LAYER_NODE_H_
8
#define MYGUI_LAYER_NODE_H_
9
10
#include "
MyGUI_Prerequest.h
"
11
#include "
MyGUI_ILayer.h
"
12
#include "
MyGUI_ILayerNode.h
"
13
#include "
MyGUI_RenderItem.h
"
14
15
namespace
MyGUI
16
{
17
18
class
LayerItem;
19
typedef
std::vector<RenderItem*>
VectorRenderItem
;
20
typedef
std::vector<ILayerItem*>
VectorLayerItem
;
21
22
class
MYGUI_EXPORT
LayerNode
:
23
public
ILayerNode
24
{
25
MYGUI_RTTI_DERIVED
(
LayerNode
)
26
27
public
:
28
explicit
LayerNode
(
ILayer
* _layer,
ILayerNode
* _parent =
nullptr
);
29
virtual
~
LayerNode
();
30
31
// леер, которому мы принадлежим
32
virtual
ILayer
* getLayer()
const
;
33
34
// возвращает отца или nullptr
35
virtual
ILayerNode
* getParent()
const
;
36
37
// создаем дочерний нод
38
virtual
ILayerNode
* createChildItemNode();
39
// удаляем дочерний нод
40
virtual
void
destroyChildItemNode(
ILayerNode
* _node);
41
42
// поднимаем дочерний нод
43
virtual
void
upChildItemNode(
ILayerNode
* _node);
44
45
// список детей
46
virtual
EnumeratorILayerNode
getEnumerator()
const
;
47
48
virtual
size_t
getLayerNodeCount()
const
;
49
50
virtual
ILayerNode
* getLayerNodeAt(
size_t
_index)
const
;
51
52
// добавляем айтем к ноду
53
virtual
void
attachLayerItem(
ILayerItem
* _item);
54
// удаляем айтем из нода
55
virtual
void
detachLayerItem(
ILayerItem
* _item);
56
57
// добавляет саб айтем и возвращает рендер айтем
58
virtual
RenderItem
* addToRenderItem(
ITexture
* _texture,
bool
_firstQueue,
bool
_manualRender);
59
// необходимо обновление нода
60
virtual
void
outOfDate(
RenderItem
* _item);
61
62
// возвращает виджет по позиции
63
virtual
ILayerItem
* getLayerItemByPoint(
int
_left,
int
_top)
const
;
64
65
// рисует леер
66
virtual
void
renderToTarget(
IRenderTarget
* _target,
bool
_update);
67
68
virtual
void
resizeView(
const
IntSize
& _viewSize);
69
70
virtual
float
getNodeDepth();
71
72
bool
isOutOfDate()
const
;
73
74
protected
:
75
void
updateCompression();
76
RenderItem
* addToRenderItemFirstQueue(
ITexture
* _texture,
bool
_manualRender);
77
RenderItem
* addToRenderItemSecondQueue(
ITexture
* _texture,
bool
_manualRender);
78
protected
:
79
// two render queues, for subskins and text
80
// first queue keep render order based on order of creation
81
// second queue ignore creation order and always merge render items with same texture
82
VectorRenderItem
mFirstRenderItems
;
83
VectorRenderItem
mSecondRenderItems
;
84
85
// список всех рутовых виджетов
86
// у перекрывающегося слоя здесь только один
87
VectorLayerItem
mLayerItems
;
88
89
// список такиж как мы, для построения дерева
90
VectorILayerNode
mChildItems
;
91
92
ILayerNode
*
mParent
;
93
ILayer
*
mLayer
;
94
bool
mOutOfDate
;
95
float
mDepth
;
96
};
97
98
}
// namespace MyGUI
99
100
#endif // MYGUI_LAYER_NODE_H_
MyGUI::LayerNode::mChildItems
VectorILayerNode mChildItems
Definition:
MyGUI_LayerNode.h:90
MyGUI::LayerNode::mParent
ILayerNode * mParent
Definition:
MyGUI_LayerNode.h:92
MyGUI::LayerNode::mSecondRenderItems
VectorRenderItem mSecondRenderItems
Definition:
MyGUI_LayerNode.h:83
MyGUI::ILayerNode
Definition:
MyGUI_ILayerNode.h:29
MyGUI::VectorILayerNode
std::vector< ILayerNode * > VectorILayerNode
Definition:
MyGUI_ILayerNode.h:22
MyGUI::VectorLayerItem
std::vector< ILayerItem * > VectorLayerItem
Definition:
MyGUI_LayerNode.h:20
MyGUI::LayerNode::mFirstRenderItems
VectorRenderItem mFirstRenderItems
Definition:
MyGUI_LayerNode.h:82
MyGUI::RenderItem
Definition:
MyGUI_RenderItem.h:23
MyGUI::ILayer
Definition:
MyGUI_ILayer.h:23
MyGUI::LayerNode
Definition:
MyGUI_LayerNode.h:24
MyGUI::VectorRenderItem
std::vector< RenderItem * > VectorRenderItem
Definition:
MyGUI_LayerNode.h:18
MyGUI::LayerNode::mDepth
float mDepth
Definition:
MyGUI_LayerNode.h:95
MyGUI::LayerNode::mLayer
ILayer * mLayer
Definition:
MyGUI_LayerNode.h:93
MyGUI::LayerNode::mLayerItems
VectorLayerItem mLayerItems
Definition:
MyGUI_LayerNode.h:87
MyGUI_Prerequest.h
MyGUI::LayerNode::mOutOfDate
bool mOutOfDate
Definition:
MyGUI_LayerNode.h:94
MYGUI_RTTI_DERIVED
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition:
MyGUI_RTTI.h:61
MyGUI_ILayerNode.h
MyGUI::Enumerator
Definition:
MyGUI_Enumerator.h:49
MyGUI::types::TSize< int >
MyGUI_RenderItem.h
MyGUI::ITexture
Definition:
MyGUI_ITexture.h:27
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition:
MyGUI_Platform.h:103
MyGUI_ILayer.h
MyGUI
Definition:
MyGUI_ActionController.h:15
MyGUI::ILayerItem
Definition:
MyGUI_ILayerItem.h:19
MyGUI::IRenderTarget
Definition:
MyGUI_IRenderTarget.h:21
Generated by
1.8.20