RixStats Class Reference
#include <RixInterfaces.h>
Classes | |
class | SimpleStat |
Public Types | |
typedef void(* | Reporter )(class RixXmlFile *file) |
typedef void(* | ReporterCtx )(void *ctx, class RixXmlFile *) |
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. | |
Protected Member Functions inherited from RixInterface | |
RixInterface (int version) | |
Interfaces should not be constructed by users. | |
virtual | ~RixInterface () |
Interfaces should not be deleted by users. | |
Additional Inherited Members | |
Protected Attributes inherited from RixInterface | |
int | m_version |
Version number of this interface. | |
Detailed Description
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.
Member Typedef Documentation
typedef void(* RixStats::Reporter)(class RixXmlFile *file) |
A reporting function takes a RixXmlFile and writes to it using WriteXml and WriteText.
Member Function Documentation
|
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 |
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.
The documentation for this class was generated from the following file: