RenderManAPI  24.0
RixSymbolResolver Class Referenceabstract

#include <RixInterfaces.h>

Inherits RixInterface.

Public Types

enum  SymbolGroup {
  k_PixelFilter = 0, k_Basis = 1, k_Procedural = 2, k_ErrorHandler = 3,
  k_RiEntryPoint = 4
}
 
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
 ResolvePredefinedStrings This is mainly useful by external applications that do not link directly to libprman.so. More...
 
virtual void * ResolveSymbol (const char *nm, SymbolGroup group)=0
 ResolveSymbol returns a reference to the requested standard Ri symbol excluding tokens. More...
 
virtual int GetVersion () const
 Get the version number of this interface. More...
 

Protected Member Functions

 RixSymbolResolver ()
 

Protected Attributes

int m_version
 Version number of this interface. More...
 

Member Enumeration Documentation

◆ SymbolGroup

Enumerator
k_PixelFilter 
k_Basis 
k_Procedural 
k_ErrorHandler 
k_RiEntryPoint 

◆ Type

enum RixInterface::Type
inherited
Enumerator
k_Float 
k_Integer 
k_StringV 
k_Color 
k_Normal 
k_Vector 
k_Point 
k_HPoint 
k_MPoint 
k_Matrix 

Constructor & Destructor Documentation

◆ RixSymbolResolver()

RixSymbolResolver::RixSymbolResolver ( )
inlineprotected

Member Function Documentation

◆ GetVersion()

virtual int RixInterface::GetVersion ( ) const
inlinevirtualinherited

Get the version number of this interface.

Different interfaces might have different version numbers in a given release.

References RixInterface::m_version.

◆ 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.

Member Data Documentation

◆ m_version

int RixInterface::m_version
protectedinherited

Version number of this interface.

Referenced by RixInterface::GetVersion().


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