public MachPipelineDescription(GraphicsDevice _graphicsDevice, MachShaderDescription _shaderDesc, ResourceFactory factory) { _pipeline = factory.CreateGraphicsPipeline(new GraphicsPipelineDescription( BlendStateDescription.SingleOverrideBlend, new DepthStencilStateDescription( depthTestEnabled: true, depthWriteEnabled: true, comparisonKind: ComparisonKind.Always ), new RasterizerStateDescription( cullMode: FaceCullMode.Back, fillMode: PolygonFillMode.Solid, frontFace: FrontFace.Clockwise, depthClipEnabled: false, scissorTestEnabled: false ), PrimitiveTopology.TriangleList, _shaderDesc.shaderSet, new[] { _shaderDesc.modelLayout, _shaderDesc.vertexLayout }, _graphicsDevice.MainSwapchain.Framebuffer.OutputDescription));; }
public void CreateResources() { ResourceFactory factory = _graphicsDevice.ResourceFactory; _modelBuffer = factory.CreateBuffer(new BufferDescription(64, BufferUsage.UniformBuffer)); _viewBuffer = factory.CreateBuffer(new BufferDescription(64, BufferUsage.UniformBuffer)); _projectionBuffer = factory.CreateBuffer(new BufferDescription(64, BufferUsage.UniformBuffer)); _vertexBuffer = factory.CreateBuffer(new BufferDescription((uint)_vertices.Length * VertexPosition.SizeInBytes, BufferUsage.VertexBuffer)); _indexBuffer = factory.CreateBuffer(new BufferDescription((uint)_indices.Length * sizeof(ushort), BufferUsage.IndexBuffer)); _graphicsDevice.UpdateBuffer(_vertexBuffer, 0, _vertices); _graphicsDevice.UpdateBuffer(_indexBuffer, 0, _indices); shaderDescription = new MachShaderDescription(factory, _modelBuffer, _viewBuffer, _projectionBuffer); pipelineDescription = new MachPipelineDescription(_graphicsDevice, shaderDescription, factory); //var test = factory.CreateTexture(new TextureDescription(26, 26, 1, 1, 1, PixelFormat.R8_G8_B8_A8_UNorm, TextureUsage.Staging, TextureType.Texture2D, _graphicsDevice.GetSampleCountLimit(PixelFormat.R8_G8_B8_A8_UNorm, false))); _cl = factory.CreateCommandList(); }