Move sampler parameter mapping to renderer gl

This commit is contained in:
2026-06-01 18:13:55 +02:00
parent f1e2743d58
commit 8130a922d0
6 changed files with 78 additions and 12 deletions

View File

@@ -43,6 +43,7 @@ constexpr std::uint32_t gl_texture_mag_filter = 0x2800U;
constexpr std::uint32_t gl_texture_min_filter = 0x2801U;
constexpr std::uint32_t gl_texture_wrap_s = 0x2802U;
constexpr std::uint32_t gl_texture_wrap_t = 0x2803U;
constexpr std::uint32_t gl_texture_wrap_r = 0x8072U;
constexpr std::uint32_t gl_clamp_to_edge = 0x812FU;
[[nodiscard]] bool contains(std::string_view text, std::string_view needle) noexcept
@@ -213,4 +214,27 @@ std::span<const OpenGlTextureParameter> default_render_target_texture_parameters
return parameters;
}
std::array<OpenGlTextureParameter, 5> sampler_parameters_for_filter_wrap(
std::uint32_t filter,
std::uint32_t wrap) noexcept
{
return {
OpenGlTextureParameter { .name = gl_texture_wrap_s, .value = wrap },
OpenGlTextureParameter { .name = gl_texture_wrap_t, .value = wrap },
OpenGlTextureParameter { .name = gl_texture_wrap_r, .value = wrap },
OpenGlTextureParameter { .name = gl_texture_min_filter, .value = filter },
OpenGlTextureParameter { .name = gl_texture_mag_filter, .value = filter },
};
}
std::array<OpenGlTextureParameter, 2> sampler_filter_parameters(
std::uint32_t filter_min,
std::uint32_t filter_mag) noexcept
{
return {
OpenGlTextureParameter { .name = gl_texture_min_filter, .value = filter_min },
OpenGlTextureParameter { .name = gl_texture_mag_filter, .value = filter_mag },
};
}
}

View File

@@ -1,5 +1,6 @@
#pragma once
#include <array>
#include <cstdint>
#include <span>
#include <string_view>
@@ -44,5 +45,11 @@ struct OpenGlTextureParameter {
[[nodiscard]] std::span<const std::uint32_t> panopainter_cube_face_texture_targets() noexcept;
[[nodiscard]] std::uint32_t cube_face_texture_target(std::uint32_t face_index) noexcept;
[[nodiscard]] std::span<const OpenGlTextureParameter> default_render_target_texture_parameters() noexcept;
[[nodiscard]] std::array<OpenGlTextureParameter, 5> sampler_parameters_for_filter_wrap(
std::uint32_t filter,
std::uint32_t wrap) noexcept;
[[nodiscard]] std::array<OpenGlTextureParameter, 2> sampler_filter_parameters(
std::uint32_t filter_min,
std::uint32_t filter_mag) noexcept;
}