I use REAL in Description Resource files.
But in NodeData's Interface, this value cannot be set with high precision such as 0.0000001.
Is there anything I can do to fix this ?
Thank you very much for your time.
Here is the error:
error C2679: binary '=': no operator found which takes a right-hand operand of type 'maxon::ResultMemTmaxon::ConditionVariableRef' (or there is no acceptable conversion)
note: could be 'maxon::ConditionVariableInterface::Reference &maxon::ConditionVariableInterface::Reference::operator =(const maxon::ConditionVariableInterface::Reference &)'
note: or 'maxon::ConditionVariableInterface::Reference &maxon::ConditionVariableInterface::Reference::operator =(maxon::ConditionVariableInterface::Reference &&)
I have used it exactly as in ConditionVariable manual, but the thread is C4DThread instead of maxon::ThreadInterfaceTemplate<ExampleThread>.
Hello and thank you very much for the help.
It appears that I cannot use it in a custom thread that inherits C4DThread.
I have a private member maxon::ConditionVariableRef, but the following call fails compilation:
condition = maxon::ConditionVariableRef::Create();
Do I have to use it only in a thread inheriting maxon::ThreadInterfaceTemplate<ExampleThread> ?
Thank you very much for your clarification on this.
I have a button in MaterialData that saves the material in a specific format in the disk.
I doesn't change anything in the material but the MSG_UPDATE is sent anyway.
So, since I don't want to run the MSG_UPDATE handler, I have to set a flag to true in order to skip it.
When I press a button in MaterialData, the message MSG_DESCRIPTION_COMMAND is sent.
After that I always receive a MSG_UPDATE as well.
Is there anything I should do to avoid that ?
After handling the button callback, I return TRUE.
I made come changes and it works now.
It appears that I was handling VPBuffers incorrectly.
Just to be sure, we allocate the buffers using AllocateBuffer and they are deallocated automatically correct ?
When does the deallocation take place ?
Thank you for your time !
I've got two problems regarding the generating of object buffers in picture viewer for my VideoPostData.
1) I create a scene with object buffers enabled and I allocate them in my VideoPostData using
render->AllocateBuffer(VPBUFFER_MAT_NORMAL, 0, 8, true);
render->AllocateBuffer(VPBUFFER_SHADOW, 0, 8, true);
render->AllocateBuffer(VPBUFFER_OBJECTBUFFER, 1, 8, true);
render->AllocateBuffer(VPBUFFER_OBJECTBUFFER, 2, 8, true);
The first time I render the scene, everything appears great, but if I render again without changing anything, the object buffers appear black.
2) SetLine require differnt format in their void* data depending on their VPBUFFER_.
For example, if I use VPBUFFER_OBJECTBUFFER, it requires a greyscale buffer. For instance, if the image is 16 x 16, each line (void data) has to be 16 bytes.
If I SetLine to VPBUFFER_RGBA, each line has to be 16 * 4 bytes. Is this how it is supposed to be ?
Thank you very much for your time !
MATPREVIEW_PREPARE_SCENE is not triggered at all.
In the ideal scenario, I need the original node, but if that's not possible I could use the original document.
Thank you for your time !
Once I finish the rendering of an image, I need to retrieve some data from my render engine. These data are produced in a mid-rendering or in a post-rendering state. The ideal position to request the data from my render engine is in Videopost's Execute method, where I update the Picture Viewer image.
Thank you for your support !
I have a group which I want to flush and re-add the components in it.
I have to do that in a VideoPostData's ::Execute(....) method but since this runs in a non-main threaded, the dialog doesn't change.
How can I do that ?
Thank you for your time.
I have implemented a MaterialData plugin in which I draw my own preview listening to MATPREVIEW_GENERATE_IMAGE.
To do that, I use the GeListNode* node parameter passed in Message(....), which in this case is the currently selected material.
To produce the preview, I need to parse the material's parameters and transfer the material into my engine, which produces a preview image.
If a parameter uses a bitmap shader, I am going to need that image.
I get the image path using GenerateTexturePath. As first parameter in this function I pass the document's path.
The problem is that the document in MATPREVIEW_GENERATE_IMAGE is the sphere.c4d in resource\modules\xtensions\preview_scenes.
The result of this is that GenerateTexturePath returns false.
So basically, MATPREVIEW_GENERATE_IMAGE forces me to use a GeListNode and a document that I don't need.
Can I switch this functionality to use the real node and document file ? (othewise my preview generation cannot find the requested images in Bitmap Shaders).