26 template<
class CycleDataType>
29 int stage,
Thread *current_thread) :
31 _current_thread(current_thread),
34 _pointer = _cycler->read_stage_unlocked(_stage);
42 template<
class CycleDataType>
45 _cycler(copy._cycler),
46 _current_thread(copy._current_thread),
47 _pointer(copy._pointer),
57 template<
class CycleDataType>
60 nassertv(_current_thread == copy._current_thread);
62 _cycler = copy._cycler;
63 _pointer = copy._pointer;
72 template<
class CycleDataType>
83 template<
class CycleDataType>
95 template<
class CycleDataType>
97 operator
const CycleDataType * ()
const {
107 template<
class CycleDataType>
110 return _current_thread;
113 #else // !DO_PIPELINING 121 template<
class CycleDataType>
125 _pointer = cycler.
cheat();
133 template<
class CycleDataType>
136 _pointer(copy._pointer)
145 template<
class CycleDataType>
148 _pointer = copy._pointer;
156 template<
class CycleDataType>
167 template<
class CycleDataType>
179 template<
class CycleDataType>
181 operator
const CycleDataType * ()
const {
191 template<
class CycleDataType>
197 #endif // DO_PIPELINING const CycleDataType * operator->() const
This provides an indirect member access to the actual CycleData data.
This class maintains different copies of a page of data between stages of the graphics pipeline (or a...
CycleDataType * cheat() const
Returns a pointer without counting it.
static Thread * get_current_thread()
Returns a pointer to the currently-executing Thread object.
This class is similar to CycleDataReader, except it allows reading from a particular stage of the pip...
A thread; that is, a lightweight process.
Thread * get_current_thread() const
Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this ob...