RixSloInfo.h Source File

RixSloInfo.h
1 #ifndef RixSloInfo_h
2 #define RixSloInfo_h
3 /* $Revision: #1 $ $Date: 2015/04/23 $ */
4 /*
5 # ------------------------------------------------------------------------------
6 #
7 # Copyright (c) 2006-2012 Pixar Animation Studios. All rights reserved.
8 #
9 # The information in this file (the "Software") is provided for the
10 # exclusive use of the software licensees of Pixar. Licensees have
11 # the right to incorporate the Software into other products for use
12 # by other authorized software licensees of Pixar, without fee.
13 # Except as expressly permitted herein, the Software may not be
14 # disclosed to third parties, copied or duplicated in any form, in
15 # whole or in part, without the prior written permission of
16 # Pixar Animation Studios.
17 #
18 # The copyright notices in the Software and this entire statement,
19 # including the above license grant, this restriction and the
20 # following disclaimer, must be included in all copies of the
21 # Software, in whole or in part, and all permitted derivative works of
22 # the Software, unless such copies or derivative works are solely
23 # in the form of machine-executable object code generated by a
24 # source language processor.
25 #
26 # PIXAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
27 # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
28 # SHALL PIXAR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
29 # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30 # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
31 # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
32 # SOFTWARE.
33 #
34 # Pixar
35 # 1200 Park Ave
36 # Emeryville CA 94608
37 #
38 # ------------------------------------------------------------------------------
39 */
40 #include "RixInterfaces.h"
41 #include "slo.h"
42 
65 class RixSloInfo : public RixInterface
66 {
67 public:
68  virtual void SetPath(char const *path) = 0;
69  virtual char const *GetPath() = 0;
70  virtual int SetShader(char const *name) = 0;
71  virtual char const *GetName() = 0;
72  virtual SLO_TYPE GetType() = 0;
73  virtual int HasMethod(char const *name) = 0;
74  virtual int GetNArgs() = 0;
75  virtual SLO_VISSYMDEF const *GetArgByName(char const *name) = 0;
76  virtual SLO_VISSYMDEF const *GetArgById(int id) = 0;
77  virtual SLO_VISSYMDEF const *GetArrayArgElement(SLO_VISSYMDEF const *array,
78  int index) = 0;
79  virtual void EndShader() = 0;
80  virtual char const *TypetoStr(SLO_TYPE type) = 0;
81  virtual char const *StortoStr(SLO_STORAGE storage) = 0;
82  virtual char const *DetailtoStr(SLO_DETAIL detail) = 0;
83  virtual char const *GetMetaData(char const * name) = 0;
84 
85  // These routines return allocated arrays that must be freed by caller.
86  // The contained strings need *not* be freed.
87  virtual char const ** GetMethodNames() = 0;
88  virtual char const ** GetAllMetaData() = 0;
89  virtual char const ** GetPlugins() = 0;
90  virtual void Free(void *) = 0;
91 
92 
93  virtual SLO_METHOD GetMethodHandle(char const * name) = 0;
94  virtual int GetNMethodArgs(SLO_METHOD method) = 0;
95  virtual SLO_VISSYMDEF const *GetMethodArgByName(SLO_METHOD method,
96  char const *name) = 0;
97  virtual SLO_VISSYMDEF const *GetMethodArgById(SLO_METHOD method, int id)= 0;
98  virtual SLO_VISSYMDEF const *GetArrayMethodArgElement(SLO_METHOD method,
99  SLO_VISSYMDEF const *array, int index) = 0;
100 
101  virtual char const **GetStructNames() = 0; // caller freed
102  virtual SLO_VISSYMDEF const *GetStructByName(char const *name) = 0;
103  virtual SLO_VISSYMDEF const *GetStructMember(
104  SLO_STRUCTID structid, int member) = 0;
105  virtual SLO_VISSYMDEF const *GetArrayStructMemberElement(
106  SLO_STRUCTID structid, int member, int index) = 0;
107 protected:
110  virtual ~RixSloInfo() {}
111 };
112 
113 #endif