Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
PipelineLayout.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include <cstdint>
7#include <initializer_list>
8#include <string_view>
9#include <vector>
10
15{
16public:
17 enum class Type
18 {
20 Sampler,
22 };
23
25 {
26 enum
27 {
28 Vertex = 1 << 0,
29 Geometry = 1 << 1,
30 Fragment = 1 << 2,
31 Compute = 1 << 3
32 };
33 };
34
35 struct Binding
36 {
37 Binding(std::string_view name, uint32_t binding, Type type, uint32_t stageFlags, uint32_t arraySize = 1)
38 : type(type), binding(binding), stageFlags(stageFlags), arraySize(arraySize)
39 {
40 }
41
42 uint32_t binding;
43 Type type;
44 uint32_t stageFlags;
45 uint32_t arraySize;
46 };
47
48 PipelineLayout() = default;
49 PipelineLayout(const std::initializer_list<Binding>& list);
50
51 void add_binding(Binding attr);
52
53 const std::vector<Binding>& get_bindings() const;
54
55private:
56 std::vector<Binding> bindings_;
57};
图形管线绑定布局.
Definition: PipelineLayout.h:15
Definition: Sampler.h:7
纹理.
Definition: Texture.h:31
Definition: UniformBuffer.h:12
Definition: PipelineLayout.h:36
Definition: PipelineLayout.h:25
@ Geometry
Definition: PipelineLayout.h:29
@ Compute
Definition: PipelineLayout.h:31
@ Fragment
Definition: PipelineLayout.h:30
@ Vertex
Definition: PipelineLayout.h:28