Map renderer sampler tokens to OpenGL
This commit is contained in:
@@ -124,6 +124,7 @@ constexpr std::uint32_t gl_texture_wrap_t = 0x2803U;
|
||||
constexpr std::uint32_t gl_texture_wrap_r = 0x8072U;
|
||||
constexpr std::uint32_t gl_texture_border_color = 0x1004U;
|
||||
constexpr std::uint32_t gl_repeat = 0x2901U;
|
||||
constexpr std::uint32_t gl_mirrored_repeat = 0x8370U;
|
||||
constexpr std::uint32_t gl_clamp_to_border = 0x812DU;
|
||||
constexpr std::uint32_t gl_clamp_to_edge = 0x812FU;
|
||||
constexpr std::uint32_t gl_texture0 = 0x84C0U;
|
||||
@@ -820,6 +821,34 @@ std::uint32_t clamp_to_border_texture_wrap() noexcept
|
||||
return gl_clamp_to_border;
|
||||
}
|
||||
|
||||
OpenGlEnumMapping sampler_filter_for_renderer_filter(pp::renderer::SamplerFilter filter) noexcept
|
||||
{
|
||||
switch (filter) {
|
||||
case pp::renderer::SamplerFilter::nearest:
|
||||
return OpenGlEnumMapping { .value = gl_nearest, .supported = true };
|
||||
case pp::renderer::SamplerFilter::linear:
|
||||
return OpenGlEnumMapping { .value = gl_linear, .supported = true };
|
||||
default:
|
||||
return OpenGlEnumMapping {};
|
||||
}
|
||||
}
|
||||
|
||||
OpenGlEnumMapping sampler_address_mode_for_renderer_mode(pp::renderer::SamplerAddressMode mode) noexcept
|
||||
{
|
||||
switch (mode) {
|
||||
case pp::renderer::SamplerAddressMode::clamp_to_edge:
|
||||
return OpenGlEnumMapping { .value = gl_clamp_to_edge, .supported = true };
|
||||
case pp::renderer::SamplerAddressMode::repeat:
|
||||
return OpenGlEnumMapping { .value = gl_repeat, .supported = true };
|
||||
case pp::renderer::SamplerAddressMode::mirrored_repeat:
|
||||
return OpenGlEnumMapping { .value = gl_mirrored_repeat, .supported = true };
|
||||
case pp::renderer::SamplerAddressMode::clamp_to_border:
|
||||
return OpenGlEnumMapping { .value = gl_clamp_to_border, .supported = true };
|
||||
default:
|
||||
return OpenGlEnumMapping {};
|
||||
}
|
||||
}
|
||||
|
||||
std::uint32_t active_texture_unit(std::uint32_t unit_index) noexcept
|
||||
{
|
||||
return gl_texture0 + unit_index;
|
||||
|
||||
Reference in New Issue
Block a user