Wednesday, April 01, 2009

Shader DSO Global Storage

RixStorage* storage = rslContext->GetGlobalStorage();

This is global across all plugins ! So two plugins using the same string key in

void* myglobal = storage->Get( *inArg );

will behave differently to one plugin. I.e. to the second of the two plugins, it will appear that the string was already encountered by this function, when in fact it was not. Use the thread storage in that case, but remember the locking to make it threadsafe has an speed penalty.