RenderMan API  23.0
RixProjectionFactory Class Referenceabstract

#include <RixProjection.h>

Inheritance diagram for RixProjectionFactory:
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 RixProjectionCreateProjection (RixContext &ctx, RtUString const handle, RixParameterList const *pList)=0
 
virtual void DestroyProjection (RixProjection const *projection)=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

 RixProjectionFactory ()
 
virtual ~RixProjectionFactory ()
 
- 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 163 of file RixProjection.h.

Constructor & Destructor Documentation

◆ RixProjectionFactory()

RixProjectionFactory::RixProjectionFactory ( )
inlineprotected

Definition at line 200 of file RixProjection.h.

◆ ~RixProjectionFactory()

virtual RixProjectionFactory::~RixProjectionFactory ( )
inlineprotectedvirtual

Definition at line 201 of file RixProjection.h.

Member Function Documentation

◆ CreateInstanceData()

virtual void RixProjectionFactory::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 170 of file RixProjection.h.

◆ CreateProjection()

virtual RixProjection* RixProjectionFactory::CreateProjection ( RixContext ctx,
RtUString const  handle,
RixParameterList const *  pList 
)
pure virtual

◆ DestroyProjection()

virtual void RixProjectionFactory::DestroyProjection ( RixProjection const *  projection)
pure virtual

◆ GetInterface()

virtual int RixProjectionFactory::GetInterface ( ) const
inlineoverridevirtual

Reimplemented from RixShadingPlugin.

Definition at line 166 of file RixProjection.h.

◆ SynchronizeInstanceData()

virtual void RixProjectionFactory::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 180 of file RixProjection.h.


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