protected SceneManager(IntPtr ogreSceneManager)
 {
     this.ogreSceneManager = ogreSceneManager;
     renderQueue           = new RenderQueue(SceneManager_getRenderQueue(ogreSceneManager));
     sceneListener         = new ManagedSceneListener(this);
     SceneManager_addSceneListener(ogreSceneManager, sceneListener.NativeSceneListener);
     rootNode = SceneNode.getManagedNode(SceneManager_getRootSceneNode(ogreSceneManager));
     managedRenderQueueListener = new ManagedRenderQueueListener(this);
 }
 public IntPtr create(ManagedRenderQueueListener obj)
 {
     handle = GCHandle.Alloc(obj);
     return(NativeRenderQueue_Create(preRenderQueuesCallback, postRenderQueuesCallback, renderQueueStartedCallback, renderQueueEndedCallback, GCHandle.ToIntPtr(handle)));
 }