SetActiveRenderData

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 21/05/2008 at 19:29, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   10.111 
Platform:      
Language(s) :     C++  ;

---------
I'm trying to set up a list of render data, but when I try to set that data, there's no change in the document. Hoping someone here can tell me what I'm doing wrong.

BaseDocument* doc = GetActiveDocument();
RenderData* rd = doc->GetActiveRenderData();

AutoAlloc<RenderData> newRD;
if(!newRD) return FALSE;
newRD->SetName("test");
BaseContainer* bctest = newRD->GetDataInstance();
//Test setting one element
bctest->SetLong(RDATA_XRES, 320);
doc->InsertRenderData(newRD, rd);
doc->SetActiveRenderData(newRD);

//Confirming newRD is set as active data
GePrint("Active render data is: " + doc->GetActiveRenderData()->GetName());
GePrint("Xres: " + LongToString(doc->GetActiveRenderData()->GetData().GetLong(RDATA_XRES)));

Console output confirms that active render data has been changed, but the render settings window does not change, and a test renders with the old settings.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 21/05/2008 at 19:49, xxxxxxxx wrote:

AutoAlloc'ing a class instance and then inserting into a list is probably not a good idea. AutoAlloc automatically frees the instance when the AutoAlloc goes out of scope. Try this instead and see if there is a difference:

RenderData* newRD = RenderData::Alloc();

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 21/05/2008 at 20:26, xxxxxxxx wrote:

Genius 🙂

Thanks!