public void Dispose()
 {
     managedRenderQueueListener.Dispose();
     SceneManager_removeSceneListener(ogreSceneManager, sceneListener.NativeSceneListener);
     sceneListener.Dispose();
     cameras.Dispose();
     lights.Dispose();
     entities.Dispose();
     manualObjects.Dispose();
     staticGeometries.Dispose();
     SceneNode.destroyManagedNode(rootNode);
     renderQueue.Dispose();
     ogreSceneManager = IntPtr.Zero;
 }