Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
VKPipeline.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include "../Pipeline.h"
7#include "VKBuffer.h"
8#include <vector>
9#include <vulkan/vulkan.h>
10
11class VKPipeline : public Pipeline
12{
13public:
14 VKPipeline(const Descriptor& desc);
15
16 void bind() override;
17
18 operator VkPipeline() noexcept;
19 operator VkPipeline() const noexcept;
20
21private:
22 void create_pipeline_layout(const Descriptor& desc);
23 void create_vertex_input_state(VkPipelineVertexInputStateCreateInfo& info, const Descriptor& desc,
24 std::vector<VkVertexInputBindingDescription>& bindings,
25 std::vector<VkVertexInputAttributeDescription>& attribs);
26 void create_input_assembly_state(VkPipelineInputAssemblyStateCreateInfo&, const Descriptor& desc);
27 void create_viewport_state(VkPipelineViewportStateCreateInfo& info, const Descriptor& desc,
28 std::vector<VkViewport>& viewports, std::vector<VkRect2D>& scissors);
29 void create_rasterizer_state(VkPipelineRasterizationStateCreateInfo& info, const Descriptor& desc);
30 void create_multisample_state(VkPipelineMultisampleStateCreateInfo& info, const Descriptor& desc);
31 void create_depth_stencil_state(VkPipelineDepthStencilStateCreateInfo& info, const Descriptor& desc);
32 void create_color_blend_state(VkPipelineColorBlendStateCreateInfo& info, const Descriptor& desc,
33 std::vector<VkPipelineColorBlendAttachmentState>& colorBlendAttachments);
34 void create_dynamic_state(VkPipelineDynamicStateCreateInfo& info, std::vector<VkDynamicState>& dynamicStates);
35
36 VkPipeline pipeline_;
37 VkPipelineLayout pipeline_layout_;
38};
图形管线.
Definition: Pipeline.h:63
Definition: VKPipeline.h:12
Definition: Pipeline.h:66