void SceneItem::SetRender(bool render) { element->SetInt(TEXT("render"), (int)((render)?1:0)); bRender = render; CTSTR lpClass = element->GetString(TEXT("class")); if (bRender) { if (!lpClass) { AppWarning(TEXT("No class for source '%s' in scene '%s'"), element->GetName(), API->GetSceneElement()->GetName()); } else { XElement *data = element->GetElement(TEXT("data")); source = API->CreateImageSource(lpClass, data); if(!source) { AppWarning(TEXT("Could not create image source '%s' in scene '%s'"), element->GetName(), API->GetSceneElement()->GetName()); } else { API->EnterSceneMutex(); if (parent && parent->bSceneStarted) { source->BeginScene(); if(scmp(lpClass, L"GlobalSource") == 0) source->GlobalSourceEnterScene(); } API->LeaveSceneMutex(); } } } else { if (source) { API->EnterSceneMutex(); ImageSource *src = source; source = NULL; if(scmp(lpClass, L"GlobalSource") == 0) src->GlobalSourceLeaveScene(); if (parent && parent->bSceneStarted) src->EndScene(); delete src; API->LeaveSceneMutex(); } } }