27struct PipelineCyclerTrueImpl;
38class EXPCL_PANDA_PIPELINE Pipeline :
public Namable {
40 Pipeline(
const std::string &name,
int num_stages);
51#ifdef THREADED_PIPELINE
52 void add_cycler(PipelineCyclerTrueImpl *cycler);
53 void add_cycler(PipelineCyclerTrueImpl *cycler,
bool dirty);
54 void add_dirty_cycler(PipelineCyclerTrueImpl *cycler);
55 void remove_cycler(PipelineCyclerTrueImpl *cycler);
57 INLINE
int get_num_cyclers()
const;
58 INLINE
int get_num_dirty_cyclers()
const;
61 typedef void CallbackFunc(
TypeHandle type,
int count,
void *data);
62 void iterate_all_cycler_types(CallbackFunc *func,
void *data)
const;
63 void iterate_dirty_cycler_types(CallbackFunc *func,
void *data)
const;
71 static void make_render_pipeline();
72 static Pipeline *_render_pipeline;
74#ifdef THREADED_PIPELINE
79 int _num_dirty_cyclers;
82 typedef pmap<TypeHandle, int> TypeCount;
83 TypeCount _all_cycler_types, _dirty_cycler_types;
85 static void inc_cycler_type(TypeCount &count,
TypeHandle type,
int addend);
94 unsigned int _next_cycle_seq;
A standard mutex, or mutual exclusion lock.
This just stores the pointers to implement a doubly-linked list of PipelineCyclers for a particular P...
void cycle()
Flows all the pipeline data down to the next stage.
int get_num_stages() const
Returns the number of stages required for the pipeline.
static Pipeline * get_render_pipeline()
Returns a pointer to the global render pipeline.
void set_num_stages(int num_stages)
Specifies the number of stages required for the pipeline.
void set_min_stages(int min_stages)
Ensures that at least the indicated number of stages are in the pipeline.
TypeHandle is the identifier used to differentiate C++ class types.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.