Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            //    }
            //}
        }