15 #ifndef PIPELINECYCLERTRIVIALIMPL_H
16 #define PIPELINECYCLERTRIVIALIMPL_H
18 #include "pandabase.h"
23 #include "cycleData.h"
51 INLINE PipelineCyclerTrivialImpl(
const PipelineCyclerTrivialImpl ©);
52 INLINE
void operator = (
const PipelineCyclerTrivialImpl ©);
54 INLINE ~PipelineCyclerTrivialImpl();
56 INLINE
void acquire(
Thread *current_thread = NULL);
57 INLINE
void release();
61 INLINE
void increment_read(
const CycleData *pointer)
const;
62 INLINE
void release_read(
const CycleData *pointer)
const;
65 INLINE
CycleData *write_upstream(
bool force_to_0,
Thread *current_thread);
69 INLINE
void increment_write(
CycleData *pointer)
const;
70 INLINE
void release_write(
CycleData *pointer);
72 INLINE
int get_num_stages();
73 INLINE
const CycleData *read_stage_unlocked(
int pipeline_stage)
const;
74 INLINE
const CycleData *read_stage(
int pipeline_stage,
Thread *current_thread)
const;
75 INLINE
void release_read_stage(
int pipeline_stage,
const CycleData *pointer)
const;
76 INLINE
CycleData *write_stage(
int pipeline_stage,
Thread *current_thread);
77 INLINE
CycleData *write_stage_upstream(
int pipeline_stage,
bool force_to_0,
81 INLINE
CycleData *elevate_read_stage_upstream(
int pipeline_stage,
const CycleData *pointer,
82 bool force_to_0,
Thread *current_thread);
83 INLINE
void release_write_stage(
int pipeline_stage,
CycleData *pointer);
88 INLINE
int get_read_count()
const;
89 INLINE
int get_write_count()
const;
95 #ifndef SIMPLE_STRUCT_POINTERS
97 #endif // SIMPLE_STRUCT_POINTERS
100 #include "pipelineCyclerTrivialImpl.I"
102 #endif // !DO_PIPELINING
A single page of data maintained by a PipelineCycler.
This is the trivial, non-threaded implementation of PipelineCyclerBase.
This class manages a staged pipeline of data, for instance the render pipeline, so that each stage of...
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.