From 57a74c156bb889ad020a40d37e5ca0c8d1b80921 Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Mon, 9 Aug 2021 18:24:33 +1000 Subject: [PATCH] [client] egl: set a default scale for textures without filters --- client/renderers/EGL/CMakeLists.txt | 2 ++ client/renderers/EGL/desktop.c | 13 +++++++++++++ client/renderers/EGL/texture.c | 1 + 3 files changed, 16 insertions(+) diff --git a/client/renderers/EGL/CMakeLists.txt b/client/renderers/EGL/CMakeLists.txt index 5d3a7ff2..b6ce503b 100644 --- a/client/renderers/EGL/CMakeLists.txt +++ b/client/renderers/EGL/CMakeLists.txt @@ -25,6 +25,8 @@ make_object( shader/splash_bg.frag shader/splash_logo.vert shader/splash_logo.frag + shader/null.vert + shader/null.frag ) make_defines( diff --git a/client/renderers/EGL/desktop.c b/client/renderers/EGL/desktop.c index 9a84c820..902da5ec 100644 --- a/client/renderers/EGL/desktop.c +++ b/client/renderers/EGL/desktop.c @@ -34,6 +34,9 @@ #include // these headers are auto generated by cmake +#include "null.vert.h" +#include "null.frag.h" + #include "desktop.vert.h" #include "desktop_rgb.frag.h" #include "desktop_rgb.def.h" @@ -75,6 +78,8 @@ struct EGL_Desktop bool useDMA; LG_RendererFormat format; + + EGL_Shader * nullShader; }; // forwards @@ -156,6 +161,11 @@ bool egl_desktopInit(EGL * egl, EGL_Desktop ** desktop, EGLDisplay * display, (*desktop)->scaleAlgo = option_get_int("egl", "scale" ); (*desktop)->useDMA = useDMA; + egl_shaderInit(&(*desktop)->nullShader); + egl_shaderCompile((*desktop)->nullShader, + b_shader_null_vert, b_shader_null_vert_size, + b_shader_null_frag, b_shader_null_frag_size); + return true; } @@ -190,6 +200,7 @@ void egl_desktopFree(EGL_Desktop ** desktop) egl_shaderFree (&(*desktop)->shader.shader); egl_desktopRectsFree(&(*desktop)->mesh ); countedBufferRelease(&(*desktop)->matrix ); + egl_shaderFree(&(*desktop)->nullShader); free(*desktop); *desktop = NULL; @@ -299,6 +310,8 @@ bool egl_desktop_update(EGL_Desktop * desktop, const FrameBuffer * frame, int dm return false; } + egl_textureAddShader(desktop->texture, desktop->nullShader, 4.0f); + if (!egl_desktopSetup(desktop, desktop->format)) return false; } diff --git a/client/renderers/EGL/texture.c b/client/renderers/EGL/texture.c index f08867d8..7de71fe7 100644 --- a/client/renderers/EGL/texture.c +++ b/client/renderers/EGL/texture.c @@ -88,6 +88,7 @@ bool egl_textureInit(EGL * egl, EGL_Texture ** texture_, glSamplerParameteri(this->sampler, GL_TEXTURE_WRAP_T , GL_CLAMP_TO_EDGE); this->textures = ringbuffer_new(8, sizeof(GLuint)); + this->scale = 1.0f; return true; }