Panda3D
Loading...
Searching...
No Matches
pipelineCyclerLinks.h
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file pipelineCyclerLinks.h
10 * @author drose
11 * @date 2006-02-16
12 */
13
14#ifndef PIPELINECYCLERLINKS_H
15#define PIPELINECYCLERLINKS_H
16
17#include "pandabase.h"
18#include "selectThreadImpl.h" // for THREADED_PIPELINE definition
19#include "pnotify.h"
20
21/**
22 * This just stores the pointers to implement a doubly-linked list of
23 * PipelineCyclers for a particular Pipeline object. We use a hand-rolled
24 * linked list rather than any STL container, because we want PipelineCyclers
25 * to be able to add and remove themselves from this list very quickly.
26 *
27 * These pointers are inherited from this separate class so the Pipeline
28 * object itself can be the root of the linked list.
29 */
30class EXPCL_PANDA_PIPELINE PipelineCyclerLinks {
31protected:
32#ifdef THREADED_PIPELINE
33 INLINE PipelineCyclerLinks();
34 INLINE ~PipelineCyclerLinks();
35
36 INLINE void make_head();
37 INLINE void clear_head();
38
39 INLINE void remove_from_list();
40 INLINE void insert_before(PipelineCyclerLinks *node);
41
42 INLINE void take_list(PipelineCyclerLinks &other);
43
44 PipelineCyclerLinks *_prev, *_next;
45#endif
46 friend class Pipeline;
47};
48
49#include "pipelineCyclerLinks.I"
50
51#endif
This class manages a staged pipeline of data, for instance the render pipeline, so that each stage of...
Definition pipeline.h:38
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.