RixSloInfo Class Reference
#include <RixSloInfo.h>
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: