nvxMem (Standard_False),
mySharedResources (new OpenGl_ResourcesMap()),
myDelayed (new OpenGl_DelayReleaseMap()),
- myReleaseQueue (new OpenGl_ResourcesQueue()),
+ myUnusedResources (new OpenGl_ResourcesStack()),
myClippingState (),
myGlLibHandle (NULL),
myFuncs (new OpenGl_GlFunctions()),
{
mySharedResources = theShareCtx->mySharedResources;
myDelayed = theShareCtx->myDelayed;
- myReleaseQueue = theShareCtx->myReleaseQueue;
+ myUnusedResources = theShareCtx->myUnusedResources;
myShaderManager = theShareCtx->myShaderManager;
}
}
// =======================================================================
void OpenGl_Context::DelayedRelease (Handle(OpenGl_Resource)& theResource)
{
- myReleaseQueue->Push (theResource);
+ myUnusedResources->Prepend (theResource);
theResource.Nullify();
}
void OpenGl_Context::ReleaseDelayed()
{
// release queued elements
- while (!myReleaseQueue->IsEmpty())
+ while (!myUnusedResources->IsEmpty())
{
- myReleaseQueue->Front()->Release (this);
- myReleaseQueue->Pop();
+ myUnusedResources->First()->Release (this);
+ myUnusedResources->RemoveFirst();
}
// release delayed shared resources