forked from panda3d/panda3d
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpandaFramework.I
More file actions
199 lines (179 loc) · 4.63 KB
/
pandaFramework.I
File metadata and controls
199 lines (179 loc) · 4.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file pandaFramework.I
* @author drose
* @date 2002-04-02
*/
/**
* Returns the GraphicsEngine that is used to render all the windows in the
* framework. Normally there's no reason for user code to mess with this.
*/
INLINE GraphicsEngine *PandaFramework::
get_graphics_engine() {
if (_engine == nullptr) {
_engine = GraphicsEngine::get_global_ptr();
PT(GenericAsyncTask) task = new GenericAsyncTask("igloop", task_igloop, this);
task->set_sort(50);
_task_mgr.add(task);
}
return _engine;
}
/**
* Returns the root of the data graph. This is the graph of nodes that is
* traversed to control the inputs from user devices like the mouse and
* keyboard.
*/
INLINE const NodePath &PandaFramework::
get_data_root() const {
return _data_root;
}
/**
* Returns the EventHandler object that serves events in the framework. This
* is primarily used to dispatch on keypresses and such.
*/
INLINE EventHandler &PandaFramework::
get_event_handler() {
return _event_handler;
}
/**
* Returns the Task Manager object that manages tasks in the framework.
*/
INLINE AsyncTaskManager &PandaFramework::
get_task_mgr() {
return _task_mgr;
}
/**
* Specifies the title that is set for all subsequently created windows.
*/
INLINE void PandaFramework::
set_window_title(const std::string &title) {
_window_title = title;
}
/**
* Returns the number of windows that are currently open.
*/
INLINE int PandaFramework::
get_num_windows() const {
return _windows.size();
}
/**
* Returns the nth window currently open.
*/
INLINE WindowFramework *PandaFramework::
get_window(int n) const {
nassertr(n >= 0 && n < (int)_windows.size(), nullptr);
return _windows[n];
}
/**
* Closes the indicated WindowFramework window and removes it from the list.
*/
INLINE void PandaFramework::
close_window(WindowFramework *wf) {
int n = find_window(wf);
if (n >= 0) {
close_window(n);
}
}
/**
* Returns the current state of the wireframe flag.
*/
INLINE bool PandaFramework::
get_wireframe() const {
return _wireframe_enabled;
}
/**
* Returns the current state of the texture flag.
*/
INLINE bool PandaFramework::
get_texture() const {
return _texture_enabled;
}
/**
* Returns the current state of the two_sided flag.
*/
INLINE bool PandaFramework::
get_two_sided() const {
return _two_sided_enabled;
}
/**
* Returns the current state of the lighting flag.
*/
INLINE bool PandaFramework::
get_lighting() const {
return _lighting_enabled;
}
/**
* Returns the current state of the perpixel flag.
*/
INLINE bool PandaFramework::
get_perpixel() const {
return _perpixel_enabled;
}
/**
* Returns the current background type setting.
*/
INLINE WindowFramework::BackgroundType PandaFramework::
get_background_type() const {
return _background_type;
}
/**
* Returns true if any node is highlighted, false otherwise.
*/
INLINE bool PandaFramework::
has_highlight() const {
return !_highlight.is_empty();
}
/**
* Returns the currently highlighted node, if any, or an empty NodePath if no
* node is highlighted.
*/
INLINE const NodePath &PandaFramework::
get_highlight() const {
return _highlight;
}
/**
* Returns the RecorderController that has been associated with the
* PandaFramework, if any, or NULL if none has (the normal case).
*
* If a RecorderController is associated, it will presumably be used for
* recording user input to a session file, or for playing back the user input
* from a previously-recorded session.
*/
INLINE RecorderController *PandaFramework::
get_recorder() const {
return _recorder;
}
/**
* Assigns a RecorderController with the PandaFramework. This should be
* called before any windows are opened. The subsequently opened windows will
* register their user inputs with the recorder.
*
* If a RecorderController is associated, it will presumably be used for
* recording user input to a session file, or for playing back the user input
* from a previously-recorded session.
*/
INLINE void PandaFramework::
set_recorder(RecorderController *recorder) {
_recorder = recorder;
}
/**
* Sets the flag that indicates it is time for the application to exit. The
* application will actually exit at the end of the current frame.
*/
INLINE void PandaFramework::
set_exit_flag() {
_exit_flag = true;
}
/**
* Resets the exit flag after it has previously been set.
*/
INLINE void PandaFramework::
clear_exit_flag() {
_exit_flag = false;
}