Esempio n. 1
0
        private void CreateTextureFace()
        {
            textureFace = new TextureFace(Width, Height)
            {
                BackGround = new Vector4(1, 0, 0, 1)
            };

            Resource.heap1.AddResource(textureFace);

            Resource.TextureFaceTable = new ResourceTable(Resource.heap1, 3);

            Grid gridTexture = new Grid(20, 20, Resource.TextureTable);

            Micos.Add(gridTexture);

            Micos.Update();

            GraphicsPipeline.Open(graphicsPipelineState, textureFace);

            Micos.Exports();

            GraphicsPipeline.Close();

            GraphicsPipeline.WaitFlush();

            Micos.Remove(gridTexture);

            Micos.Update();
        }
Esempio n. 2
0
        public override void OnUpdate(object sender)
        {
            Title = Program.AppName + " FPS: " + fpsCounter.Fps.ToString();

            Micos.Exports();

            Micos.Update();
        }
Esempio n. 3
0
        public Window(string Title, int Width, int Height) : base(Title, Width, Height)
        {
            presenter = new Present(Handle, true);

            IsVisible = true;

            Micos.Add(fpsCounter = new FpsCounter());
        }
Esempio n. 4
0
        public Window(string Title, int Width, int Height) : base(Title, Width, Height)
        {
            IsVisible = true;

            presenter = new Present(Handle, true);

            vertexShader = new VertexShader(Properties.Resources.shader, "vs_main");
            pixelShader  = new PixelShader(Properties.Resources.shader, "ps_main");

            inputLayout = new InputLayout(
                new InputLayout.Element[] {
                new InputLayout.Element("POSITION", ElementSize.eFloat3),
                new InputLayout.Element("COLOR", ElementSize.eFlaot4)
            });

            resourceLayout = new ResourceLayout(
                new ResourceLayout.Element[]
            {
                new ResourceLayout.Element(ResourceType.ConstantBufferView, 0),
                new ResourceLayout.Element(ResourceType.ConstantBufferView, 1)
            });

            graphicsPipelineState = new GraphicsPipelineState(vertexShader, pixelShader, inputLayout,
                                                              resourceLayout, new RasterizerState()
            {
                FillMode = FillMode.Wireframe
            }, new DepthStencilState(true), new BlendState());

            Micos.Camera = new Camera();
            Micos.Camera.Transform.Position = new Vector3(0, 0, -100);

            Micos.Camera.Project = TMatrix.CreatePerspectiveFieldOfViewLH((float)Math.PI * 0.55f,
                                                                          (float)Width / Height, 1.0f, 2000.0f);

            for (int i = 0; i < EventThing.ObjectCount; i++)
            {
                Cube cube = new Cube(10, 10, 10);
                cube.Transform.Position = new Vector3(EventThing.INT, EventThing.INT, EventThing.INT);
                cube.Forward            = Vector3.Normalize(new Vector3(EventThing.INT, EventThing.INT, 0));
                cube.RotateSpeed        = new Vector3(EventThing.FLOAT, EventThing.FLOAT, 0);
                Micos.Add(cube);
            }

            Micos.Add(fpsCounter = new FpsCounter());

            Resource.cameraBuffer.view   = Micos.Camera;
            Resource.cameraBuffer.proj   = Micos.Camera.Project;
            Resource.cameraBuffer.eyePos = new Vector4(Micos.Camera.Transform.Position, 1);

            CameraBuffer.View.Update(ref Resource.cameraBuffer);
        }
Esempio n. 5
0
        public override void OnUpdate(object sender)
        {
            GraphicsPipeline.Open(graphicsPipelineState, presenter);

            Micos.Exports();

            Title = Program.AppName + " FPS: " + fpsCounter.Fps.ToString();

            GraphicsPipeline.Close();

            Micos.Update();

            GraphicsPipeline.WaitFlush();
        }
