summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/render/OpenGL.cpp8
-rw-r--r--src/render/Texture.hpp3
2 files changed, 7 insertions, 4 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 6c75148e..715ca4f7 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -1363,8 +1363,8 @@ void CHyprOpenGLImpl::renderTextureInternal(SP<CTexture> tex, const CBox& box, c
tex->setTexParameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
tex->setTexParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST);
} else {
- tex->setTexParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- tex->setTexParameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ tex->setTexParameter(GL_TEXTURE_MAG_FILTER, tex->magFilter);
+ tex->setTexParameter(GL_TEXTURE_MIN_FILTER, tex->minFilter);
}
const bool isHDRSurface = m_renderData.surface.valid() && m_renderData.surface->m_colorManagement.valid() ? m_renderData.surface->m_colorManagement->isHDR() : false;
@@ -1616,8 +1616,8 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP<CTexture> tex, const CBox& box)
tex->setTexParameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
tex->setTexParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST);
} else {
- tex->setTexParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- tex->setTexParameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ tex->setTexParameter(GL_TEXTURE_MAG_FILTER, tex->magFilter);
+ tex->setTexParameter(GL_TEXTURE_MIN_FILTER, tex->minFilter);
}
auto shader = useShader(m_shaders->frag[SH_FRAG_PASSTHRURGBA]);
diff --git a/src/render/Texture.hpp b/src/render/Texture.hpp
index 8ee2cab0..c2e9b2c3 100644
--- a/src/render/Texture.hpp
+++ b/src/render/Texture.hpp
@@ -49,6 +49,9 @@ class CTexture {
uint32_t m_drmFormat = 0; // for shm
bool m_isSynchronous = false;
+ GLenum magFilter = GL_LINEAR; // useNearestNeighbor overwrites these
+ GLenum minFilter = GL_LINEAR;
+
private:
enum eTextureParam : uint8_t {
TEXTURE_PAR_WRAP_S = 0,