const ChainedStruct = @import("types.zig").ChainedStruct; const DepthStencilState = @import("types.zig").DepthStencilState; const MultisampleState = @import("types.zig").MultisampleState; const VertexState = @import("types.zig").VertexState; const PrimitiveState = @import("types.zig").PrimitiveState; const FragmentState = @import("types.zig").FragmentState; const PipelineLayout = @import("pipeline_layout.zig").PipelineLayout; const BindGroupLayout = @import("bind_group_layout.zig").BindGroupLayout; const impl = @import("interface.zig").impl; pub const RenderPipeline = *opaque { pub inline fn getBindGroupLayout(render_pipeline: RenderPipeline, group_index: u32) BindGroupLayout { return impl.renderPipelineGetBindGroupLayout(render_pipeline, group_index); } pub inline fn setLabel(render_pipeline: RenderPipeline, label: [*:0]const u8) void { impl.renderPipelineSetLabel(render_pipeline, label); } pub inline fn reference(render_pipeline: RenderPipeline) void { impl.renderPipelineReference(render_pipeline); } pub inline fn release(render_pipeline: RenderPipeline) void { impl.renderPipelineRelease(render_pipeline); } }; pub const RenderPipelineDescriptor = extern struct { next_in_chain: *const ChainedStruct, label: ?[*:0]const u8 = null, layout: ?PipelineLayout, vertex: VertexState, primitive: PrimitiveState, depth_stencil: ?*const DepthStencilState = null, // nullable multisample: MultisampleState, fragment: ?*const FragmentState = null, // nullable };