Esempio n. 6
0
        public override void OnMouseClick(object sender, MouseClickEventArgs e)
        {
            if (e.IsDown is true && e.Which is MouseButton.LeftButton)
            {
                Cube cube = Micos.Pick(Camera.NdcX(e.X, Width),
                                       Camera.NdcY(e.Y, Height)) as Cube;

                if (cube is null)
                {
                    return;
                }
                Micos.Remove(cube);
            }
            base.OnMouseClick(sender, e);
        }
Esempio n. 7
0
        public Window(string Title, int Width, int Height) : base(Title, Width, Height)
        {
            prenster = new Present(Handle, true);

            vertexShader = new VertexShader(Properties.Resources.shader, "vs_main");
            pixelShader  = new PixelShader(Properties.Resources.shader, "ps_main");

            inputLayout = new InputLayout(
                new InputLayout.Element[]
            {
                new InputLayout.Element("POSITION", ElementSize.eFloat3)
            });

            resourceLayout = new ResourceLayout(
                new ResourceLayout.Element[2] {
                new ResourceLayout.Element(ResourceType.ConstantBufferView, 0),
                new ResourceLayout.Element(ResourceType.ConstantBufferView, 1)
            }, null);

            InitalizeBlendState();

            graphicsPipelineState = new GraphicsPipelineState(vertexShader, pixelShader,
                                                              inputLayout, resourceLayout, null, new DepthStencilState(), blendState);

            Micos.Camera = new Camera()
            {
                Project = Mico.Math.TMatrix.CreatePerspectiveFieldOfViewLH((float)Math.PI * 0.55f,
                                                                           800f / 600f, 1.0f, 2000.0f)
            };

            Micos.Camera.Transform.Position = new Vector3(0, 0, -10);
            Micos.Camera.Transform.Forward  = Vector3.Zero - Micos.Camera.Transform.Position;

            Micos.Add(new Cube(new Vector3(0, 0, 3),
                               new Vector3(3, 3, 3), new Vector4(1, 0, 0, 1), true));

            Micos.Add(new Cube(new Vector3(0, 0, 0),
                               new Vector3(5, 5, 5), new Vector4(0, 1, 1, 0.5f), false));

            Micos.Add(fpsCounter = new FpsCounter());

            CameraBuffer cameraBuffer = CameraBuffer.FromCamera(Micos.Camera);

            Resource.CameraBuffer.Update(ref cameraBuffer);

            IsVisible = true;
        }
Esempio n. 8
0
        public Window(string Title, int Width, int Height) : base(Title, Width, Height)
        {
            presenter = new Present(Handle, true);

            vertexShader = new VertexShader(Properties.Resources.shader, "vs_main");
            pixelShader  = new PixelShader(Properties.Resources.shader, "ps_main");

            inputLayout = new InputLayout(
                new InputLayout.Element[2]
            {
                new InputLayout.Element("POSITION", ElementSize.eFloat3),
                new InputLayout.Element("TEXCOORD", ElementSize.eFloat2)
            });

            resourceLayout = new ResourceLayout(
                new ResourceLayout.Element[] {
                new ResourceLayout.Element(ResourceType.ConstantBufferTable, 0, 2),
                new ResourceLayout.Element(ResourceType.ShaderResourceTable, 0, 1)
            },
                new StaticSampler[] {
                new StaticSampler(TextureAddressMode.Clamp, TextureFilter.MinMagMipLinear)
            });

            graphicsPipelineState = new GraphicsPipelineState(vertexShader, pixelShader,
                                                              inputLayout, resourceLayout, new RasterizerState(), new DepthStencilState(), new BlendState());

            Micos.Camera = new Camera()
            {
                Project = Mico.Math.TMatrix.CreatePerspectiveFieldOfViewLH((float)Math.PI * 0.55f,
                                                                           800f / 600f, 1.0f, 2000.0f)
            };

            Micos.Camera.Transform.Position = new Vector3(0, 0, -10);
            Micos.Camera.Transform.Forward  = Vector3.Zero - Micos.Camera.Transform.Position;

            CreateTextureFace();

            Micos.Add(fpsCounter = new FpsCounter());

            Micos.Add(new Grid(20, 20, Resource.TextureFaceTable));

            IsVisible = true;
        }