diff --git a/src/render.c b/src/render.c index 805d7da..c7218d8 100644 --- a/src/render.c +++ b/src/render.c @@ -46,6 +46,7 @@ static GLuint FrameBufferTexId; static GLuint ScaleVBOs[3], ScaleVAO; static BOOL UseOpenGL; static BOOL AdjustAlignment; +static BOOL UseBilinear; static HGLRC CreateContext(HDC hdc); static void SetMaxFPS(); @@ -176,6 +177,8 @@ static void BuildPrograms() ScaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader); else OpenGL_GotVersion3 = FALSE; + + UseBilinear = strstr(ddraw->shader, "\\bilinear.glsl") != 0; } if (OpenGL_GotVersion2 && !MainProgram) @@ -485,8 +488,8 @@ static void InitScaleProgram() glGenTextures(1, &FrameBufferTexId); glBindTexture(GL_TEXTURE_2D, FrameBufferTexId); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, UseBilinear ? GL_LINEAR : GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, UseBilinear ? GL_LINEAR : GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, SurfaceTexWidth, SurfaceTexHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, FrameBufferTexId, 0);