Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/10/2007 at 10:12, xxxxxxxx wrote:
User Information: Cinema 4D Version: 9.6+ Platform: Windows ; Mac OSX ; Language(s) : C++ ;
--------- Hi all,
what's the way to get the AllocateBufferFX?
> _ > nbuffer = render- >AllocateBufferFX(videoBufferStatusAndDepth[rIndex].mult, geResource.LoadString(i), videoBufferStatusAndDepth[rIndex].depth, TRUE); > > nbuffer is ok, because return me incremented number. > > then: > > videoBufferStatusAndDepth[rIndex].vpbuffers = render->GetBuffer(VPBUFFER_POSTEFFECT,nbuffer); > > or > > videoBufferStatusAndDepth[rIndex].vpbuffers = render->GetBuffer(nbuffer,0);_
but still my vpBuffers == 0x000000;
Any help ?
Renato
On 04/10/2007 at 14:58, xxxxxxxx wrote:
Did you add the "Post Effect" Buffer in the multipass settings in cinema 4d? This is necessary, otherwise it will be NULL.
On 04/10/2007 at 16:08, xxxxxxxx wrote:
Yes, i added it and i see all custom buffers added in the picture viewer.. but still i can't get VPBuffers * except the first.
Cheers Renato
On 04/10/2007 at 18:56, xxxxxxxx wrote:
Really i have no chance
> _ > LONG rIndex; > for (bufId = MULTIPASS_ATMOSPHERE; bufId < MULTIPASS_RAWTOTALLIGHT + 1; bufId++) { > > rIndex = bufId - MULTIPASS_ATMOSPHERE; > > if (bc->GetBool(bufId)) { > > LONG postEffectType = videoBufferStatusAndDepth[rIndex].mult; > LONG depth = videoBufferStatusAndDepth[rIndex].depth; > > nbuffer = render->AllocateBufferFX(postEffectType, geResource.LoadString(bufId), depth, TRUE); > videoBufferStatusAndDepth[rIndex].vpbuffers = render->GetBuffer(postEffectType, nbuffer); > videoBufferStatusAndDepth[rIndex].Id = nbuffer; > } > else > videoBufferStatusAndDepth[rIndex].vpbuffers = NULL; > } > _
This Code always return videoBufferStatusAndDepth[rIndex].vpbuffers == NULL
On 05/10/2007 at 01:44, xxxxxxxx wrote:
Are you allocating the buffer in VideoPostData::AllocateBuffers()? And if so, why are you also calling GetBuffer in the same virtual routine? You should call GetBuffer in Execute if I remember correctly. Definetly not inside AllocateBuffers()!
On 05/10/2007 at 03:01, xxxxxxxx wrote:
Hello Kataki,
ok.. this can be ok to me
Because there are no apparent reason to not work.
Trying and notifying you if will work.
Thanks Renato
On 05/10/2007 at 04:37, xxxxxxxx wrote:
who is Kataki? ;-D
On 05/10/2007 at 05:33, xxxxxxxx wrote:
Hello Katachi
still not working. I've allocate buffers in: virtual void AllocateBuffers(PluginVideoPost* node, Render* render, BaseDocument* doc)
and Assigned them to my array in Execute... still 0x00000000
thanks for your suggestion Renato
On 05/10/2007 at 06:46, xxxxxxxx wrote:
Hmm, it should work. Here is some code that should get you going. I think it´s maybe that you try to get it either too early (or maybe too late...I cannot really remember, this is old code) :
> _VPBuffer *buf; > LONG bid; > > void DurationMap::AllocateBuffers(PluginVideoPost *node, Render *render, BaseDocument *doc) > { > bid = render->AllocateBufferFX(VPBUFFER_POSTEFFECT, "Duration Map", 8, TRUE); > } > > LONG DurationMap::Execute(PluginVideoPost *node, VideoPostStruct *vps) > { > if (vps->vp==VP_FRAME && vps->open && !vps->editor_render) > { > buf = vps->render->GetBuffer(VPBUFFER_POSTEFFECT,bid); > if(buf) > { > //Do something with Buffer... > } > } > return RAY_OK; > } > _
On 05/10/2007 at 09:11, xxxxxxxx wrote:
Thanks Katachi,
now it's working in VP_FRAME
Thanks a lot Renato
On 05/10/2007 at 09:54, xxxxxxxx wrote:
You´re welcome