MultipassObject Allocation
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 20/05/2011 at 12:44, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 12
Platform: Windows ; Mac ;
Language(s) : C++ ;---------
Hey Everyone,
How can one go about inserting a new Multipass layer (i.e VPBUFFER_OBJECTBUFFER) into the RenderData? The RenderData has a method InsertMultipass which takes a MultipassObject*, but the MultipassObject has no allocation methods. So essentially I am asking how can I allocate a MultipassObject*.I've tried using BaseList2D::Alloc(VPBUFFER_OBJECTBUFFER) and casting the resulting pointer to a MultipassObject to no avail.
Thanks in advance,
Josh -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/05/2011 at 02:18, xxxxxxxx wrote:
A multipass is allocted and inserted like this:
RenderData *rd = doc->GetActiveRenderData(); MultipassObject *mpo = NULL; mpo = (MultipassObject* )MultipassObject::Alloc(Zmultipass); if (!mpo) return FALSE; BaseContainer *data = mpo->GetDataInstance(); data->SetLong(MULTIPASSOBJECT_TYPE, VPBUFFER_RGBA); doc->StartUndo(); rd->InsertMultipass(mpo, NULL); doc->AddUndo(UNDOTYPE_NEW, mpo); doc->EndUndo(); rd->Message(MSG_UPDATE); EventAdd();
I will include this into the docs.
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/05/2011 at 08:58, xxxxxxxx wrote:
Mattias,
Could you please consider adding this line of code in your docs example as well:
rd->SetParameter(RDATA_MULTIPASS_ENABLE, 1, DESCFLAGS_SET_0); // Enable the multi pass option
That way people reading that SDK will also know how to enable it too.
Just a friendly suggestion ,
-ScottA -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/05/2011 at 10:15, xxxxxxxx wrote:
Thanks Matthias! That is exactly what I needed to know.
Regards,
Josh