18 #include "pandabase.h" 19 #include "pipelineCyclerLinks.h" 23 #include "reMutexHolder.h" 24 #include "selectThreadImpl.h" 26 struct PipelineCyclerTrueImpl;
43 Pipeline(
const string &name,
int num_stages);
46 INLINE
static Pipeline *get_render_pipeline();
50 void set_num_stages(
int num_stages);
51 INLINE
void set_min_stages(
int min_stages);
52 INLINE
int get_num_stages()
const;
54 #ifdef THREADED_PIPELINE 55 void add_cycler(PipelineCyclerTrueImpl *cycler);
56 void add_dirty_cycler(PipelineCyclerTrueImpl *cycler);
57 void remove_cycler(PipelineCyclerTrueImpl *cycler);
59 INLINE
int get_num_cyclers()
const;
60 INLINE
int get_num_dirty_cyclers()
const;
63 typedef void CallbackFunc(
TypeHandle type,
int count,
void *data);
64 void iterate_all_cycler_types(CallbackFunc *func,
void *data)
const;
65 void iterate_dirty_cycler_types(CallbackFunc *func,
void *data)
const;
66 #endif // DEBUG_THREADS 68 #endif // THREADED_PIPELINE 73 static void make_render_pipeline();
76 #ifdef THREADED_PIPELINE 81 int _num_dirty_cyclers;
85 TypeCount _all_cycler_types, _dirty_cycler_types;
87 static void inc_cycler_type(TypeCount &count,
TypeHandle type,
int addend);
88 #endif // DEBUG_THREADS 94 #endif // THREADED_PIPELINE This is our own Panda specialization on the default STL map.
This just stores the pointers to implement a doubly-linked list of PipelineCyclers for a particular P...
A base class for all things which can have a name.
This class manages a staged pipeline of data, for instance the render pipeline, so that each stage of...
TypeHandle is the identifier used to differentiate C++ class types.