38 #ifndef RixInterfaces_h 39 #define RixInterfaces_h 196 virtual void HandleXcpt(
int code,
int severity,
const char* msg) = 0;
197 virtual void HandleExitRequest(
int code) = 0;
213 virtual void SetBuiltinHandler(
RtUString name) = 0;
228 virtual uint32_t XXHash32(
void const* input,
size_t size,
unsigned seed)=0;
231 virtual uint64_t XXHash64(
void const* input,
size_t size,
unsigned seed)=0;
249 virtual void Error(
const char* format, ...) = 0;
252 virtual void ErrorAlways(
const char* format, ...) = 0;
255 virtual void Warning(
const char* format, ...) = 0;
258 virtual void WarningAlways(
const char* format, ...) = 0;
261 virtual void Info(
const char* format, ...) = 0;
264 virtual void InfoAlways(
const char* format, ...) = 0;
326 pixelAspectRatio(0.0f),
421 virtual int AcquireTexture(
429 virtual int AcquireTexturePart(
436 virtual int ReleaseTexture(
TxProperties const& txProperties) = 0;
457 float const* stRadius,
459 int* runFlags = NULL) = 0;
465 float const* stRadius,
467 int* runFlags = NULL) = 0;
488 virtual int TextureDerivatives(
502 int* runFlags = NULL) = 0;
503 virtual int TextureDerivatives(
517 int* runFlags = NULL) = 0;
535 virtual int Ptexture(
543 int* runFlags = NULL) = 0;
567 virtual int PtextureDerivatives(
579 int* runFlags = NULL) = 0;
585 virtual int TextureData(
592 virtual int GetProperty(
621 virtual const ErrType* GetLastError() = 0;
633 virtual int RxTexture3dV(
634 char const* filename,
648 virtual int RxTexture3d(
649 char const* filename,
667 virtual float Noise(
float in) = 0;
668 virtual float Noise(
RtFloat2 const& in) = 0;
669 virtual float Noise(
RtFloat3 const& in) = 0;
670 virtual float Noise(
RtFloat3 const& in,
float inF) = 0;
672 virtual RtFloat3 Noise3(
float in) = 0;
678 virtual float PNoise(
float in,
float period) = 0;
681 virtual float PNoise(
687 virtual RtFloat3 PNoise3(
float in,
float period) = 0;
697 virtual float CellNoise(
float in) = 0;
698 virtual float CellNoise(
RtFloat2 const& in) = 0;
699 virtual float CellNoise(
RtFloat3 const& in) = 0;
700 virtual float CellNoise(
RtFloat3 const& in,
float inF) = 0;
702 virtual RtFloat3 CellNoise3(
float in) = 0;
717 virtual float SolveSpline(
722 virtual float EvalSpline(
747 virtual int TransformPoints(
761 virtual int TransformMatrix(
820 virtual int GetFrameInfo(
FrameInfo*) = 0;
831 virtual int GetDspyInfo(
int dspyId,
DspyInfo*) = 0;
839 k_siNumShadingIntents
868 virtual int GetOption(
873 int* resultCount) = 0;
875 virtual int GetAttribute(
880 int* resultCount) = 0;
893 virtual int GetRIBFileContext(
int* linenumber,
char** filename) = 0;
910 virtual int GetRIBArchive(
RtUString const filename,
const char** archive) = 0;
951 virtual void* ResolveSymbol(
const char* nm,
SymbolGroup group) = 0;
966 virtual void Clear() = 0;
967 virtual void Flush() = 0;
984 virtual int GetLpeIdByName(
989 unsigned char lobeId,
990 char const* name)
const = 0;
995 virtual int GetNumPotentialDiffuseLobes()
const = 0;
996 virtual int GetNumPotentialSpecularLobes()
const = 0;
997 virtual int GetNumPotentialUserLobes()
const = 0;
1013 bool firstContribution);
1021 virtual int LookupLPE(
char const* lpeExpr) = 0;
1025 virtual int LookupLPEByName(
char const* lpeName) = 0;
1033 virtual bool MatchesLPE(
1046 virtual void RegisterScatterCallback(
1048 void* userData = NULL) = 0;
1055 virtual void InvokeScatterCallbacks(
1061 bool firstContribution) = 0;
1079 virtual void WriteXml(
const char* format, ...) = 0;
1083 virtual void WriteText(
const char* format, ...) = 0;
1089 void WriteStat(
char const* name,
char const* desc,
int value)
1091 WriteXml(
"<int name=\"%s\"", name);
1093 WriteXml(
" description=\"%s\"", desc);
1094 WriteXml(
"> %i </int>\n", value);
1097 void WriteStat(
char const* name,
char const* desc, uint64_t value)
1099 WriteXml(
"<int name=\"%s\"", name);
1101 WriteXml(
" description=\"%s\"", desc);
1102 WriteXml(
"> %llu </int>\n", value);
1105 void WriteStat(
char const* name,
char const* desc,
float value)
1107 WriteXml(
"<float name=\"%s\"", name);
1109 WriteXml(
" description=\"%s\"", desc);
1110 WriteXml(
"> %f </float>\n", value);
1113 void WriteStat(
char const* name,
char const* desc,
char const* value)
1115 WriteXml(
"<string name=\"%s\"", name);
1117 WriteXml(
" description=\"%s\"", desc);
1118 WriteXml(
"> %s </string>\n", value);
1121 void WriteTime(
char const* name,
char const* desc,
float time)
1123 WriteXml(
"<timer name=\"%s\"", name);
1125 WriteXml(
" description=\"%s\"", desc);
1126 WriteXml(
"><elapsed>%f</elapsed></timer>\n", time);
1146 virtual uint64_t SampleTime() = 0;
1148 virtual float ConvertIntervalToSeconds(uint64_t interval) = 0;
1179 virtual void AddTimerStat(
1182 const char* description) = 0;
1203 virtual void Reset() = 0;
1204 virtual const char* GetName() = 0;
1205 virtual const char* GetDescription() = 0;
1206 virtual void GetResults(uint64_t* result,
Fmt* fmt) = 0;
1216 virtual void AddMemoryStat(
1219 const char* description) = 0;
1243 virtual void AddReporter(Reporter func) = 0;
1244 virtual void AddReporterCtx(ReporterCtx func,
void* ctx) = 0;
1251 virtual void AddFileLogStat(
const char* fileName,
const char* path) = 0;
1275 virtual char const* GetResourcePaths(
ResourceType) = 0;
1288 virtual int ResolveResource(
1367 virtual void* Get(
const RtUString key) = 0;
1379 virtual void Clear(
const RtUString key) = 0;
1382 virtual void Lock() = 0;
1385 virtual void Unlock() = 0;
1397 template<
typename _Signature>
1400 template <
typename _Res,
typename... _ArgTypes>
1404 struct FunctionPrototype
1406 virtual ~FunctionPrototype() {}
1407 virtual _Res operator()(_ArgTypes... __args)
const = 0;
1411 template<
typename Closure >
1412 struct Function : FunctionPrototype
1414 Function(Closure&& t ) : fn(t) {}
1415 virtual ~Function() {}
1416 virtual _Res operator()(_ArgTypes... __args)
const 1417 {
return fn(__args...); }
1421 FunctionPrototype* object;
1425 template<
typename Closure >
1427 : object( new Function<Closure>( std::move(obj) ) )
1435 return (*
object)(__args...);
1455 virtual void Lock() = 0;
1458 virtual void Unlock() = 0;
1469 virtual RixMutex* NewMutex()
const = 0;
1472 virtual void DeleteMutex(
RixMutex *mutex)
const = 0;
1497 virtual void ParallelFor(
size_t start,
size_t end,
1499 virtual void ParallelFor(
size_t start,
size_t end,
size_t step,
1509 #endif // RIX_INTERFACE_H
t_displayStyle displayStyle
pxrcore::ColorRGB RtColorRGB
Id for RixRenderState interface.
Custom proceudral geometry.
RixTexture3d()
constructor for internal use only
RixStorage()
Constructor is for internal use only.
An interface to lookup and match custom light path expressions (LPEs).
Id for per-thread RixStorage interface.
Id for RixThreadUtils interface.
Id for shader file query interface.
RixTexture()
constructor for internal use only
_Res operator()(_ArgTypes... __args) const
void WriteStat(char const *name, char const *desc, int value)
Id for New Texture-2D interface.
Id for Shade functions interface.
Id for RixStats interface.
FilterType
Filter selection.
Id for geometric debugger interface.
RixShadeFunctions()
constructor for internal use only
Id for RixDspy interface.
void(* RixLPECallback)(void *userData, RixLPEState *lpeState, RixShadingContext const *sCtx, int sCtxIndex, RtColorRGB const &thruput, RtColorRGB const *lightTrans, bool firstContribution)
virtual int GetVersion() const
Id for local RixStorage interface.
void WriteTime(char const *name, char const *desc, float time)
virtual ~RixXmlFile()
Virtual destructor.
Id for SymbolResolver interface.
Id for per session RixStorage interface.
Id for RixDeepTexture interface.
void(* RixCleanupFunc)(RixContext *context, void *data)
A cleanup function can be associated with data in RixStorage.
SplineType
Spline solver and evaluator.
RixStats()
Constructor is for internal use only.
An interface for discovering the current state of the renderer.
void WriteStat(char const *name, char const *desc, float value)
void WriteStat(char const *name, char const *desc, uint64_t value)
RixMessages()
Constructor is for internal use only.
virtual ~RixInterface()
Interfaces should not be deleted by users.
Id for Transformation interface.
Id for RenderMan scene graph interface.
Id for RenderMan event callbacks interface.
Id for RixLPEInfo interface.
Id for global (per frame) RixStorage interface.
pxrcore::UString RtUString
Id for RixTimer interface.
RixHashUtils()
constructor for internal use only
Id for RIB Parser interface.
Id for RixHashUtils interface to UtHash.
virtual ~RixContext()
Destructor is for internal use only.
pxrcore::Matrix4x4 RtMatrix4x4
TODO: implement a new Texture-3D interface.
Id for RixMessages interface.
RixInterfaceId
Identifiers for Rix interfaces.
int m_version
Version number of this interface.
Id for ResourceResolver interface.
virtual ~RixMutex()
Virtual destructor.
class RixIntegratorEnvironment const * integratorEnv
TxProperties()
Create TxProperties with initial defaults.
RixThreadUtils()
Constructor is for internal use only.
RixInterface(int version)
Interfaces should not be constructed by users.
Id for interface to exception handling.
Id for RixCustomLPE interface.
RixFunction(Closure &&obj)
Template constructor for Lambda capture.
unsigned char * channelTypes
TxParams()
Create TxParams with initial defaults.
void WriteStat(char const *name, char const *desc, char const *value)