RixSloInfo Class Reference

#include <RixSloInfo.h>

Inheritance diagram for RixSloInfo:
RixInterface

Public Member Functions

virtual void SetPath (char const *path)=0
 
virtual char const * GetPath ()=0
 
virtual int SetShader (char const *name)=0
 
virtual char const * GetName ()=0
 
virtual SLO_TYPE GetType ()=0
 
virtual int HasMethod (char const *name)=0
 
virtual int GetNArgs ()=0
 
virtual SLO_VISSYMDEF const * GetArgByName (char const *name)=0
 
virtual SLO_VISSYMDEF const * GetArgById (int id)=0
 
virtual SLO_VISSYMDEF const * GetArrayArgElement (SLO_VISSYMDEF const *array, int index)=0
 
virtual void EndShader ()=0
 
virtual char const * TypetoStr (SLO_TYPE type)=0
 
virtual char const * StortoStr (SLO_STORAGE storage)=0
 
virtual char const * DetailtoStr (SLO_DETAIL detail)=0
 
virtual char const * GetMetaData (char const *name)=0
 
virtual char const ** GetMethodNames ()=0
 
virtual char const ** GetAllMetaData ()=0
 
virtual char const ** GetPlugins ()=0
 
virtual void Free (void *)=0
 
virtual SLO_METHOD GetMethodHandle (char const *name)=0
 
virtual int GetNMethodArgs (SLO_METHOD method)=0
 
virtual SLO_VISSYMDEF const * GetMethodArgByName (SLO_METHOD method, char const *name)=0
 
virtual SLO_VISSYMDEF const * GetMethodArgById (SLO_METHOD method, int id)=0
 
virtual SLO_VISSYMDEF const * GetArrayMethodArgElement (SLO_METHOD method, SLO_VISSYMDEF const *array, int index)=0
 
virtual char const ** GetStructNames ()=0
 
virtual SLO_VISSYMDEF const * GetStructByName (char const *name)=0
 
virtual SLO_VISSYMDEF const * GetStructMember (SLO_STRUCTID structid, int member)=0
 
virtual SLO_VISSYMDEF const * GetArrayStructMemberElement (SLO_STRUCTID structid, int member, int index)=0
 
- Public Member Functions inherited from RixInterface
virtual int GetVersion () const
 

Protected Member Functions

 RixSloInfo ()
 Constructor,Destuctor are 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

The RixSloInfo interface is used to inspect compiled shaders (.slo files). It is a thin vaneer atop the traditional slo.h interface intented to hide the symbol references behind the Rix interface wall. This makes it easier for clients to deploy packages that are loosely bound to the implemenation (libprman.so, librix.so) and thus facilitate runtime selection of the implementatiion (often via RMANTREE).

Clients can use dlopen on the implementation, obtain a reference to the RixGetContext entrypoint, then obtain a reference to this RixSloInfo interface as follows:

find the runtime implementation file use dlopen (or equiv) to inspect the runtime use dlsym (or equiv) to get a handle onto RixGetContext invoke RixGetContext to obtain a RixContext * (rctx below) invoke rctx->GetIinterface to obtain a RixSloInfo * (typecast from RixInterface *).

This interface is available in non-rendering contexts.


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