HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ROP_RenderManager.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: ROP_RenderManager.h ( ROP Library, C++)
7  *
8  * COMMENTS:
9  * This analyzes a net of ROPs, and produces a render ordering for them.
10  */
11 #ifndef ROP_RenderManager_h
12 #define ROP_RenderManager_h
13 
14 #include "ROP_API.h"
15 #include <UT/UT_ValArray.h>
16 #include "ROP_RenderList.h"
17 
18 class ROP_RenderCmdParms;
19 class ROP_RenderItem;
20 class ROP_Node;
21 class ROP_Verbose;
22 
24 {
25 public:
26 
27  bool render(ROP_Node *render_node,
28  fpreal startframe, fpreal endframe, fpreal finc,
29  bool single_rop,
30  bool frame_by_frame,
31  bool ignore_bypass,
32  bool ignore_locks,
33  bool merge_frames,
34  ROP_Verbose *verbose);
35 
36  // returns the order in which to render frames in 'order'.
37  void buildFrameOrder(ROP_RenderList &order,
38  ROP_Node *render_node,
39  fpreal startframe, fpreal endframe, fpreal finc,
40  bool single_rop,
41  bool frame_by_frame,
42  bool ignore_bypass,
43  bool ignore_locks,
44  bool merge_frames);
45 
46  // returns true if all successfully rendered.
47  bool renderOrder(const ROP_RenderList &order,
48  ROP_Verbose *verbose);
49 
50  void getFrameOrder(ROP_Node *render_node,
51  fpreal startframe, fpreal endframe, fpreal finc,
52  ROP_RenderCmdParms &render_parms);
53 
54  // returns the range that the user specified for the render.
55  void getOutputFrameRange(fpreal &start, fpreal &end,
56  fpreal &finc) const;
57 
58  bool isActive() const { return (myRenderOrder != NULL); }
59 
60  int getNumRenderedFrames(ROP_Node *for_node) const;
61 
62  void addPostProcessor(ROP_Node *node);
63 
64  // copies the current post processor list into nodes, and starts a new list.
65  // Do not touch the returned node list; pass it back to popPostProcessors()
66  void pushPostProcessors(UT_ValArray<ROP_Node *> &nodes);
67 
68  // post processes 'list' with any post processes, then restores the old
69  // post processor list from nodes.
70  void popPostProcessors(ROP_RenderList &list,
71  const ROP_RenderDepParms &parms,
73 
74  static ROP_RenderManager *pushManager(); // Returns new manager
75  static ROP_RenderManager *getManager(); // Returns top of stack
76  static void popManager(); // Must be one for every push
77 
78 private:
80 
81  // called by ROP_Node only.
82  void setCurrentPercent(float p);
83 
84  UT_ValArray<ROP_Node *> myPostProcessors;
85  fpreal myFrameStart;
86  fpreal myFrameEnd;
87  fpreal myFrameInc;
88  ROP_RenderList *myRenderOrder;
89  static int theRenderSerial;
90  int theCurrentCount;
91  int theTotalCount;
92  int theCurrentTotal;
93 
94 
95  friend class ROP_Node;
96 };
97 
99 {
100 public:
103 };
104 
105 #endif
GLuint start
Definition: glcorearb.h:474
static void popManager()
IFDmantra you can see code vm_image_mplay_direction endcode When SOHO starts a render
Definition: HDK_Image.dox:266
#define ROP_API
Definition: ROP_API.h:10
bool isActive() const
GLuint GLuint end
Definition: glcorearb.h:474
double fpreal
Definition: SYS_Types.h:263
static ROP_RenderManager * pushManager()