23template<
class CycleDataType>
28 _current_thread(current_thread)
30 _pointer = _cycler->read_unlocked(_current_thread);
36template<
class CycleDataType>
39 _cycler(copy._cycler),
40 _current_thread(copy._current_thread),
41 _pointer(copy._pointer)
48template<
class CycleDataType>
51 nassertv(_current_thread == copy._current_thread);
53 _cycler = copy._cycler;
54 _pointer = copy._pointer;
60template<
class CycleDataType>
68template<
class CycleDataType>
78template<
class CycleDataType>
80operator
const CycleDataType * ()
const {
88template<
class CycleDataType>
98template<
class CycleDataType>
101 return _current_thread;
110template<
class CycleDataType>
113 _pointer = cycler.
cheat();
119template<
class CycleDataType>
122 _pointer(copy._pointer)
129template<
class CycleDataType>
132 _pointer = copy._pointer;
138template<
class CycleDataType>
146template<
class CycleDataType>
156template<
class CycleDataType>
158operator
const CycleDataType * ()
const {
166template<
class CycleDataType>
176template<
class CycleDataType>
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
Thread * get_current_thread() const
Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this ob...
const CycleDataType * operator->() const
This provides an indirect member access to the actual CycleData data.
const CycleDataType * p() const
This allows the CycleDataReader to be passed to any function that expects a const CycleDataType point...
A thread; that is, a lightweight process.
get_current_thread
Returns a pointer to the currently-executing Thread object.
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.