THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 00:04, xxxxxxxx wrote:
Quote: Originally posted by jane on 11 November 2002
>
> * * *
>
> How can I determine what channel my channel shader plugin has been loaded into? In R7, this was passed in PLUGIN_DATA.
Perhaps this was left out in R8. I couldn't find any other way than this: (Though this should be relatively fast since it's only scanning through at most 13 items.)
LONG GetShaderChannel(PluginShader* s)
{
if (!s) return CHANNEL_ANY;
GeListHead* h = s->GetListHead();
if (!h) return CHANNEL_ANY;
Material* m = static_cast<Material*>(h->GetParent());
if (!m || m->GetType() != Mmaterial) return CHANNEL_ANY;
for (int c = 0; c < MAXCHANNELS; ++c)
{
BaseChannel* chn = m->GetChannel(c);
if (!chn) continue;
if (chn->GetShader() == s)
{
return c;
}
}
return CHANNEL_ANY;
}
I'll ask the programmers...