Map renderer primitive topologies to OpenGL

This commit is contained in:
2026-06-02 18:18:34 +02:00
parent dc03491b0d
commit 1065183e75
5 changed files with 41 additions and 6 deletions

View File

@@ -22,6 +22,7 @@ constexpr std::uint32_t gl_false = 0U;
constexpr std::uint32_t gl_points = 0x0000U;
constexpr std::uint32_t gl_lines = 0x0001U;
constexpr std::uint32_t gl_triangles = 0x0004U;
constexpr std::uint32_t gl_triangle_strip = 0x0005U;
constexpr std::uint32_t gl_fragment_shader = 0x8B30U;
constexpr std::uint32_t gl_vertex_shader = 0x8B31U;
constexpr std::uint32_t gl_compile_status = 0x8B81U;
@@ -459,6 +460,20 @@ std::uint32_t framebuffer_blit_filter(bool linear) noexcept
return linear ? gl_linear : gl_nearest;
}
std::uint32_t primitive_mode_for_renderer_topology(pp::renderer::PrimitiveTopology topology) noexcept
{
switch (topology) {
case pp::renderer::PrimitiveTopology::triangles:
return gl_triangles;
case pp::renderer::PrimitiveTopology::triangle_strip:
return gl_triangle_strip;
case pp::renderer::PrimitiveTopology::lines:
return gl_lines;
default:
return 0U;
}
}
std::uint32_t index_type_for_index_size(std::uint32_t index_size_bytes) noexcept
{
switch (index_size_bytes) {