public void Render(ComposedShape <T> composeShape, Matrix world) { if (Engine.Scene == null || Engine.Scene.ActiveCamera == null) { return; } //var device = GraphicDeviceFactory.Device; //device.VertexDeclaration = vd.VertexDeclaration; //var _fill = device.GetRenderState(RenderState.FillMode); //GraphicDeviceFactory.Device.SetRenderState(RenderState.FillMode, fill); //if (KeepDistance) //{ // effect.Technique = "Technique4"; // effect.SetValueByName("distance", Distance); // effect.SetViewMatrix(Engine.Scene.ActiveCamera.View); // effect.SetValueByName("Proj", Engine.Scene.ActiveCamera.Projection); //} //else //{ // effect.Technique = technique; // effect.SetViewProjMatrix(Engine.Scene.ActiveCamera.ViewProj); //} //effect.SetValue(hColor, color); //RenderCompose(composeShape, world, device); //GraphicDeviceFactory.Device.SetRenderState(RenderState.FillMode, _fill); }
private void RenderCompose(ComposedShape <T> composeShape, Matrix world, GraphicDevice device) { //if (composeShape.Shapes != null) //{ // for (int i = 0; i < composeShape.Shapes.Length; i++) // { // ShapeBuilder<T> shape = composeShape.Shapes[i]; // var matrix = composeShape.Transforms[i]; // effect.SetWorldMatrix(matrix * world); // if (composeShape.Colors != null) // effect.SetValue(hColor, composeShape.Colors[i]); // effect.Apply(() => // { // if (shape.Indices != null) // { // device.DrawIndexedUserPrimitives(shape.PrimitiveType, 0, shape.Vertices.Length, // shape.Indices.Length / GetPrimitiveSize(shape.PrimitiveType), shape.Indices, // Format.Index16, shape.Vertices, vd.Size); // } // else // device.DrawUserPrimitives(shape.PrimitiveType, shape.Vertices.Length / GetPrimitiveSize(shape.PrimitiveType), shape.Vertices); // }); // } //} //else if (composeShape.Components != null) //{ // for (int i = 0; i < composeShape.Components.Length; i++) // { // var component = composeShape.Components[i]; // var matrix = composeShape.Transforms[i]; // if (composeShape.Colors != null) // effect.SetValue(hColor, composeShape.Colors[i]); // RenderCompose(component, matrix * world, device); // } //} }