Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
class MyIntegratorFactory : public RixIntegratorFactory
{
public:
    virtual RixSCParamInfo const* GetParamTable() override;

    virtual void Synchronize(RixContext&, RixSCSyncMsg, RixParameterList const*) override
    {}

    virtual int Init(RixContext& ctx, RtUString const) override
    {
        return 0;
    };
    virtual void Finalize(RixContext&) override{};

    virtual RixIntegrator* CreateIntegrator(RixContext& rixCtx, RtUString const handle,
                                            RixParameterList const* pList) override;
    virtual void DestroyIntegrator(RixIntegrator const* integrator) override;
};


RixIntegrator* MyIntegratorFactory::CreateIntegrator(RixContext& rixCtx, RtUString const handle,
                                                      RixParameterList const* pList)
{
    PIXAR_ARGUSED(handle);
    PIXAR_ARGUSED(pList);
    return new MyIntegrator(this, rixCtx);
}

void MyIntegratorFactory::DestroyIntegrator(RixIntegrator const* integrator)
{
    delete static_cast<MyIntegrator const*>(integrator);
}

And replace the existing RIX_INTEGRATORCREATE and  and RIX_INTEGRATORDELETE by  by the following:

Code Block
RIX_INTEGRATORFACTORYCREATE
{
    PIXAR_ARGUSED(hint);
    return new MyIntegratorFactory();
}

RIX_INTEGRATORFACTORYDESTROY
{
    delete ((MyIntegratorFactory*)factory);
}

...