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(); }
public override void OnUpdate(object sender) { Title = Program.AppName + " FPS: " + fpsCounter.Fps.ToString(); Micos.Exports(); Micos.Update(); }
public Window(string Title, int Width, int Height) : base(Title, Width, Height) { presenter = new Present(Handle, true); IsVisible = true; Micos.Add(fpsCounter = new FpsCounter()); }
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); }
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(); }
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); }
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; }
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; }