KiCad PCB EDA Suite
Loading...
Searching...
No Matches
rhi_pipeline.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22#include <rhi/rhi_handle.h>
23#include <rhi/rhi_bind_group.h>
24#include <rhi/rhi_texture.h>
25#include <cstdint>
26#include <vector>
27
35
36enum class RHI_BLEND_OP
37{
39};
40
46
56
62
67
73
74
81
83{
84 uint32_t stride = 0;
86 std::vector<RHI_VERTEX_ATTRIBUTE_DESC> attributes;
87};
88
99
106
111{
114
115 std::vector<RHI_VERTEX_BUFFER_LAYOUT_DESC> vertexBuffers;
116
118
120 std::vector<RHI_BLEND_STATE> blendStates;
121
123
125 std::vector<RHI_BIND_GROUP_LAYOUT_DESC> bindGroupLayouts;
126
128
130
131 std::vector<RHI_DYNAMIC_STATE> dynamicStates;
132};
133
134
140{
142}
@ ADD
Definition am_param.h:146
Container to manage a vector of triangles.
@ ZERO
Coords that wraps are not evaluated.
Definition image.h:51
RHI_HANDLE< RHI_TAG_SHADER > RHI_ShaderHandle
Definition rhi_handle.h:85
RHI_DYNAMIC_STATE
RHI_PRIMITIVE_TOPOLOGY
bool RhiPipelineUsesDepthStencil(const RHI_PIPELINE_DESC &aDesc)
Return true when the pipeline targets framebuffers with a depth/stencil attachment.
RHI_COMPARE_OP
RHI_VERTEX_FORMAT
RHI_BLEND_OP
RHI_VERTEX_STEP_MODE
RHI_BLEND_FACTOR
RHI_TEXTURE_FORMAT
Definition rhi_texture.h:27
RHI_BLEND_FACTOR dstAlpha
RHI_BLEND_FACTOR srcColor
RHI_BLEND_FACTOR dstColor
RHI_BLEND_FACTOR srcAlpha
RHI_BLEND_OP colorOp
RHI_BLEND_OP alphaOp
RHI_COMPARE_OP depthCompareOp
Everything here is fixed at creation except the states listed in dynamicStates.
std::vector< RHI_BIND_GROUP_LAYOUT_DESC > bindGroupLayouts
Element n is bind group n, as passed to RHI_DEVICE::BindGroup().
std::vector< RHI_DYNAMIC_STATE > dynamicStates
RHI_TEXTURE_FORMAT colorFormat
RHI_PRIMITIVE_TOPOLOGY topology
std::vector< RHI_VERTEX_BUFFER_LAYOUT_DESC > vertexBuffers
RHI_ShaderHandle vertexShader
RHI_ShaderHandle fragmentShader
std::vector< RHI_BLEND_STATE > blendStates
One per color attachment.
RHI_DEPTH_STENCIL_STATE depthStencil
RHI_VERTEX_FORMAT format
RHI_VERTEX_STEP_MODE stepMode
std::vector< RHI_VERTEX_ATTRIBUTE_DESC > attributes