Skip to content

Commit e7a0adb

Browse files
committed
Add set layouts to shader ci
1 parent 1244d6a commit e7a0adb

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

guide/src/shader_objects/drawing_triangle.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ void App::create_shader() {
2222
.device = *m_device,
2323
.vertex_spirv = vertex_spirv,
2424
.fragment_spirv = fragment_spirv,
25+
.vertex_input = {},
26+
.set_layouts = {},
2527
};
2628
m_shader.emplace(shader_ci);
2729
}

guide/src/shader_objects/shader_program.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ struct ShaderProgramCreateInfo {
4646
vk::Device device;
4747
std::span<std::uint32_t const> vertex_spirv;
4848
std::span<std::uint32_t const> fragment_spirv;
49+
std::span<vk::DescriptorSetLayout const> set_layouts;
4950
};
5051
```
5152
@@ -69,12 +70,13 @@ The definition of the constructor is fairly straightforward:
6970

7071
```cpp
7172
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) {
7475
auto ret = vk::ShaderCreateInfoEXT{};
7576
ret.setCodeSize(spirv.size_bytes())
7677
.setPCode(spirv.data())
7778
// set common parameters.
79+
.setSetLayouts(create_info.set_layouts)
7880
.setCodeType(vk::ShaderCodeTypeEXT::eSpirv)
7981
.setPName("main");
8082
return ret;

src/app.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,8 @@ void App::create_shader() {
219219
.device = *m_device,
220220
.vertex_spirv = vertex_spirv,
221221
.fragment_spirv = fragment_spirv,
222+
.vertex_input = {},
223+
.set_layouts = {},
222224
};
223225
m_shader.emplace(shader_ci);
224226
}

src/shader_program.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ constexpr auto to_vkbool(bool const value) {
1010

1111
ShaderProgram::ShaderProgram(CreateInfo const& create_info)
1212
: 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) {
1515
auto ret = vk::ShaderCreateInfoEXT{};
1616
ret.setCodeSize(spirv.size_bytes())
1717
.setPCode(spirv.data())
1818
// set common parameters.
19+
.setSetLayouts(create_info.set_layouts)
1920
.setCodeType(vk::ShaderCodeTypeEXT::eSpirv)
2021
.setPName("main");
2122
return ret;

src/shader_program.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ struct ShaderProgramCreateInfo {
1414
vk::Device device;
1515
std::span<std::uint32_t const> vertex_spirv;
1616
std::span<std::uint32_t const> fragment_spirv;
17-
ShaderVertexInput vertex_input{};
17+
ShaderVertexInput vertex_input;
18+
std::span<vk::DescriptorSetLayout const> set_layouts;
1819
};
1920

2021
class ShaderProgram {

0 commit comments

Comments
 (0)