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