From 2dfab0ac69b593d5cdc8165d61945486e3ac6db3 Mon Sep 17 00:00:00 2001 From: KojoZero Date: Thu, 23 Apr 2026 20:59:13 -0700 Subject: [PATCH] fixed rfrag_tex_coord y axis, prototyping cursor position --- src/video_core/host_shaders/opengl_present.frag | 2 +- src/video_core/renderer_opengl/renderer_opengl.cpp | 4 +++- src/video_core/renderer_opengl/renderer_opengl.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/video_core/host_shaders/opengl_present.frag b/src/video_core/host_shaders/opengl_present.frag index 067eaecb4..ef8610a34 100644 --- a/src/video_core/host_shaders/opengl_present.frag +++ b/src/video_core/host_shaders/opengl_present.frag @@ -17,7 +17,7 @@ uniform int layer; in vec2 pixelUnit; void main() { vec4 pixel = texture(color_texture, frag_tex_coord); - vec2 rfrag_tex_coord = vec2(frag_tex_coord.yx); + vec2 rfrag_tex_coord = vec2(frag_tex_coord.y, 1.0 - frag_tex_coord.x); //Cursor if (cursor_enable){ //Black Outline diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 45dd4d5d4..441475838 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -568,7 +568,7 @@ void RendererOpenGL::DrawSingleScreen(const ScreenInfo& screen_info, float x, fl } else { glUniform1i(uniform_cursor_enable, 0); } - glUniform2f(uniform_cursor_pos, 159.0f/320.0f, 119.0f/240.0f); + glUniform2f(uniform_cursor_pos, cursor_pos[0]/320.0f, cursor_pos[1]/240.0f); state.texture_units[0].texture_2d = screen_info.display_texture; state.texture_units[0].sampler = sampler; state.Apply(); @@ -700,6 +700,8 @@ void RendererOpenGL::DrawScreens(const Layout::FramebufferLayout& layout, bool f } glUniform1i(uniform_layer, 0); + cursor_pos[0] += 1; + cursor_pos[1] += 1; if (!Settings::values.swap_screen.GetValue()) { DrawTopScreen(layout, top_screen); glUniform1i(uniform_layer, 0); diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index 68f0c260d..a6c56072b 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h @@ -114,6 +114,7 @@ private: GLuint attrib_position; GLuint attrib_tex_coord; int currScreenDraw; // 0 is Top, 1 is Bottom + std::array cursor_pos = {0,0}; FrameDumperOpenGL frame_dumper; };