RenderMan API
23.0
|
#include <RixInterfaces.h>
Classes | |
class | SimpleStat |
Public Types | |
typedef void(* | Reporter) (class RixXmlFile *file) |
typedef void(* | ReporterCtx) (void *ctx, class RixXmlFile *) |
Public Types inherited from RixInterface | |
enum | Type { k_Float, k_Integer, k_StringV, k_Color, k_Normal, k_Vector, k_Point, k_HPoint, k_MPoint, k_Matrix } |
Public Member Functions | |
virtual void | AddTimerStat (float *seconds, const char *name, const char *description)=0 |
virtual int | AddSimpleStat (SimpleStat *)=0 |
virtual void | AddMemoryStat (size_t *bytes, const char *name, const char *description)=0 |
virtual void | AddReporter (Reporter func)=0 |
virtual void | AddReporterCtx (ReporterCtx func, void *ctx)=0 |
virtual void | AddFileLogStat (const char *fileName, const char *path)=0 |
Public Member Functions inherited from RixInterface | |
virtual int | GetVersion () const |
Protected Member Functions | |
RixStats () | |
Constructor is for internal use only. More... | |
Protected Member Functions inherited from RixInterface | |
RixInterface (int version) | |
Interfaces should not be constructed by users. More... | |
virtual | ~RixInterface () |
Interfaces should not be deleted by users. More... | |
Additional Inherited Members | |
Protected Attributes inherited from RixInterface | |
int | m_version |
Version number of this interface. More... | |
NOTE: This interface will be deprecated when a new interface comes in the next release Interface for including user statistics in XML file. Thread safe.
Plugins can report elapsed time and peak memory usage statistics via AddTimerStat and AddMemoryStat. Other user-defined statistics can be reported via AddReporter. If statistics are enabled, plugin statistics are reported at the end of each frame, after the built-in statistics are reported.
Note that shader plugins must take care to ensure thread safety when recording statistics in global variables. Controlling access with a mutex is straightforward. Alternatively, statistics can be recorded in per-thread data and then combined at the end of a frame. See the RSL Plugin application note or the reference documentation for RslContext::SetThreadData for more information.
Definition at line 1170 of file RixInterfaces.h.
typedef void(* RixStats::Reporter) (class RixXmlFile *file) |
A reporting function takes a RixXmlFile and writes to it using WriteXml and WriteText.
Definition at line 1223 of file RixInterfaces.h.
typedef void(* RixStats::ReporterCtx) (void *ctx, class RixXmlFile *) |
Definition at line 1224 of file RixInterfaces.h.
|
inlineprotected |
Constructor is for internal use only.
Definition at line 1255 of file RixInterfaces.h.
|
pure virtual |
Add a file to the fileLog statistic. This filename will be copied and reported alongside all the other files in the fileLog. By convention // is used to distinguish the search path from the absolute path of the filename being logged.
|
pure virtual |
Add a memory statistic, which is simply a pointer to a size_t into which the plugin has accumulated memory usage information (in bytes). The name must be a valid XML token; the description may be empty. A duplicate call with the same name as a previously added statistic is ignored (a warning is generated if a different pointer is specified). The name and description are copied.
|
pure virtual |
Register a statistics reporter, which is called at the end of each frame after built-in statistics are reported (if statistics are enabled). Duplicate calls with the same reporter are ignored. Here is an example of a simple reporting function:
|
pure virtual |
|
pure virtual |
|
pure virtual |
Add a timer statistic, which is simply a pointer to a float into which the plugin has accumulated timing information (in seconds). The name must be a valid XML token; the description may be empty. A duplicate call with the same name as a previously added statistic is ignored (a warning is generated if a different pointer is specified). The name and description are copied.