protected override bool ResolveDependencies() { this.cameraEventHandler = CameraEventHandler.GetCameraEventHandler(this.rendererContextIndex); this.lightEventHandler = LightEventHandler.GetLightEventHandler(this.rendererContextIndex); return(this.cameraEventHandler != null && (this.lightEventHandler != null || !this.DrawInLight)); }
private void OnCameraDisconnected(Camera sender, EventArgs e) { if (this.onCameraDisconnected == null) { this.onCameraDisconnected = this.OnCameraDisconnected; } if (Program.CheckAndInvoke(this.CameraDisconnected, this.onCameraDisconnected, sender, e)) { this.CameraDisconnected(sender, e); } }
public static void RemoveEvent(Camera camera, CameraEventHandler onPostRenderEvent) { if (camera == null) { return; } PreRenderEvent e = camera.GetComponent <PreRenderEvent>(); if (e != null) { e.OnEvent -= onPostRenderEvent; } }
public static void RemoveRenderEvent(Camera camera, CameraEventHandler onPostRenderEvent) { if (camera == null) { return; } RenderEvent renderEvent = camera.GetComponent <RenderEvent>(); if (renderEvent != null) { renderEvent.OnPostRenderEvent -= onPostRenderEvent; } }
public static void RemoveEvent(Camera camera, CameraEventHandler postRenderEvent) { if (camera == null) { throw new System.ArgumentException("Camera not found"); } CameraPostRender cameraPostRender = camera.GetComponent <CameraPostRender>(); if (cameraPostRender == null) { throw new System.ArgumentException("CameraPostRenderComponent not found"); } cameraPostRender.d_event -= postRenderEvent; }
private void glControl1_Load(object sender, EventArgs e) { glControl1.VSync = true; myViewPort = new Viewport(0, 0, glControl1.Width, glControl1.Height); myCamera = new Camera(myViewPort); myCameraEventHandler = new CameraEventHandler(myCamera); myCamera.position = new Vector3(-1, 1, -1); myCamera.lookAt(Vector3.Zero); myParticleSystem = ParticleManager.loadDefinition("../data/particleSystems/ringOfFire.json"); particleSystemPropGrid.SelectedObject = myParticleSystem; updateFeatureCollection(); GL.ClearColor(0.2f, 0.2f, 0.2f, 1.0f); //setup the rendering scene myView = new Graphics.View("Main View", myCamera, myViewPort); Pass p = new Pass("model", "forward-lighting"); p.clearTarget = true; p.filter = new TypeFilter(new List <String>() { "light", "staticModel", "skinnedModel", "particle" }); myView.addPass(p); //create the default font myFont = FontManager.findFont("FREESANS"); //add the view Renderer.views[myView.name] = myView; //add the ground plane //Renderer.renderables.Add(new SimpleModel(SimpleModel.SimpleModelType.TEXURED_PLANE, new Vector3(0f, 0f, 0f), 10.0f, Color4.White)); Renderer.renderables.Add(myParticleSystem); //setup the timer myRenderTimer.Interval = 5; myRenderTimer.Tick += renderTimerElapsed; myRenderTimer.Start(); myIsLoaded = true; }
protected override void Unload() { base.Unload(); if (this.commandBuffer != null) { if (this.cameraEventHandler != null && this.cameraEventHandler.CameraComponent) { this.RemoveCommandBuffer(); } this.commandBuffer.Clear(); this.commandBuffer.Release(); this.commandBuffer = null; } // Here a tricks : a reference to a component that has been destroyed act as null on a comparaison. if (this.cameraEventHandler != null) { this.cameraEventHandler.OnPreCullEvents -= this.OnPreCullEvent; } this.cameraEventHandler = null; this.lightEventHandler = null; }