167 lines
4.9 KiB
Rust
167 lines
4.9 KiB
Rust
|
use anyhow::Result;
|
||
|
use vulkan_rs::prelude::*;
|
||
|
|
||
|
use std::sync::Arc;
|
||
|
|
||
|
pub struct RasterizerDescriptorLayouts;
|
||
|
|
||
|
impl RasterizerDescriptorLayouts {
|
||
|
pub fn descriptor_layout(device: Arc<Device>) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
|
||
|
pub fn bone_descriptor_layout(device: Arc<Device>) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
3,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
|
||
|
pub fn color_descriptor_layout(device: Arc<Device>) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
2,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
|
||
|
pub fn color_bone_descriptor_layout(device: Arc<Device>) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
2,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
3,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
|
||
|
pub fn color_normal_descriptor_layout(device: Arc<Device>) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
2,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
4,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
|
||
|
pub fn color_bone_normal_descriptor_layout(
|
||
|
device: Arc<Device>,
|
||
|
) -> Result<Arc<DescriptorSetLayout>> {
|
||
|
DescriptorSetLayout::builder()
|
||
|
.add_layout_binding(
|
||
|
0,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
1,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
2,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
3,
|
||
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||
|
VK_SHADER_STAGE_VERTEX_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.add_layout_binding(
|
||
|
4,
|
||
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
||
|
VK_SHADER_STAGE_FRAGMENT_BIT,
|
||
|
0,
|
||
|
)
|
||
|
.build(device)
|
||
|
}
|
||
|
}
|