start making pipeline
This commit is contained in:
parent
2814854d16
commit
5e81cf7dc2
|
@ -0,0 +1,55 @@
|
|||
const std = @import("std");
|
||||
const assert = std.debug.assert;
|
||||
const vk = @import("vulkan");
|
||||
|
||||
const Device = @import("device.zig").Device;
|
||||
|
||||
pub const Layout = struct {
|
||||
pub fn init(device: *const Device, set_layouts: []*const vk.DescriptorSetLayout, ranges: []*const vk.PushConstantRange) !vk.PipelineLayout {
|
||||
return try device.dispatch.createPipelineLayout(device.handle, &.{
|
||||
.set_layout_count = set_layouts.len,
|
||||
.p_set_layouts = set_layouts.ptr,
|
||||
.push_constant_range_count = ranges.len,
|
||||
.p_push_constant_ranges = ranges.ptr,
|
||||
}, null);
|
||||
}
|
||||
};
|
||||
|
||||
pub const VertType = enum {
|
||||
float,
|
||||
float2,
|
||||
float3,
|
||||
float4,
|
||||
int,
|
||||
int2,
|
||||
int3,
|
||||
int4,
|
||||
|
||||
pub fn size(t: VertType) i32 {
|
||||
return switch (t) {
|
||||
.float => @sizeOf(f32),
|
||||
.float2 => @sizeOf(Float2),
|
||||
.float3 => @sizeOf(Float3),
|
||||
.float4 => @sizeOf(Float4),
|
||||
.int => @sizeOf(i32),
|
||||
.int2 => @sizeOf(Int2),
|
||||
.int3 => @sizeOf(Int3),
|
||||
.int4 => @sizeOf(Int4),
|
||||
else => assert(false),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn format(t: VertType) vk.Format {
|
||||
return switch (t) {
|
||||
.float => .r32_sfloat,
|
||||
.float2 => .r32g32_sfloat,
|
||||
.float3 => .r32g32b32_sfloat,
|
||||
.float4 => .r32g32b32a32_sfloat,
|
||||
.int => .r32_sint,
|
||||
.int2 => .r32g32_sint,
|
||||
.int3 => .r32g32b32_sint,
|
||||
.int4 => .r32g32b32a32_sint,
|
||||
else => assert(false),
|
||||
};
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue