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.