RenderManAPI  24.0
RixRiCtl.h
Go to the documentation of this file.
1 /*
2 # ------------------------------------------------------------------------------
3 #
4 # Copyright (c) 2020 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 #ifndef RixRiCtl_h
38 #define RixRiCtl_h
39 
40 #include "RixInterfaces.h" // for RixInterface
41 #include "ri.h" // for RtString, RtBoolean, etc
42 
43 class Ri;
44 
67 {
71 };
72 
73 class RixRiCtl : public RixInterface
74 {
75 public:
81  virtual int PRManBegin(int argc, char* argv[]) = 0;
82  virtual int PRManGo() = 0;
83  virtual int PRManEnd() = 0;
84 
91  virtual Ri* GetRiCtx() = 0;
92 
96 
98  virtual void Flush(
99  RtString marker,
100  RtBoolean synchronous,
101  RtUString flushmode) = 0;
102 
105  virtual int GetProgress() = 0;
106 
109  virtual int SetWantsProgress(int wantsProgress) = 0;
110 
112  virtual void ProcessCallbacks() = 0;
113 
115  virtual void Option(RtString name, RtPointer value) = 0;
116 
118  virtual void SetRifEditMode(RixRifEditMode m) = 0;
119 
121  virtual void RifInit(int argc, const char *argv[]) = 0;
122 
123  // Tell prman a texture is dirty and needs to flush it from the texture cache.
124  virtual void InvalidateTexture(RtUString const name) = 0;
125 
126 protected:
128  virtual ~RixRiCtl() {}
129 };
130 
131 #endif
virtual int PRManBegin(int argc, char *argv[])=0
PRMan methods ---------------------------------------------— These entrypoints are useful to initiat...
virtual void Option(RtString name, RtPointer value)=0
Configure Ric.
virtual void SetRifEditMode(RixRifEditMode m)=0
Set Rif behavior.
virtual void ProcessCallbacks()=0
Process outstanding callback requests (display, exception)
void * RtPointer
Definition: ri.h:69
virtual void InvalidateTexture(RtUString const name)=0
virtual int SetWantsProgress(int wantsProgress)=0
Set whether the renderer should return progress messages Returns the previous value.
Base class for all Rix interfaces.
Definition: RixInterfaces.h:133
virtual void Flush(RtString marker, RtBoolean synchronous, RtUString flushmode)=0
Ric (Ri Control) methods --------------------------------—— These should be used ether to control a...
Definition: RixRiCtl.h:69
RixRifEditMode
The RixRiCtl interface provides access to the current thread's Ri context and is intended for use by ...
Definition: RixRiCtl.h:66
virtual Ri * GetRiCtx()=0
Ri methods -------------------------------------------------— Return a pointer to Ri generator...
char * RtString
Definition: ri.h:68
virtual ~RixRiCtl()
Definition: RixRiCtl.h:128
Definition: RixRiCtl.h:70
virtual void RifInit(int argc, const char *argv[])=0
Configure Rifs. Would only work in main thread.
short RtBoolean
Definition: ri.h:53
Definition: RixRiCtl.h:73
RixRiCtl()
Definition: RixRiCtl.h:127
virtual int GetProgress()=0
Return the percentage done of the current render.
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
virtual int PRManEnd()=0
Definition: RixRiCtl.h:68
virtual int PRManGo()=0