15 SamplerGLES::SamplerGLES(SamplerDescriptor desc) : Sampler(
std::move(desc)) {}
20 switch (minmag_filter) {
34 switch (minmag_filter) {
36 return GL_NEAREST_MIPMAP_NEAREST;
38 return GL_LINEAR_MIPMAP_NEAREST;
41 switch (minmag_filter) {
43 return GL_NEAREST_MIPMAP_LINEAR;
45 return GL_LINEAR_MIPMAP_LINEAR;
52 bool supports_decal_sampler_address_mode) {
55 return GL_CLAMP_TO_EDGE;
59 return GL_MIRRORED_REPEAT;
61 if (supports_decal_sampler_address_mode) {
64 return GL_CLAMP_TO_EDGE;
74 <<
"Texture mip count is > 1, but the mipmap has not been generated. "
75 "Texture can not be sampled safely.";
81 if (!target.has_value()) {
86 GLint mag_filter =
ToParam(desc.mag_filter);
91 min_filter =
ToParam(desc.min_filter, desc.mip_filter);
93 min_filter =
ToParam(desc.min_filter);
96 gl.TexParameteri(*target, GL_TEXTURE_MIN_FILTER, min_filter);
97 gl.TexParameteri(*target, GL_TEXTURE_MAG_FILTER, mag_filter);
99 const auto supports_decal_mode =
105 ToAddressMode(desc.height_address_mode, supports_decal_mode);
107 gl.TexParameteri(*target, GL_TEXTURE_WRAP_S, wrap_s);
108 gl.TexParameteri(*target, GL_TEXTURE_WRAP_T, wrap_t);
113 const GLfloat border_color[4] = {0.0f, 0.0f, 0.0f, 0.0f};