RenderMan API  23.0
RixRiCtl.h
Go to the documentation of this file.
1 /*
2 # ------------------------------------------------------------------------------
3 #
4 # Copyright (c) 1986-2019 Pixar. All rights reserved.
5 #
6 # The information in this file (the "Software") is provided for the exclusive
7 # use of the software licensees of Pixar ("Licensees"). Licensees have the
8 # right to incorporate the Software into other products for use by other
9 # authorized software licensees of Pixar, without fee. Except as expressly
10 # permitted herein, the Software may not be disclosed to third parties, copied
11 # or duplicated in any form, in whole or in part, without the prior written
12 # permission of Pixar.
13 #
14 # The copyright notices in the Software and this entire statement, including the
15 # above license grant, this restriction and the following disclaimer, must be
16 # included in all copies of the Software, in whole or in part, and all permitted
17 # derivative works of the Software, unless such copies or derivative works are
18 # solely in the form of machine-executable object code generated by a source
19 # language processor.
20 #
21 # PIXAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
22 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL PIXAR BE
23 # LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
24 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
25 # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
26 # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. IN NO CASE WILL
27 # PIXAR'S TOTAL LIABILITY FOR ALL DAMAGES ARISING OUT OF OR IN CONNECTION WITH
28 # THE USE OR PERFORMANCE OF THIS SOFTWARE EXCEED $50.
29 #
30 # Pixar
31 # 1200 Park Ave
32 # Emeryville CA 94608
33 #
34 # ------------------------------------------------------------------------------
35 */
36 
37 
38 #ifndef RixRiCtl_h
39 #define RixRiCtl_h
40 
41 #include "RixInterfaces.h" // for RixInterface
42 #include "ri.h" // for RtString, RtBoolean, etc
43 
44 class Ri;
45 
68 {
72 };
73 
74 class RixRiCtl : public RixInterface
75 {
76 public:
82  virtual int PRManBegin(int argc, char* argv[]) = 0;
83  virtual int PRManGo() = 0;
84  virtual int PRManEnd() = 0;
85 
92  virtual Ri* GetRiCtx() = 0;
93 
97 
99  virtual void Flush(
100  RtString marker,
101  RtBoolean synchronous,
102  RtUString flushmode) = 0;
103 
106  virtual int GetProgress() = 0;
107 
110  virtual RtInt SetWantsProgress(RtInt wantsProgress) = 0;
111 
113  virtual void ProcessCallbacks() = 0;
114 
116  virtual void Option(RtString name, RtPointer value) = 0;
117 
119  virtual void SetRifEditMode(RixRifEditMode m) = 0;
120 
122  virtual void RifInit(int argc, const char *argv[]) = 0;
123 
124  // Tell prman a texture is dirty and needs to flush it from the texture cache.
125  virtual void InvalidateTexture(RtUString const name) = 0;
126 
127 protected:
129  virtual ~RixRiCtl() {}
130 };
131 
132 #endif
virtual void Option(RtString name, RtPointer value)=0
Configure Ric.
void * RtPointer
Definition: ri.h:69
virtual Ri * GetRiCtx()=0
virtual void Flush(RtString marker, RtBoolean synchronous, RtUString flushmode)=0
Flush the renderer to the given stream marker.
virtual void SetRifEditMode(RixRifEditMode m)=0
Set Rif behavior.
virtual void InvalidateTexture(RtUString const name)=0
virtual int PRManBegin(int argc, char *argv[])=0
virtual int PRManEnd()=0
virtual RtInt SetWantsProgress(RtInt wantsProgress)=0
virtual void RifInit(int argc, const char *argv[])=0
Configure Rifs. Would only work in main thread.
RixRifEditMode
Definition: RixRiCtl.h:67
virtual ~RixRiCtl()
Definition: RixRiCtl.h:129
char * RtString
Definition: ri.h:68
Definition: ri.hpp:46
pxrcore::UString RtUString
virtual void ProcessCallbacks()=0
Process outstanding callback requests (display, exception)
short RtBoolean
Definition: ri.h:53
RixRiCtl()
Definition: RixRiCtl.h:128
virtual int PRManGo()=0
int RtInt
Definition: ri.h:55
virtual int GetProgress()=0