예제 #1
0
 public Pipeline(Device dev, VkPipelineBindPoint type, PipelineLayout layout, VkPipeline pipeline)
 {
     PipelineType = type;
     Device       = dev;
     Layout       = layout;
     Handle       = pipeline;
 }
예제 #2
0
        public GraphicsPipelineBuilder(RenderPass pass, uint subpass, PipelineLayout pipelineLayout)
        {
            _pipelineLayout = pipelineLayout;
            _pass           = pass;
            _subpassId      = subpass;

            unsafe
            {
                _asmInfo.SType = VkStructureType.PipelineInputAssemblyStateCreateInfo;
                _asmInfo.Flags = 0;
                _asmInfo.PNext = IntPtr.Zero;

                _tessInfo.SType = VkStructureType.PipelineTessellationStateCreateInfo;
                _tessInfo.Flags = 0;
                _tessInfo.PNext = IntPtr.Zero;
                _tessInfo.PatchControlPoints = 0;

                _rasterInfo.SType                   = VkStructureType.PipelineRasterizationStateCreateInfo;
                _rasterInfo.Flags                   = 0;
                _rasterInfo.PNext                   = IntPtr.Zero;
                _rasterInfo.DepthBiasEnable         = false;
                _rasterInfo.DepthClampEnable        = false;
                _rasterInfo.RasterizerDiscardEnable = false;
                _rasterInfo.FrontFace               = VkFrontFace.CounterClockwise;
                _rasterInfo.LineWidth               = 1.0f;

                _multisampleInfo.SType = VkStructureType.PipelineMultisampleStateCreateInfo;
                _multisampleInfo.Flags = 0;
                _multisampleInfo.PNext = IntPtr.Zero;
                _multisampleInfo.RasterizationSamples = VkSampleCountFlag.Count1;
                _multisampleInfo.SampleShadingEnable  = false;

                _depthStencilInfo.SType                 = VkStructureType.PipelineDepthStencilStateCreateInfo;
                _depthStencilInfo.Flags                 = 0;
                _depthStencilInfo.PNext                 = IntPtr.Zero;
                _depthStencilInfo.DepthTestEnable       = false;
                _depthStencilInfo.StencilTestEnable     = false;
                _depthStencilInfo.DepthBoundsTestEnable = false;

                _colorBlendInfo.SType         = VkStructureType.PipelineColorBlendStateCreateInfo;
                _colorBlendInfo.Flags         = 0;
                _colorBlendInfo.PNext         = IntPtr.Zero;
                _colorBlendInfo.LogicOpEnable = false;
            }
        }
예제 #3
0
 public GraphicsPipelineBuilder PipelineBuilder(uint subpass, PipelineLayout layout)
 {
     return(new GraphicsPipelineBuilder(this, subpass, layout));
 }
 public new GraphicsPipelineBuilder PipelineBuilder(TPass subpass, PipelineLayout layout)
 {
     return(new GraphicsPipelineBuilder(this, PassId(subpass), layout));
 }