RenderManAPI  24.0
RixInterfaces.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 RixInterfaces_h
38 #define RixInterfaces_h
39 
40 #include <cstddef> // for NULL, size_t
41 #include <utility> // for std::move
42 #include "RiTypesHelper.h" // for RtFloat3, RtUString, etc
43 
44 #include "stats/Roz.h"
45 
46 class RixLPEState;
47 class RixShadingContext;
48 class RiPredefinedStrings;
49 
93 enum RixInterfaceId
95 {
96  // clang-format off
110  k_RixRiCtl = 20,
126  // clang-format on
127 };
128 
134 {
135 public:
136  // type of the results returned by
137  // - RixRenderState::GetAttribute
138  // - RixRenderState::GetOption
139  // - RixTexture::GetProperty
140  enum Type
141  {
152  };
155  virtual int GetVersion() const { return m_version; }
156 
157 protected:
160 
162  RixInterface(int version) : m_version(version) {}
163 
165  virtual ~RixInterface() {}
166 };
167 
173 {
174 public:
177  virtual RixInterface* GetRixInterface(RixInterfaceId id) const = 0;
178 
180  virtual ~RixContext() {}
181 };
182 
190 class RixXcpt : public RixInterface
191 {
192 public:
196  {
197  public:
198  virtual void HandleXcpt(int code, int severity, const char* msg) = 0;
199  virtual void HandleExitRequest(int code) = 0;
200 
201  protected:
202  virtual ~XcptHandler() {}
203  };
204 
208  virtual void Register(XcptHandler*) = 0;
209 
211  virtual void Unregister(XcptHandler*) = 0;
212 
215  virtual void SetBuiltinHandler(RtUString name) = 0;
216 
217 protected:
219 };
220 
221 
227 {
228 public:
230  virtual uint32_t XXHash32(void const* input, size_t size, unsigned seed)=0;
231 
233  virtual uint64_t XXHash64(void const* input, size_t size, unsigned seed)=0;
234 
235 protected:
238 };
239 
242 class RixMessages : public RixInterface
243 {
244 public:
249 
251  virtual void Error(const char* format, ...) = 0;
252 
254  virtual void ErrorAlways(const char* format, ...) = 0;
255 
257  virtual void Warning(const char* format, ...) = 0;
258 
260  virtual void WarningAlways(const char* format, ...) = 0;
261 
263  virtual void Info(const char* format, ...) = 0;
264 
266  virtual void InfoAlways(const char* format, ...) = 0;
267 
268 protected:
271 };
272 
289 class RixTexture : public RixInterface
290 {
291 public:
292  enum ErrType
293  {
294  Ok = 0,
302  };
303 
305  {
306  public:
309  {
310  texture = 0,
317  };
318 
321  : version(3),
322  fileHandle(NULL),
323  nchannels(0),
324  channelTypes(NULL),
325  nparts(0),
326  width(0),
327  height(0),
328  pixelAspectRatio(0.0f),
329  type(texture),
330  statsId(stats::DataLocId::InvalidId())
331  {
332  }
333 
334  int version; // Version of this struct
335  void* fileHandle; // If NULL, the file could not be acquired
336  int nchannels; // The # of channels in the texture
337  unsigned char* channelTypes; // The types of the channels
338  // 0 - unknown
339  // 1 - 8 bit
340  // 2 - 16 bit
341  // 3 - 32 bit
342  // 4 - float
343  // 5 - half
344  int nparts; // The number of parts present
345  int width, height; // Width and height of texture
346  float pixelAspectRatio; // Pixel aspect ratio of texture
347  TextureType type; // What type of texture?
348  stats::DataLocId statsId; // ID of this texture for stats tracking.
349  };
350 
352  {
357  };
358 
359  struct TxParams
360  {
361  public:
364  {
365  Nearest = 0, // *WARNING* disables MIPMAP! No filtering
366  Box, // Fast "box" like filter
367  Bilinear, // Slower, supports derivatives
368  Bspline, // Slower bicubic filter, supports derivatives
369  Mitchell, // Negative lobed, fast, bicubic filter - PTEX ONLY
370  Catmullrom, // Negative lobed, fast, bicubic filter - PTEX ONLY
371  Gaussian, // Gaussian fast filter
372  Lagrangian, // Fastest (SSE based) filter
373  BsplineAniso // Same as Bspline, but supports anisotropic filtering
374  };
375 
378  : version(1),
379  nchannels(1),
380  firstchannel(0),
381  lerp(true),
382  invertT(false),
383  filter(Box),
384  sblur(NULL),
385  tblur(NULL),
386  sblurVarying(true),
387  tblurVarying(true),
388  swidth(1.0f),
389  twidth(1.0f),
390  fill(0.f),
391  faceIndex(NULL)
392  {
393  }
394 
395  int version; // Version of this struct
396  int nchannels; // The number of channels to lookup
397  int firstchannel; // The channel to start the lookup
398  bool lerp; // Should MIP levels be interpolated
399  bool invertT; // Should the texture space origin be bottom left
400  // (false) or top left (true)
401  FilterType filter; // Which filter should be used
402  const float* sblur; // Amount of blur to apply to lookup
403  const float* tblur;
404  bool sblurVarying; // Is the blur uniform?
406  float swidth; // Multiplier for filter radius
407  float twidth;
408  float fill; // Value to fill missing channels
409  float* faceIndex; // A faceIndex to access ptexture
410  };
411 
425  virtual int AcquireTexture(
426  RtUString const fileName,
427  TxAtlasStyle const atlasStyle,
428  TxProperties& txProperties) = 0;
429 
433  virtual int AcquireTexturePart(
434  int partIndex,
435  TxProperties const& txProperties,
436  TxProperties& partProperties) = 0;
437 
440  virtual int ReleaseTexture(TxProperties const& txProperties) = 0;
441 
456  virtual int Texture(
457  TxProperties const& txProperties,
458  TxParams const& txParams,
459  int nPoints,
460  RtFloat2 const* st,
461  float const* stRadius,
462  float* result,
463  int* runFlags = NULL) = 0;
464  virtual int Texture(
465  TxProperties const& txProperties,
466  TxParams const& txParams,
467  int nPoints,
468  RtFloat3 const* st,
469  float const* stRadius,
470  float* result,
471  int* runFlags = NULL) = 0;
472 
492  virtual int TextureDerivatives(
493  TxProperties const& txProperties,
494  TxParams const& txParams,
495  int nPoints,
496  RtFloat2 const* st,
497  float const* dsdu,
498  float const* dtdu,
499  float const* dsdv,
500  float const* dtdv,
501  float const* dufp,
502  float const* dvfp,
503  float* result,
504  float* dresultds,
505  float* dresultdt,
506  int* runFlags = NULL) = 0;
507  virtual int TextureDerivatives(
508  TxProperties const& txProperties,
509  TxParams const& txParams,
510  int nPoints,
511  RtFloat3 const* st,
512  float const* dsdu,
513  float const* dtdu,
514  float const* dsdv,
515  float const* dtdv,
516  float const* dufp,
517  float const* dvfp,
518  float* result,
519  float* dresultds,
520  float* dresultdt,
521  int* runFlags = NULL) = 0;
522 
539  virtual int Ptexture(
540  TxProperties const& txProperties,
541  TxParams const& txParams,
542  int nPoints,
543  RtFloat2 const* uv,
544  float const* uWidth,
545  float const* vWidth,
546  float* result,
547  int* runFlags = NULL) = 0;
548 
571  virtual int PtextureDerivatives(
572  TxProperties const& txProperties,
573  TxParams const& txParams,
574  int nPoints,
575  RtFloat2 const* st,
576  float const* dsdu,
577  float const* dtdu,
578  float const* dsdv,
579  float const* dtdv,
580  float* result,
581  float* dresultds,
582  float* dresultdt,
583  int* runFlags = NULL) = 0;
584 
588  // NOTE: No filtering is applied to the data being read.
589  virtual int TextureData(
590  TxProperties const& txProperties,
591  TxParams const& txParams,
592  int mipLevel,
593  int cubeFace,
594  void* result) = 0;
595 
596  virtual int GetProperty(
597  TxProperties const& txProperties,
598  RtUString const propertyName,
599  void* result,
600  int resultLen,
601  Type* resultType,
602  int* resultCount
603  ) = 0;
604 
625  virtual const ErrType* GetLastError() = 0;
626 
627 protected:
630 };
631 
635 {
636 public:
637  virtual int RxTexture3dV(
638  char const* filename,
639  RtPoint3 point,
640  RtNormal3 normal,
641  float filterradius,
642  int n,
643  RtUString tokens[],
644  void* parms[]) = 0;
645 
646  // The RxTexture3d interface takes name/value pairs through the ellipses.
647  // It is important to note that names should be passed through as c-strings.
648  // These are converted to unique strings internally so something to
649  // note is that the vectorized API, RxTexture3dV, is likely to be more
650  // efficient and scalable for names and values that can be constructed up
651  // front.
652  virtual int RxTexture3d(
653  char const* filename,
654  RtPoint3 point,
655  RtNormal3 normal,
656  float filterradius,
657  ...) = 0;
658 
659 protected:
662 };
663 
668 {
669 public:
671  virtual float Noise(float in) = 0;
672  virtual float Noise(RtFloat2 const& in) = 0;
673  virtual float Noise(RtFloat3 const& in) = 0;
674  virtual float Noise(RtFloat3 const& in, float inF) = 0;
675 
676  virtual RtFloat3 Noise3(float in) = 0;
677  virtual RtFloat3 Noise3(RtFloat2 const& in) = 0;
678  virtual RtFloat3 Noise3(RtFloat3 const& in) = 0;
679  virtual RtFloat3 Noise3(RtFloat3 const& in, float inF) = 0;
680 
682  virtual float PNoise(float in, float period) = 0;
683  virtual float PNoise(RtFloat2 const& in, RtFloat2 const& period) = 0;
684  virtual float PNoise(RtFloat3 const& in, RtFloat3 const& period) = 0;
685  virtual float PNoise(
686  RtFloat3 const& in,
687  float inF,
688  RtFloat3 const& period,
689  float periodF) = 0;
690 
691  virtual RtFloat3 PNoise3(float in, float period) = 0;
692  virtual RtFloat3 PNoise3(RtFloat2 const& in, RtFloat2 const& period) = 0;
693  virtual RtFloat3 PNoise3(RtFloat3 const& in, RtFloat3 const& period) = 0;
694  virtual RtFloat3 PNoise3(
695  RtFloat3 const& in,
696  float inF,
697  RtFloat3 const& period,
698  float periodF) = 0;
699 
701  virtual float CellNoise(float in) = 0;
702  virtual float CellNoise(RtFloat2 const& in) = 0;
703  virtual float CellNoise(RtFloat3 const& in) = 0;
704  virtual float CellNoise(RtFloat3 const& in, float inF) = 0;
705 
706  virtual RtFloat3 CellNoise3(float in) = 0;
707  virtual RtFloat3 CellNoise3(RtFloat2 const& in) = 0;
708  virtual RtFloat3 CellNoise3(RtFloat3 const& in) = 0;
709  virtual RtFloat3 CellNoise3(RtFloat3 const& in, float inF) = 0;
710 
713  {
714  Bezier = 0,
719  };
720 
721  virtual float SolveSpline(
722  SplineType type,
723  float const knot[],
724  int nKnots,
725  float a) = 0;
726  virtual float EvalSpline(
727  SplineType type,
728  float const knot[],
729  int nKnots,
730  float a) = 0;
731  virtual RtFloat3 EvalSpline3(
732  SplineType type,
733  RtFloat3 const knot[],
734  int nknot,
735  float a) = 0;
736 
737 protected:
740 };
741 
745 {
746 public:
751  virtual int TransformPoints(
752  RtUString const fromspace,
753  RtUString const tospace,
754  int n,
755  RtPoint3 p[],
756  float time) = 0;
757 
759  virtual void TransformPoints(RtMatrix4x4 const& m, int n, RtPoint3 p[]) = 0;
760 
765  virtual int TransformMatrix(
766  RtUString const fromspace,
767  RtUString const tospace,
768  float time,
769  RtMatrix4x4& m) = 0;
770 
771 protected:
774 };
775 
778 {
779 public:
781  {
782  const char* renderer;
783  const char* version;
784  int versionCode[4];
785  char _reserved[32];
786  };
788  virtual int GetRendererInfo(RendererInfo*) = 0;
789 
790  struct FrameInfo
791  {
792  FrameInfo() : _vers(2) {}
793 
795  {
798  };
799 
800  int frame;
801  int nthreads;
802  float shutter[2]; // when shutter values are equal, no motion-blur
804  struct
805  {
806  int nDisplays; // indexes for GetDspyInfo
807  int resolution[2];
809  } displayState;
810 
811  int _vers;
812 
813  // added in version 2
814  // integrator settings are only non-null in RIS mode
818 
819  char _reserved[32];
820  };
821 
824  virtual int GetFrameInfo(FrameInfo*) = 0;
825 
826  struct DspyInfo
827  {
831  char _reserved[32];
832  };
835  virtual int GetDspyInfo(int dspyId, DspyInfo*) = 0;
836 
838  {
844  };
845 
846  struct RayCtxInfo
847  {
848  int integratorIteration; // always 0 when in distribution integration
849  char _reserved[32];
850  };
851 
855  virtual int GetRayCtxInfo(RayCtxInfo*) = 0;
856 
872  virtual int GetOption(
873  RtUString const name,
874  void* result,
875  int resultLength,
876  Type* resultType,
877  int* resultCount) = 0;
878 
879  virtual int GetAttribute(
880  RtUString const name,
881  void* result,
882  int resultLength,
883  Type* resultType,
884  int* resultCount) = 0;
885 
897  virtual int GetRIBFileContext(int* linenumber, char** filename) = 0;
898 
899 
914  virtual int GetRIBArchive(RtUString const filename, const char** archive) = 0;
915 
916 protected:
918 };
919 
920 class [[deprecated]] RixSymbolResolver : public RixInterface
921 {
922 public:
932  virtual void ResolvePredefinedStrings(RiPredefinedStrings &ps) const = 0;
933 
935  {
936  k_PixelFilter = 0,
937  k_Basis = 1,
939  k_ErrorHandler = 3,
940  k_RiEntryPoint = 4
941  };
942  //
955  virtual void* ResolveSymbol(const char* nm, SymbolGroup group) = 0;
956 
957 protected:
959 };
960 
961 
963 {
964 public:
965  virtual void EmitVector(RtVector3 v, RtColorRGB c) = 0;
966  virtual void EmitPoint(RtPoint3 p, RtColorRGB c) = 0;
967  virtual void EmitPointNormal(RtPoint3 p, RtNormal3 n, RtColorRGB c) = 0;
968  virtual void EmitLine(RtPoint3 p1, RtPoint3 p2, RtColorRGB c) = 0;
969  virtual void EmitBound(RtPoint3 pmin, RtPoint3 pmax, RtColorRGB c) = 0;
970  virtual void Clear() = 0;
971  virtual void Flush() = 0;
972 
973 protected:
975 };
976 
977 typedef int RixLPEToken;
978 
981 class RixLPEInfo : public RixInterface
982 {
983 public:
988  virtual int GetLpeIdByName(
989  bool discrete,
990  bool specular,
991  bool reflect,
992  bool user,
993  unsigned char lobeId,
994  char const* name) const = 0;
995 
999  virtual int GetNumPotentialDiffuseLobes() const = 0;
1000  virtual int GetNumPotentialSpecularLobes() const = 0;
1001  virtual int GetNumPotentialUserLobes() const = 0;
1002 
1003 protected:
1005 };
1006 
1007 // This is a callback routine for use with the
1008 // RixCustomLPE::RegisterScatterCallback() and
1009 // RixCustomLPE::InvokeScatterCallbacks(), described in more detail below.
1010 typedef void (*RixLPECallback)(
1011  void* userData,
1012  RixLPEState* lpeState,
1013  RixShadingContext const* sCtx,
1014  int sCtxIndex,
1015  RtColorRGB const& thruput,
1016  RtColorRGB const* lightTrans,
1017  bool firstContribution);
1018 
1021 {
1022 public:
1023  // Use this method to return an integer identifier that corresponds to
1024  // a given Light Path Expression (LPE).
1025  virtual int LookupLPE(char const* lpeExpr) = 0;
1026 
1027  // Use this method to return an integer identifier that corresponds to
1028  // a given Light Path Expression (LPE) name.
1029  virtual int LookupLPEByName(char const* lpeName) = 0;
1030 
1031  // This method returns true if the 'customLpe' integer identifier
1032  // (which should be obtained by calling LookupLPE()) matches the current
1033  // ray hit, returning true or false along with the cumulative path
1034  // thruput corresponding to the custom LPE. This method should typically
1035  // be called from within a registered "transition" callback routine
1036  // (see RegisterScatterCallback() below).
1037  virtual bool MatchesLPE(
1038  int customLpe,
1039  RixLPEState* lpeState,
1040  RtColorRGB& thruput) = 0;
1041 
1042  // Use this method to register a "scatter" callback. Each scattering
1043  // event along the ray path counts as a "scatter" event (that is, each
1044  // ray-geometry intersection hit point that results in light being
1045  // scattered throughout the scene). Ater registering a scatter callback,
1046  // the callback routine will be invoked at each scattering event. Within
1047  // a scatter callback routine one might make a call to the MatchesLPE()
1048  // method in order to determine whether a particular custom LPE matches
1049  // the current ray path history.
1050  virtual void RegisterScatterCallback(
1051  RixLPECallback callbackFunc,
1052  void* userData = NULL) = 0;
1053 
1054  // Calling this method will invoke all registered scatter callback routines.
1055  // Typically this method is only called internally by the core rendering
1056  // code (and typically end-user code would not need to call this method
1057  // directly). Instead this routine is called indirectly via the RixLPE
1058  // interface whenever there is a scattering event.
1059  virtual void InvokeScatterCallbacks(
1060  RixLPEState* lpeState,
1061  RixShadingContext const* sCtx,
1062  int sCtxIndex,
1063  RtColorRGB const& thruput,
1064  RtColorRGB const* lightTrans,
1065  bool firstContribution) = 0;
1066 
1067 protected:
1069 };
1070 
1076 {
1077 public:
1083  virtual void WriteXml(const char* format, ...) = 0;
1084 
1087  virtual void WriteText(const char* format, ...) = 0;
1088 
1090  virtual ~RixXmlFile() {}
1091 
1092  // Helper functions for writings stats.
1093  void WriteStat(char const* name, char const* desc, int value)
1094  {
1095  WriteXml("<int name=\"%s\"", name);
1096  if (desc)
1097  WriteXml(" description=\"%s\"", desc);
1098  WriteXml("> %i </int>\n", value);
1099  }
1100 
1101  void WriteStat(char const* name, char const* desc, uint64_t value)
1102  {
1103  WriteXml("<int name=\"%s\"", name);
1104  if (desc)
1105  WriteXml(" description=\"%s\"", desc);
1106  WriteXml("> %llu </int>\n", value);
1107  }
1108 
1109  void WriteStat(char const* name, char const* desc, float value)
1110  {
1111  WriteXml("<float name=\"%s\"", name);
1112  if (desc)
1113  WriteXml(" description=\"%s\"", desc);
1114  WriteXml("> %f </float>\n", value);
1115  }
1116 
1117  void WriteStat(char const* name, char const* desc, char const* value)
1118  {
1119  WriteXml("<string name=\"%s\"", name);
1120  if (desc)
1121  WriteXml(" description=\"%s\"", desc);
1122  WriteXml("> %s </string>\n", value);
1123  }
1124 
1125  void WriteTime(char const* name, char const* desc, float time)
1126  {
1127  WriteXml("<timer name=\"%s\"", name);
1128  if (desc)
1129  WriteXml(" description=\"%s\"", desc);
1130  WriteXml("><elapsed>%f</elapsed></timer>\n", time);
1131  }
1132 };
1133 
1146 class RixTimer : public RixInterface
1147 {
1148 public:
1150  virtual uint64_t SampleTime() = 0;
1152  virtual float ConvertIntervalToSeconds(uint64_t interval) = 0;
1153 
1154 protected:
1156 };
1157 
1174 class RixStats : public RixInterface
1175 {
1176 public:
1183  virtual void AddTimerStat(
1184  float* seconds,
1185  const char* name,
1186  const char* description) = 0;
1187 
1196  {
1197  public:
1198  enum Fmt
1199  {
1205  };
1206  virtual ~SimpleStat() {}
1207  virtual void Reset() = 0;
1208  virtual const char* GetName() = 0;
1209  virtual const char* GetDescription() = 0;
1210  virtual void GetResults(uint64_t* result, Fmt* fmt) = 0;
1211  };
1212  virtual int AddSimpleStat(SimpleStat*) = 0;
1213 
1220  virtual void AddMemoryStat(
1221  size_t* bytes,
1222  const char* name,
1223  const char* description) = 0;
1224 
1227  typedef void (*Reporter)(class RixXmlFile* file);
1228  typedef void (*ReporterCtx)(void* ctx, class RixXmlFile*);
1229 
1247  virtual void AddReporter(Reporter func) = 0;
1248  virtual void AddReporterCtx(ReporterCtx func, void* ctx) = 0;
1249 
1255  virtual void AddFileLogStat(const char* fileName, const char* path) = 0;
1256 
1257 protected:
1260 };
1261 
1262 
1263 class [[deprecated]] RixResourceResolver : public RixInterface
1264 {
1265 public:
1267  {
1268  k_Shader = 0,
1274  k_RixPlugin
1275  };
1276 
1279  virtual char const* GetResourcePaths(ResourceType) = 0;
1280 
1292  virtual int ResolveResource(
1293  ResourceType,
1294  char const* nm,
1295  char result[],
1296  int maxlen) = 0;
1297 
1298 protected:
1300 };
1301 
1303 [[deprecated]] typedef void (*RixCleanupFunc)(RixContext* context, void* data);
1304 
1367 class [[deprecated]] RixStorage : public RixInterface
1368 {
1369 public:
1371  virtual void* Get(const RtUString key) = 0;
1372 
1376  virtual void Set(
1377  const RtUString key,
1378  void* data,
1379  RixCleanupFunc cleanup = NULL) = 0;
1380 
1383  virtual void Clear(const RtUString key) = 0;
1384 
1386  virtual void Lock() = 0;
1387 
1389  virtual void Unlock() = 0;
1390 
1391 protected:
1394 };
1395 
1401 template<typename _Signature>
1403 
1404 template <typename _Res, typename... _ArgTypes>
1405 class [[deprecated]] RixFunction<_Res(_ArgTypes...)>
1406 {
1408  struct FunctionPrototype
1409  {
1410  virtual ~FunctionPrototype() {}
1411  virtual _Res operator()(_ArgTypes... __args) const = 0;
1412  };
1413 
1415  template< typename Closure >
1416  struct Function : FunctionPrototype
1417  {
1418  Function(Closure&& t ) : fn(t) {}
1419  virtual ~Function() {}
1420  virtual _Res operator()(_ArgTypes... __args) const
1421  { return fn(__args...); }
1422  Closure fn;
1423  };
1424 
1425  FunctionPrototype* object;
1426 
1427 public:
1429  template< typename Closure >
1430  RixFunction(Closure&& obj )
1431  : object( new Function<Closure>( std::move(obj) ) )
1432  {}
1433 
1435  { delete object; }
1436 
1437  _Res operator()(_ArgTypes... __args) const
1438  {
1439  return (*object)(__args...);
1440  }
1441 };
1442 
1452 class [[deprecated]] RixMutex
1453 {
1454 public:
1456  virtual ~RixMutex() {}
1457 
1459  virtual void Lock() = 0;
1460 
1462  virtual void Unlock() = 0;
1463 };
1464 
1469 class [[deprecated]] RixThreadUtils : public RixInterface
1470 {
1471 public:
1473  virtual RixMutex* NewMutex() const = 0;
1474 
1476  virtual void DeleteMutex(RixMutex *mutex) const = 0;
1477 
1501  virtual void ParallelFor(size_t start, size_t end,
1502  const RixFunction<void(size_t)>& fn) const = 0;
1503  virtual void ParallelFor(size_t start, size_t end, size_t step,
1504  const RixFunction<void(size_t)>& fn) const = 0;
1505 
1506 protected:
1509 };
1510 
1516 {
1517 public:
1519  virtual bool ColorManagementEnabled() = 0;
1520  // Return 0 for ITU BT.709, 1 for CAEScg and -1 if the config wasn't initialized
1521  virtual int BaseColorSpace() = 0;
1522  // Convert a balckbody color to the current colorspace
1523  virtual RtColorRGB BlackbodyToColorSpace(RtColorRGB &in) = 0;
1524  // Make the color's luminance 1.0
1525  virtual void NormalizeColor(RtColorRGB &inout) = 0;
1527  virtual RtColorRGB LumaCoefs() = 0;
1528  // Return a processor id for an OCIO processor converting from inputRole to "rendering"
1529  virtual int GetProcessor(std::string inputRole) = 0;
1530  // Convert a color using the OCIO processor corresponding to the processor id
1531  virtual void ProcessColor(int processorId, RtColorRGB &inout) = 0;
1532 
1533 protected:
1536 };
1537 
1538 
1539 #endif // RIX_INTERFACE_H
RixThreadUtils()
Constructor is for internal use only.
Definition: RixInterfaces.h:1508
Definition: RixInterfaces.h:149
Custom proceudral geometry.
t_displayStyle
Definition: RixInterfaces.h:794
Definition: RixInterfaces.h:142
virtual int GetProcessor(std::string inputRole)=0
Definition: RixInterfaces.h:304
RtUString mode
Definition: RixInterfaces.h:830
Definition: RixInterfaces.h:294
RixShadingContext is analogous to a RenderMan grid - it is a group of 1 or more points that may be sh...
Definition: RixShading.h:663
Definition: RixInterfaces.h:355
virtual int GetFrameInfo(FrameInfo *)=0
Provides information about the current frame.
This class allows integrators to instrospect the rendering environment.
Definition: RixIntegrator.h:473
Definition: RixInterfaces.h:371
Definition: RixInterfaces.h:314
t_displayStyle displayStyle
Definition: RixInterfaces.h:808
virtual const ErrType * GetLastError()=0
GetLastError Returns a per-point error.
Definition: RixInterfaces.h:718
Definition: RixInterfaces.h:839
Definition: RixInterfaces.h:146
id for Color Manager interface
Definition: RixInterfaces.h:125
void WriteStat(char const *name, char const *desc, uint64_t value)
Definition: RixInterfaces.h:1101
Id for geometric debugger interface.
Definition: RixInterfaces.h:112
Id for RixDeepTexture interface.
Definition: RixInterfaces.h:105
int m_version
Version number of this interface.
Definition: RixInterfaces.h:159
Definition: RixInterfaces.h:962
const char * renderer
Definition: RixInterfaces.h:782
virtual void EmitVector(RtVector3 v, RtColorRGB c)=0
void WriteStat(char const *name, char const *desc, char const *value)
Definition: RixInterfaces.h:1117
Definition: RixInterfaces.h:315
virtual void Info(const char *format,...)=0
Report information, suppressing duplicate messages.
virtual int TransformPoints(RtUString const fromspace, RtUString const tospace, int n, RtPoint3 p[], float time)=0
Transform an array of points &#39;p&#39; of size &#39;n&#39; from &#39;fromspace&#39; to &#39;tospace&#39; at a given &#39;time&#39;...
virtual int GetOption(RtUString const name, void *result, int resultLength, Type *resultType, int *resultCount)=0
GetAttribute, GetOption, return the current values of the named Attribute or Option.
int nchannels
Definition: RixInterfaces.h:336
struct RixRenderState::FrameInfo::@3 displayState
stats::DataLocId statsId
Definition: RixInterfaces.h:348
float fill
Definition: RixInterfaces.h:408
virtual bool ColorManagementEnabled()=0
Return true if color management is enabled.
pxrcore::ColorRGB RtColorRGB
Definition: RiTypesHelper.h:520
virtual int GetNumPotentialSpecularLobes() const =0
Id for per-thread RixStorage interface.
Definition: RixInterfaces.h:100
virtual void WriteText(const char *format,...)=0
Write arbitrary text to XML file, encoding special characters like "&lt".
Definition: RixInterfaces.h:151
NOTE: This interface is deprecated and will be removed in a future release.
Definition: RixInterfaces.h:1367
Definition: RixInterfaces.h:1204
Definition: RixInterfaces.h:145
virtual void AddReporter(Reporter func)=0
Register a statistics reporter, which is called at the end of each frame after built-in statistics ar...
virtual int ReleaseTexture(TxProperties const &txProperties)=0
All texture access should release a texture as soon as it is finished looking up values.
virtual int BaseColorSpace()=0
virtual RtFloat3 PNoise3(float in, float period)=0
char _reserved[32]
Definition: RixInterfaces.h:831
SymbolGroup
Definition: RixInterfaces.h:934
virtual int TextureDerivatives(TxProperties const &txProperties, TxParams const &txParams, int nPoints, RtFloat2 const *st, float const *dsdu, float const *dtdu, float const *dsdv, float const *dtdv, float const *dufp, float const *dvfp, float *result, float *dresultds, float *dresultdt, int *runFlags=NULL)=0
Lookup filtered texture results over nPoints from a texture obtained with AcquireTexture().
Rix interfaces are obtained from an RixContext.
Definition: RixInterfaces.h:172
virtual float PNoise(float in, float period)=0
Periodic Noise.
Definition: RixInterfaces.h:353
virtual void AddMemoryStat(size_t *bytes, const char *name, const char *description)=0
Add a memory statistic, which is simply a pointer to a size_t into which the plugin has accumulated m...
RixFunction(Closure &&obj)
Template constructor for Lambda capture.
Definition: RixInterfaces.h:1430
virtual int LookupLPE(char const *lpeExpr)=0
Definition: RixInterfaces.h:297
Definition: RixInterfaces.h:1273
Id for New Texture-2D interface.
Definition: RixInterfaces.h:113
virtual void AddFileLogStat(const char *fileName, const char *path)=0
Add a file to the fileLog statistic.
RixInterfaceId
Identifiers for Rix interfaces.
Definition: RixInterfaces.h:94
virtual int GetNumPotentialDiffuseLobes() const =0
Return the maximum potential number of diffuse and specular lobe indices.
virtual int GetVersion() const
Get the version number of this interface.
Definition: RixInterfaces.h:155
virtual void Reset()=0
RixTexture performs filtered texture map lookups using a texture coordinate and a region over which t...
Definition: RixInterfaces.h:289
virtual float ConvertIntervalToSeconds(uint64_t interval)=0
Convert a high res time interval to seconds of time.
FilterType
Filter selection.
Definition: RixInterfaces.h:363
Id for RixHashUtils interface to UtHash.
Definition: RixInterfaces.h:122
Base class for all Rix interfaces.
Definition: RixInterfaces.h:133
Id for local RixStorage interface.
Definition: RixInterfaces.h:101
Definition: RixInterfaces.h:714
Definition: RixInterfaces.h:842
virtual void ErrorAlways(const char *format,...)=0
Report an error, with no suppression of duplicate messages.
RtFloat3 RtPoint3
Definition: RiTypesHelper.h:70
virtual int GetAttribute(RtUString const name, void *result, int resultLength, Type *resultType, int *resultCount)=0
int nthreads
Definition: RixInterfaces.h:801
virtual const char * GetName()=0
virtual void WriteXml(const char *format,...)=0
Write arbitrary XML.
Id for RenderMan event callbacks interface.
Definition: RixInterfaces.h:124
virtual void GetResults(uint64_t *result, Fmt *fmt)=0
const float * sblur
Definition: RixInterfaces.h:402
int RixLPEToken
Definition: RixInterfaces.h:977
RixCustomLPE()
Definition: RixInterfaces.h:1068
RixResourceResolver()
Definition: RixInterfaces.h:1299
RixTimer()
Definition: RixInterfaces.h:1155
Definition: RixInterfaces.h:843
An interface to lookup and match custom light path expressions (LPEs).
Definition: RixInterfaces.h:1020
An interface to find out information related to light path expressions (LPEs).
Definition: RixInterfaces.h:981
virtual uint64_t XXHash64(void const *input, size_t size, unsigned seed)=0
Compute 64-bit hash using xxHash and an explicit seed value.
int version
Definition: RixInterfaces.h:334
The primary means to comprehend exceptional conditions within Rix is to handle messages generated by ...
Definition: RixInterfaces.h:190
Definition: RixInterfaces.h:296
virtual int GetRIBFileContext(int *linenumber, char **filename)=0
Retrieve the RIB context.
RixXcpt()
Definition: RixInterfaces.h:218
RixInterface(int version)
Interfaces should not be constructed by users.
Definition: RixInterfaces.h:162
virtual void Unregister(XcptHandler *)=0
Unregister a msg handler.
Fmt
Definition: RixInterfaces.h:1198
float swidth
Definition: RixInterfaces.h:406
FrameInfo()
Definition: RixInterfaces.h:792
class RixIntegratorEnvironment const * integratorEnv
Definition: RixInterfaces.h:817
A wrapper for provided hash functions.
Definition: RixInterfaces.h:226
Id for Transformation interface.
Definition: RixInterfaces.h:115
float shutter[2]
Definition: RixInterfaces.h:802
TextureType type
Definition: RixInterfaces.h:347
An object that can be used to print warnings, errors, or info in a thread safe way from within the re...
Definition: RixInterfaces.h:242
ErrType
Definition: RixInterfaces.h:292
RixTexture()
constructor for internal use only
Definition: RixInterfaces.h:629
virtual void EmitBound(RtPoint3 pmin, RtPoint3 pmax, RtColorRGB c)=0
Definition: RixInterfaces.h:310
virtual uint32_t XXHash32(void const *input, size_t size, unsigned seed)=0
Compute 32-bit hash using xxHash and an explicit seed value.
Definition: RixInterfaces.h:1200
Id for interface to exception handling.
Definition: RixInterfaces.h:103
RixTransform()
constructor for internal use only
Definition: RixInterfaces.h:773
virtual void EmitPoint(RtPoint3 p, RtColorRGB c)=0
Definition: RixInterfaces.h:372
Definition: RixInterfaces.h:1201
RixShadeFunctions()
constructor for internal use only
Definition: RixInterfaces.h:739
Definition: RixInterfaces.h:366
Definition: RixInterfaces.h:143
virtual void AddReporterCtx(ReporterCtx func, void *ctx)=0
ShadingIntent
Definition: RixInterfaces.h:837
TextureType
Texture type.
Definition: RixInterfaces.h:308
Definition: RixInterfaces.h:780
virtual void EmitPointNormal(RtPoint3 p, RtNormal3 n, RtColorRGB c)=0
Id for shader file query interface.
Definition: RixInterfaces.h:121
Definition: RiTypesHelper.h:82
virtual int AddSimpleStat(SimpleStat *)=0
RixHashUtils()
constructor for internal use only
Definition: RixInterfaces.h:237
Definition: RixInterfaces.h:312
RixStats()
Constructor is for internal use only.
Definition: RixInterfaces.h:1259
virtual RtColorRGB BlackbodyToColorSpace(RtColorRGB &in)=0
float twidth
Definition: RixInterfaces.h:407
RixLPEInfo()
Definition: RixInterfaces.h:1004
Definition: RixInterfaces.h:1203
RtUString type
Definition: RixInterfaces.h:829
int versionCode[4]
Definition: RixInterfaces.h:784
virtual int Texture(TxProperties const &txProperties, TxParams const &txParams, int nPoints, RtFloat2 const *st, float const *stRadius, float *result, int *runFlags=NULL)=0
Lookup filtered texture results over nPoints from a texture obtained with AcquireTexture().
virtual ~RixXmlFile()
Virtual destructor.
Definition: RixInterfaces.h:1090
Definition: RixInterfaces.h:846
RixFunction is a template class similar to std::function.
Definition: RixInterfaces.h:1402
void(* ReporterCtx)(void *ctx, class RixXmlFile *)
Definition: RixInterfaces.h:1228
Id for SymbolResolver interface.
Definition: RixInterfaces.h:111
virtual void AddTimerStat(float *seconds, const char *name, const char *description)=0
Add a timer statistic, which is simply a pointer to a float into which the plugin has accumulated tim...
virtual int GetRIBArchive(RtUString const filename, const char **archive)=0
Public interface for obtaining the contents of an in-memory archive, useful to serialize a sequence o...
Definition: RixInterfaces.h:1202
Id for RixTimer interface.
Definition: RixInterfaces.h:108
void WriteStat(char const *name, char const *desc, int value)
Definition: RixInterfaces.h:1093
pxrcore::Float3 RtFloat3
Definition: RiTypesHelper.h:69
ResourceType
Definition: RixInterfaces.h:1266
RixStorage()
Constructor is for internal use only.
Definition: RixInterfaces.h:1393
NOTE: This interface will be deprecated when a new interface comes in the next release An XML file ha...
Definition: RixInterfaces.h:1075
RixTransform provides transformation routines that operate over named coordinate systems in the rende...
Definition: RixInterfaces.h:744
virtual void NormalizeColor(RtColorRGB &inout)=0
NOTE: This interface is deprecated and will be removed in a future release This object is used to cre...
Definition: RixInterfaces.h:1469
virtual const char * GetDescription()=0
char _reserved[32]
Definition: RixInterfaces.h:849
virtual RtFloat3 CellNoise3(float in)=0
virtual void HandleXcpt(int code, int severity, const char *msg)=0
Id for Riinterface.
Definition: RixInterfaces.h:110
Id for ResourceResolver interface.
Definition: RixInterfaces.h:116
virtual void InvokeScatterCallbacks(RixLPEState *lpeState, RixShadingContext const *sCtx, int sCtxIndex, RtColorRGB const &thruput, RtColorRGB const *lightTrans, bool firstContribution)=0
int version
Definition: RixInterfaces.h:395
Id for RixMessages interface.
Definition: RixInterfaces.h:98
bool tblurVarying
Definition: RixInterfaces.h:405
unsigned char * channelTypes
Definition: RixInterfaces.h:337
Definition: RixInterfaces.h:370
int nchannels
Definition: RixInterfaces.h:396
virtual int GetRendererInfo(RendererInfo *)=0
Provides information about the renderer.
virtual void Flush()=0
Id for RixDspy interface.
Definition: RixInterfaces.h:120
virtual void RegisterScatterCallback(RixLPECallback callbackFunc, void *userData=NULL)=0
Definition: RixInterfaces.h:300
Id for RixStats interface.
Definition: RixInterfaces.h:107
virtual ~RixContext()
Destructor is for internal use only.
Definition: RixInterfaces.h:180
TODO: implement a new Texture-3D interface.
Definition: RixInterfaces.h:119
Definition: RixInterfaces.h:147
Definition: RixInterfaces.h:1263
virtual int GetProperty(TxProperties const &txProperties, RtUString const propertyName, void *result, int resultLen, Type *resultType, int *resultCount)=0
virtual int GetDspyInfo(int dspyId, DspyInfo *)=0
Returns details about a given dspy.
virtual void Error(const char *format,...)=0
Report error/warning/info, with printf-style formatting.
virtual RixInterface * GetRixInterface(RixInterfaceId id) const =0
Get the specified interface from this context.
virtual ~SimpleStat()
Definition: RixInterfaces.h:1206
virtual int TransformMatrix(RtUString const fromspace, RtUString const tospace, float time, RtMatrix4x4 &m)=0
Take &#39;fromspace&#39; and &#39;tospace&#39; and &#39;time&#39; and return matrix &#39;m&#39; representing that transformation...
float * faceIndex
Definition: RixInterfaces.h:409
Definition: RixInterfaces.h:316
virtual int AcquireTexturePart(int partIndex, TxProperties const &txProperties, TxProperties &partProperties)=0
Once a texture has been acquired, we can then acquire a part by part index, the partProperties will r...
RtUString integratorName
Definition: RixInterfaces.h:815
RixColorManager()
constructor for internal use only
Definition: RixInterfaces.h:1535
Id for RIB Parser interface.
Definition: RixInterfaces.h:106
RixTexture3d provides a general interface containing functions useful for looking up 3D texture data...
Definition: RixInterfaces.h:634
int _vers
Definition: RixInterfaces.h:811
void(* Reporter)(class RixXmlFile *file)
A reporting function takes a RixXmlFile and writes to it using WriteXml and WriteText.
Definition: RixInterfaces.h:1227
virtual int RxTexture3dV(char const *filename, RtPoint3 point, RtNormal3 normal, float filterradius, int n, RtUString tokens[], void *parms[])=0
int integratorIteration
Definition: RixInterfaces.h:848
RixSymbolResolver()
Definition: RixInterfaces.h:958
Definition: RixInterfaces.h:356
RtFloat3 RtNormal3
Definition: RiTypesHelper.h:73
Definition: RixInterfaces.h:299
Definition: RixInterfaces.h:295
virtual void ProcessColor(int processorId, RtColorRGB &inout)=0
Definition: RixInterfaces.h:368
virtual void SetBuiltinHandler(RtUString name)=0
Set one of the builtin error handlers.
Definition: RixInterfaces.h:373
virtual int GetLpeIdByName(bool discrete, bool specular, bool reflect, bool user, unsigned char lobeId, char const *name) const =0
GetLpeIdByName returns the integer lobe index given the lobe name and booleans indicating whether it ...
RtUString name
Definition: RixInterfaces.h:828
virtual void InfoAlways(const char *format,...)=0
Report information, with no suppression of duplicate messages.
Definition: RixInterfaces.h:717
Definition: RixInterfaces.h:920
NOTE: This interface will be deprecated when a new interface comes in the next release Interface for ...
Definition: RixInterfaces.h:1174
int width
Definition: RixInterfaces.h:345
virtual void WarningAlways(const char *format,...)=0
Report a warning, with no suppression of duplicate messages.
Definition: RixInterfaces.h:148
Id for global (per frame) RixStorage interface.
Definition: RixInterfaces.h:99
RixRenderState()
Definition: RixInterfaces.h:917
Definition: RixInterfaces.h:1271
Definition: RixInterfaces.h:826
int resolution[2]
Definition: RixInterfaces.h:807
A base class characterizing the required interface for xcpt handlers.
Definition: RixInterfaces.h:195
An interface for discovering the current state of the renderer.
Definition: RixInterfaces.h:777
Definition: RixInterfaces.h:796
Id for RixRenderState interface.
Definition: RixInterfaces.h:109
bool sblurVarying
Definition: RixInterfaces.h:404
void WriteTime(char const *name, char const *desc, float time)
Definition: RixInterfaces.h:1125
virtual int TextureData(TxProperties const &txProperties, TxParams const &txParams, int mipLevel, int cubeFace, void *result)=0
Read the whole texture into a buffer at a given MIP level.
Definition: RixSceneGraph.h:52
const char * version
Definition: RixInterfaces.h:783
Definition: RixInterfaces.h:790
TxAtlasStyle
Definition: RixInterfaces.h:351
Definition: RixInterfaces.h:359
Definition: RixInterfaces.h:365
virtual int Ptexture(TxProperties const &txProperties, TxParams const &txParams, int nPoints, RtFloat2 const *uv, float const *uWidth, float const *vWidth, float *result, int *runFlags=NULL)=0
Lookup filtered ptexture results over nPoints from a ptexture obtained with AcquireTexture().
virtual bool MatchesLPE(int customLpe, RixLPEState *lpeState, RtColorRGB &thruput)=0
virtual RtColorRGB LumaCoefs()=0
Return the current color space&#39;s luminance coefficients.
bool invertT
Definition: RixInterfaces.h:399
SplineType
Spline solver and evaluator.
Definition: RixInterfaces.h:712
bool rerendering
Definition: RixInterfaces.h:803
Definition: RixInterfaces.h:1272
void(* RixLPECallback)(void *userData, RixLPEState *lpeState, RixShadingContext const *sCtx, int sCtxIndex, RtColorRGB const &thruput, RtColorRGB const *lightTrans, bool firstContribution)
Definition: RixInterfaces.h:1010
virtual float Noise(float in)=0
Noise.
int height
Definition: RixInterfaces.h:345
pxrcore::Matrix4x4 RtMatrix4x4
Definition: RiTypesHelper.h:74
int frame
Definition: RixInterfaces.h:800
NOTE: This interface will be deprecated when a new interface comes in the next release Interface for ...
Definition: RixInterfaces.h:1146
virtual float SolveSpline(SplineType type, float const knot[], int nKnots, float a)=0
virtual void HandleExitRequest(int code)=0
Definition: RixInterfaces.h:715
Represents the LPE system state of a light transport path.
Definition: RixLPE.h:439
Definition: RixInterfaces.h:367
~RixFunction()
Definition: RixInterfaces.h:1434
bool lerp
Definition: RixInterfaces.h:398
int nparts
Definition: RixInterfaces.h:344
Definition: RixInterfaces.h:369
Id for RixThreadUtils interface.
Definition: RixInterfaces.h:97
TxProperties()
Create TxProperties with initial defaults.
Definition: RixInterfaces.h:320
Definition: RixInterfaces.h:354
virtual ~RixInterface()
Interfaces should not be deleted by users.
Definition: RixInterfaces.h:165
virtual int LookupLPEByName(char const *lpeName)=0
virtual int GetNumPotentialUserLobes() const =0
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
Definition: RixInterfaces.h:716
Id for per session RixStorage interface.
Definition: RixInterfaces.h:102
Id for Shade functions interface.
Definition: RixInterfaces.h:114
virtual int AcquireTexture(RtUString const fileName, TxAtlasStyle const atlasStyle, TxProperties &txProperties)=0
All texture access must acquire a texture first.
Definition: RixInterfaces.h:150
char _reserved[32]
Definition: RixInterfaces.h:785
virtual ~XcptHandler()
Definition: RixInterfaces.h:202
Id for RenderMan scene graph interface.
Definition: RixInterfaces.h:123
RtUString integratorPath
Definition: RixInterfaces.h:816
Add a generic statistic via a subclass of the SimpleStat class interface.
Definition: RixInterfaces.h:1195
virtual void Warning(const char *format,...)=0
Report a warning, suppressing duplicate messages.
Definition: RixInterfaces.h:1269
The color manager wraps the active OpenColorIO configuration (if any) to provide color management fun...
Definition: RixInterfaces.h:1515
_Res operator()(_ArgTypes... __args) const
Definition: RixInterfaces.h:1437
virtual void Clear()=0
char _reserved[32]
Definition: RixInterfaces.h:819
void * fileHandle
Definition: RixInterfaces.h:335
Definition: RixInterfaces.h:144
virtual int GetRayCtxInfo(RayCtxInfo *)=0
Provides information about the current shading context&#39;s ray tracing state.
Definition: RixInterfaces.h:797
virtual int RxTexture3d(char const *filename, RtPoint3 point, RtNormal3 normal, float filterradius,...)=0
Definition: RixInterfaces.h:841
FilterType filter
Definition: RixInterfaces.h:401
Id for RixLPEInfo interface.
Definition: RixInterfaces.h:117
virtual float EvalSpline(SplineType type, float const knot[], int nKnots, float a)=0
Definition: RixInterfaces.h:311
Definition: RixInterfaces.h:840
Type
Definition: RixInterfaces.h:140
void WriteStat(char const *name, char const *desc, float value)
Definition: RixInterfaces.h:1109
Id for RixCustomLPE interface.
Definition: RixInterfaces.h:118
void(* RixCleanupFunc)(RixContext *context, void *data)
A cleanup function can be associated with data in RixStorage.
Definition: RixInterfaces.h:1303
RixGeoDebugger()
Definition: RixInterfaces.h:974
RtFloat3 RtVector3
Definition: RiTypesHelper.h:72
const float * tblur
Definition: RixInterfaces.h:403
virtual void EmitLine(RtPoint3 p1, RtPoint3 p2, RtColorRGB c)=0
int firstchannel
Definition: RixInterfaces.h:397
int nDisplays
Definition: RixInterfaces.h:806
Definition: RixInterfaces.h:313
TxParams()
Create TxParams with initial defaults.
Definition: RixInterfaces.h:377
float pixelAspectRatio
Definition: RixInterfaces.h:346
virtual int PtextureDerivatives(TxProperties const &txProperties, TxParams const &txParams, int nPoints, RtFloat2 const *st, float const *dsdu, float const *dtdu, float const *dsdv, float const *dtdv, float *result, float *dresultds, float *dresultdt, int *runFlags=NULL)=0
Lookup filtered texture results over nPoints from a ptexture obtained with AcquireTexture().
RixShadeFunctions provides a general interface containing functions useful for developing patterns fo...
Definition: RixInterfaces.h:667
Definition: RixInterfaces.h:301
RixMessages()
Constructor is for internal use only.
Definition: RixInterfaces.h:270
virtual float CellNoise(float in)=0
Cell Noise.
virtual ~RixMutex()
Virtual destructor.
Definition: RixInterfaces.h:1456
virtual void Register(XcptHandler *)=0
Register your msg handler to receive exceptions and diagnostics produced through the use of the Rix i...
NOTE: This interface is deprecated and will be removed in a future release A class that encapsulates ...
Definition: RixInterfaces.h:1452
Definition: RixInterfaces.h:1270
Id for RixRIB interface.
Definition: RixInterfaces.h:104
RixTexture3d()
constructor for internal use only
Definition: RixInterfaces.h:661
virtual RtFloat3 EvalSpline3(SplineType type, RtFloat3 const knot[], int nknot, float a)=0
Definition: RixInterfaces.h:298
virtual uint64_t SampleTime()=0
Return a high resolution time sample.
virtual RtFloat3 Noise3(float in)=0