RenderMan API  23.0
RixIntegratorFactory Class Referenceabstract

#include <RixIntegrator.h>

Inheritance diagram for RixIntegratorFactory:
RixShadingPlugin

Public Member Functions

virtual int GetInterface () const override
 
virtual void CreateInstanceData (RixContext &rixCtx, RtUString const handle, RixParameterList const *instanceParams, InstanceData *instanceData) override final
 
virtual void SynchronizeInstanceData (RixContext &rixCtx, RtUString const handle, RixParameterList const *instanceParams, uint32_t const editHints, InstanceData *instanceData) override final
 
virtual RixIntegratorCreateIntegrator (RixContext &rCtx, RtUString const handle, RixParameterList const *pList)=0
 
virtual void DestroyIntegrator (RixIntegrator const *integrator)=0
 
- Public Member Functions inherited from RixShadingPlugin
virtual int GetVersion () const
 
virtual int Init (RixContext &ctx, RtUString const pluginPath)=0
 
virtual void Finalize (RixContext &ctx)=0
 
virtual RixSCParamInfo const * GetParamTable ()=0
 
virtual void Synchronize (RixContext &ctx, RixSCSyncMsg syncMsg, RixParameterList const *syncParams)=0
 

Protected Member Functions

 RixIntegratorFactory ()
 
virtual ~RixIntegratorFactory ()
 
- Protected Member Functions inherited from RixShadingPlugin
 RixShadingPlugin (int version)
 
virtual ~RixShadingPlugin ()
 

Additional Inherited Members

- Public Types inherited from RixShadingPlugin
enum  SynchronizeHints { k_None = 0x00000000, k_All = 0xFFFFFFFF }
 
- Protected Attributes inherited from RixShadingPlugin
int m_version
 

Detailed Description

Definition at line 1100 of file RixIntegrator.h.

Constructor & Destructor Documentation

◆ RixIntegratorFactory()

RixIntegratorFactory::RixIntegratorFactory ( )
inlineprotected

Definition at line 1138 of file RixIntegrator.h.

◆ ~RixIntegratorFactory()

virtual RixIntegratorFactory::~RixIntegratorFactory ( )
inlineprotectedvirtual

Definition at line 1140 of file RixIntegrator.h.

Member Function Documentation

◆ CreateInstanceData()

virtual void RixIntegratorFactory::CreateInstanceData ( RixContext rixCtx,
RtUString const  handle,
RixParameterList const *  parameterList,
InstanceData instanceData 
)
inlinefinaloverridevirtual

CreateInstanceData() is called once per plugin-instance. It may be called before other renderer options and/or plugins have been set-up. As a consequence, some quantities may not be accessible in CreateInstanceData(). For example:

  • LPE-related quantities
  • Display-related quantities (e.g. resolution)
  • editable options SynchronizeInstanceData() should be used to retrieve the up-to-date related quantities.

Reimplemented from RixShadingPlugin.

Definition at line 1110 of file RixIntegrator.h.

◆ CreateIntegrator()

virtual RixIntegrator* RixIntegratorFactory::CreateIntegrator ( RixContext rCtx,
RtUString const  handle,
RixParameterList const *  pList 
)
pure virtual

◆ DestroyIntegrator()

virtual void RixIntegratorFactory::DestroyIntegrator ( RixIntegrator const *  integrator)
pure virtual

◆ GetInterface()

virtual int RixIntegratorFactory::GetInterface ( ) const
inlineoverridevirtual

Reimplemented from RixShadingPlugin.

Definition at line 1103 of file RixIntegrator.h.

◆ SynchronizeInstanceData()

virtual void RixIntegratorFactory::SynchronizeInstanceData ( RixContext rixCtx,
RtUString const  handle,
RixParameterList const *  instanceParams,
uint32_t const  editHints,
InstanceData instanceData 
)
inlinefinaloverridevirtual

SynchronizeInstanceData() will only be called if InstanceData::synchronizeHints was set to a non-zero value during the initial call to CreateInstanceData(). This method is allowed to modify:

  • data (including freeing the previous pointer and allocating new memory)
  • datalen
  • freefunc
  • synchronizeHints

However, it is not currently possible to modify:

  • paramtable

Note that special care should be taken when modifying synchronizeHints, so that the plugin instance doesn't lock itself out of synchronization notifications.

Reimplemented from RixShadingPlugin.

Definition at line 1120 of file RixIntegrator.h.


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