RenderMan API  23.0
RixSymbolResolver Class Referenceabstract

#include <RixInterfaces.h>

Inheritance diagram for RixSymbolResolver:
RixInterface

Public Types

enum  SymbolGroup {
  k_PixelFilter = 0, k_Basis = 1, k_Procedural = 2, k_ErrorHandler = 3,
  k_RiEntryPoint = 4
}
 
- 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 ResolvePredefinedStrings (RiPredefinedStrings &ps) const =0
 
virtual void * ResolveSymbol (const char *nm, SymbolGroup group)=0
 
- Public Member Functions inherited from RixInterface
virtual int GetVersion () const
 

Protected Member Functions

 RixSymbolResolver ()
 
- 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...
 

Detailed Description

Definition at line 916 of file RixInterfaces.h.

Member Enumeration Documentation

◆ SymbolGroup

Enumerator
k_PixelFilter 
k_Basis 
k_Procedural 
k_ErrorHandler 
k_RiEntryPoint 

Definition at line 930 of file RixInterfaces.h.

Constructor & Destructor Documentation

◆ RixSymbolResolver()

RixSymbolResolver::RixSymbolResolver ( )
inlineprotected

Definition at line 954 of file RixInterfaces.h.

Member Function Documentation

◆ ResolvePredefinedStrings()

virtual void RixSymbolResolver::ResolvePredefinedStrings ( RiPredefinedStrings ps) const
pure virtual

ResolvePredefinedStrings This is mainly useful by external applications that do not link directly to libprman.so. Applications that DO link directly to libprman.so have strings available to them through the static definitions in the Ri interface (declared just below). However they are provided again here if no direct access to the addresses contained in libprman.so is available (e.g. if libprman is loaded through dlopen). Do not call this function a lot - it copies the symbols each and every time it is called, and there are a great many predefined strings.

◆ ResolveSymbol()

virtual void* RixSymbolResolver::ResolveSymbol ( const char *  nm,
SymbolGroup  group 
)
pure virtual

ResolveSymbol returns a reference to the requested standard Ri symbol excluding tokens. May be useful to ensure that globally procedure references are valid across shared-object boundaries in the case where the RixContext is obtained via RixGetContextViaRMANTREE. Symbol names follow the "C" entry point. So: RiPixelFilter(RiBoxFilter, 2.0, 2.0) becomes: RtFloatFunc boxFilter = rs->ResolveSymbol("RiBoxFilter"); ri->PixelFilter(boxFilter, 2.0, 2.0); Useful to obtain references to standard spline basis functions, error handlers and procedural primitives.


The documentation for this class was generated from the following file: