File tree Expand file tree Collapse file tree 5 files changed +13
-5
lines changed Expand file tree Collapse file tree 5 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,8 @@ void App::create_shader() {
22
22
.device = *m_device,
23
23
.vertex_spirv = vertex_spirv,
24
24
.fragment_spirv = fragment_spirv,
25
+ .vertex_input = {},
26
+ .set_layouts = {},
25
27
};
26
28
m_shader.emplace(shader_ci);
27
29
}
Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ struct ShaderProgramCreateInfo {
46
46
vk::Device device;
47
47
std::span<std::uint32_t const> vertex_spirv;
48
48
std::span<std::uint32_t const> fragment_spirv;
49
+ std::span<vk::DescriptorSetLayout const> set_layouts;
49
50
};
50
51
```
51
52
@@ -69,12 +70,13 @@ The definition of the constructor is fairly straightforward:
69
70
70
71
``` cpp
71
72
ShaderProgram::ShaderProgram (CreateInfo const& create_info) {
72
- static auto const create_shader_ci =
73
- [ ] (std::span<std::uint32_t const> spirv) {
73
+ auto const create_shader_ci =
74
+ [ &create_info ] (std::span<std::uint32_t const> spirv) {
74
75
auto ret = vk::ShaderCreateInfoEXT{};
75
76
ret.setCodeSize(spirv.size_bytes())
76
77
.setPCode(spirv.data())
77
78
// set common parameters.
79
+ .setSetLayouts(create_info.set_layouts)
78
80
.setCodeType(vk::ShaderCodeTypeEXT::eSpirv)
79
81
.setPName("main");
80
82
return ret;
Original file line number Diff line number Diff line change @@ -219,6 +219,8 @@ void App::create_shader() {
219
219
.device = *m_device,
220
220
.vertex_spirv = vertex_spirv,
221
221
.fragment_spirv = fragment_spirv,
222
+ .vertex_input = {},
223
+ .set_layouts = {},
222
224
};
223
225
m_shader.emplace (shader_ci);
224
226
}
Original file line number Diff line number Diff line change @@ -10,12 +10,13 @@ constexpr auto to_vkbool(bool const value) {
10
10
11
11
ShaderProgram::ShaderProgram (CreateInfo const & create_info)
12
12
: m_vertex_input(create_info.vertex_input) {
13
- static auto const create_shader_ci =
14
- [](std::span<std::uint32_t const > spirv) {
13
+ auto const create_shader_ci =
14
+ [&create_info ](std::span<std::uint32_t const > spirv) {
15
15
auto ret = vk::ShaderCreateInfoEXT{};
16
16
ret.setCodeSize (spirv.size_bytes ())
17
17
.setPCode (spirv.data ())
18
18
// set common parameters.
19
+ .setSetLayouts (create_info.set_layouts )
19
20
.setCodeType (vk::ShaderCodeTypeEXT::eSpirv)
20
21
.setPName (" main" );
21
22
return ret;
Original file line number Diff line number Diff line change @@ -14,7 +14,8 @@ struct ShaderProgramCreateInfo {
14
14
vk::Device device;
15
15
std::span<std::uint32_t const > vertex_spirv;
16
16
std::span<std::uint32_t const > fragment_spirv;
17
- ShaderVertexInput vertex_input{};
17
+ ShaderVertexInput vertex_input;
18
+ std::span<vk::DescriptorSetLayout const > set_layouts;
18
19
};
19
20
20
21
class ShaderProgram {
You can’t perform that action at this time.
0 commit comments