Panda3D
Loading...
Searching...
No Matches
pStatView.h
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file pStatView.h
10 * @author drose
11 * @date 2000-07-10
12 */
13
14#ifndef PSTATVIEW_H
15#define PSTATVIEW_H
16
17#include "pandatoolbase.h"
18
19#include "pStatClientData.h"
20#include "pStatThreadData.h"
21#include "pStatViewLevel.h"
22#include "pmap.h"
23#include "pointerTo.h"
24
25/**
26 * A View boils down the frame data to a linear list of times spent in a
27 * number of different Collectors, within a particular thread. This
28 * automatically accounts for overlapping start/stop times and nested
29 * Collectors in a sensible way.
30 */
31class PStatView {
32public:
33 PStatView();
34 ~PStatView();
35
36 void constrain(int collector, bool show_level);
37 void unconstrain();
38
39 void set_thread_data(const PStatThreadData *thread_data);
40 INLINE const PStatThreadData *get_thread_data();
41 INLINE const PStatClientData *get_client_data();
42
43 void set_to_frame(const PStatFrameData &frame_data);
44 INLINE void set_to_frame(int frame_number);
45 INLINE void set_to_time(double time);
46
47 bool all_collectors_known() const;
48 double get_net_value() const;
49
51
52 bool has_level(int collector) const;
53 PStatViewLevel *get_level(int collector);
54
55 INLINE bool get_show_level() const;
56 INLINE int get_level_index() const;
57
58private:
59 void update_time_data(const PStatFrameData &frame_data);
60 void update_level_data(const PStatFrameData &frame_data);
61
62 void clear_levels();
63 bool reset_level(PStatViewLevel *level);
64
65 int _constraint;
66 bool _show_level;
67 bool _all_collectors_known;
68
70 Levels _levels;
71
72 int _level_index;
73
74 CPT(PStatClientData) _client_data;
75 CPT(PStatThreadData) _thread_data;
76};
77
78#include "pStatView.I"
79
80#endif
The data associated with a particular client, but not with any one particular frame or thread: the li...
Contains the raw timing and level data for a single frame.
A collection of FrameData structures for recently-received frames within a particular thread.
This is a single level value, or band of color, within a View.
A View boils down the frame data to a linear list of times spent in a number of different Collectors,...
Definition pStatView.h:31
int get_level_index() const
Returns an index number that can be used to determine when the set of known levels has changed.
Definition pStatView.I:68
double get_net_value() const
Returns the total value accounted for by the frame (or by whatever Collector we are constrained to).
const PStatViewLevel * get_top_level()
Returns a pointer to the level that corresponds to the Collector we've constrained to.
void set_to_frame(const PStatFrameData &frame_data)
Supplies the View with the data for the current frame.
void unconstrain()
Restores the view to the full frame.
void set_to_time(double time)
Sets to the frame that occurred at the indicated time (or the nearest available frame),...
Definition pStatView.I:49
void constrain(int collector, bool show_level)
Changes the focus of the View.
bool get_show_level() const
Returns true if we are showing level data, false if time data.
Definition pStatView.I:57
const PStatThreadData * get_thread_data()
Returns the current PStatThreadData associated with the view.
Definition pStatView.I:19
bool all_collectors_known() const
After a call to set_to_frame(), this returns true if all collectors in the FrameData are known by the...
bool has_level(int collector) const
Returns true if there is a level defined for the particular collector, false otherwise.
PStatViewLevel * get_level(int collector)
Returns a pointer to the level that corresponds to the indicated Collector.
const PStatClientData * get_client_data()
Returns the current PStatClientData associated with the view.
Definition pStatView.I:28
This is our own Panda specialization on the default STL map.
Definition pmap.h:49
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.