psemek/libs/wgpu/source/render_pipeline.cpp

37 lines
1 KiB
C++

#include <psemek/wgpu/render_pipeline.hpp>
#include <psemek/wgpu/detail/string_view.hpp>
#include <psemek/wgpu/external/wgpu.h>
namespace psemek::wgpu
{
bind_group_layout render_pipeline::get_bind_group_layout(std::uint32_t index)
{
return bind_group_layout(wgpuRenderPipelineGetBindGroupLayout((WGPURenderPipeline)get(), index));
}
void render_pipeline::set_label(std::string const & label)
{
wgpuRenderPipelineSetLabel((WGPURenderPipeline)get(), detail::to_string_view(label));
}
void render_pipeline::reference(void * ptr)
{
wgpuRenderPipelineAddRef((WGPURenderPipeline)ptr);
}
void render_pipeline::release(void * ptr)
{
wgpuRenderPipelineRelease((WGPURenderPipeline)ptr);
}
detail::chained_struct_ptr to_chained_struct(primitive_state::extras const & extras)
{
WGPUPrimitiveStateExtras chained = {};
chained.chain.sType = (WGPUSType)WGPUSType_PrimitiveStateExtras;
chained.polygonMode = (WGPUPolygonMode)extras.polygon_mode;
chained.conservative = extras.conservative;
return detail::make_chained_struct(chained);
}
}