psemek/libs/gfx/source/texture.cpp

34 lines
735 B
C++

#include <psemek/gfx/texture.hpp>
#include <optional>
namespace psemek::gfx
{
template struct basic_texture<1, gl::TEXTURE_1D>;
template struct basic_texture<2, gl::TEXTURE_1D_ARRAY>;
template struct basic_texture<2, gl::TEXTURE_2D>;
template struct basic_texture<3, gl::TEXTURE_2D_ARRAY>;
template struct basic_texture<3, gl::TEXTURE_3D>;
namespace detail
{
static std::optional<float> get_max_anisotropy()
{
if (!gl::exts::var_EXT_texture_filter_anisotropic) return std::nullopt;
float level;
gl::GetFloatv(gl::MAX_TEXTURE_MAX_ANISOTROPY_EXT, &level);
return level;
}
std::optional<float> max_anisotropy()
{
static std::optional<float> level = get_max_anisotropy();
return level;
}
}
}