/// <summary> /// The render. /// </summary> /// <remarks></remarks> private void Render() { if (pause) { return; } device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); device.BeginScene(); cam.move(); SetupMatrices(); MoveSpawnsWithKeyboard(); device.RenderState.FillMode = FillMode.WireFrame; device.Material = DefaultMaterial; device.RenderState.Lighting = true; device.RenderState.CullMode = Cull.None; render.device.SetTexture(0, null); render.device.RenderState.AlphaBlendEnable = true; render.device.RenderState.AlphaTestEnable = true; render.device.RenderState.DestinationBlend = Blend.DestinationAlpha; render.device.RenderState.SourceBlend = Blend.SourceAlpha; device.Transform.World = Matrix.Identity; //Raw.ParsedModel.DisplayedInfo.Draw(ref device, ref bsp.SkyBox); dxcoll.Draw(ref device); if (currentMode == editingModes.Point) { device.RenderState.FillMode = FillMode.Point; device.Material = BlueMaterial; device.RenderState.PointSize = 4; dxcoll.Draw(ref device); #region Render Spheres over selected points device.Material = GreenMaterial; device.RenderState.FillMode = FillMode.WireFrame; device.VertexFormat = CustomVertex.PositionColored.Format; device.RenderState.AlphaBlendEnable = false; device.RenderState.AlphaTestEnable = false; device.SetTexture(0, null); for (int i = 0; i < SelectedPoints.Count; i++) { device.Transform.World = Matrix.Translation(coll.Vertices[SelectedPoints[i]].X, coll.Vertices[SelectedPoints[i]].Y, coll.Vertices[SelectedPoints[i]].Z); sphere.DrawSubset(0); } #endregion } else if (currentMode == editingModes.Surface) { if (currentSurface != -1) { device.RenderState.Lighting = false; device.RenderState.ZBufferEnable = false; device.RenderState.CullMode = Cull.None; device.RenderState.AlphaBlendEnable = true; device.TextureState[0].ColorOperation = TextureOperation.SelectArg1; device.TextureState[0].AlphaOperation = TextureOperation.SelectArg1; device.TextureState[0].ColorArgument1 = TextureArgument.TextureColor; device.TextureState[0].AlphaArgument1 = TextureArgument.TextureColor; //device.Material = GreenMaterial; device.RenderState.FillMode = FillMode.Solid; device.Transform.World = Matrix.Identity; device.DrawIndexedUserPrimitives(PrimitiveType.TriangleFan, 0, coll.Vertices.Length, polygons[currentSurface].indices.Length - 2, polygons[currentSurface].indices, true, coll.Vertices); } } device.EndScene(); // Update the screen device.Present(); }