thank you for reaching out to us. Well, that depends. First, I assume that you actually defined INSTANCEOF(MyShaderData, ShaderData) in your
MyShader for the
SUPER attribute to actually compile/work. Secondly, that call should call
ShaderData and not
NodeData, unless you did declare your
MyShader to be an instance of
NodeData in the macro (which IMHO should not compile in the first place). Lastly, to why this actually happens. I would have to try myself (once you confirmed that the other cases all do not apply), but there are basically three options:
(1) Your qualifier 'always' in the statement 'the following code always returns false' is imprecise. It is quite normal that scene elements do not have always access to their description, which is why one should implement
GetDDescription always like this (see SDK for examples):
Bool MyNode::GetDDescription(GeListNode* node, Description* description, DESCFLAGS_DESC& flags)
Later on in the life cycle of the node, one will be then able to load that description. Or in other words, it is quite normal that some
GetDDescription calls do fail. Can you confirm that this does indeed always happen in your case?
ShaderData has itself no base description. I.e., there is nothing to load and modify. Seems unlikely to me since there is
Xbase which should kick in when an implementing entity somehow manages to screw up its description.
(3) There is a bug in
edit: Okay, I had a super-brief look, and from what I can see, ShaderData does indeed not seem to implement
GetDDescription in any form. Which would then mean that your calls do always end up here:
So, calling the base implementation of a shader for (no, bad Ferdinand, bad, very bad :P )
GetDDescription seems kind of pointless.