From f5a7cb71fd17d5eb97ce3325892a2c769258c8ce Mon Sep 17 00:00:00 2001 From: Arisotura Date: Sat, 18 May 2019 01:42:50 +0200 Subject: [PATCH] also, do master brightness --- src/GPU.cpp | 4 ++-- src/GPU2D.cpp | 3 ++- src/libui_sdl/main.cpp | 4 ++-- src/libui_sdl/main_shaders.h | 24 +++++++++++++++++++++++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/GPU.cpp b/src/GPU.cpp index 1799ef8f..23e4fa8c 100644 --- a/src/GPU.cpp +++ b/src/GPU.cpp @@ -254,7 +254,7 @@ void SetDisplaySettings(int topscale, int bottomscale, bool accel) FBScale[0] = accel ? 0 : topscale; int fbsize; - if (accel) fbsize = (256*3 + 1) * 192; + if (accel) fbsize = (256*3 + 2) * 192; else fbsize = (256 * 192) << (FBScale[0] * 2); if (Framebuffer[0][0]) delete[] Framebuffer[0][0]; if (Framebuffer[1][0]) delete[] Framebuffer[1][0]; @@ -283,7 +283,7 @@ void SetDisplaySettings(int topscale, int bottomscale, bool accel) FBScale[1] = accel ? 0 : bottomscale; int fbsize; - if (accel) fbsize = (256*3 + 1) * 192; + if (accel) fbsize = (256*3 + 2) * 192; else fbsize = (256 * 192) << (FBScale[1] * 2); if (Framebuffer[0][1]) delete[] Framebuffer[0][1]; if (Framebuffer[1][1]) delete[] Framebuffer[1][1]; diff --git a/src/GPU2D.cpp b/src/GPU2D.cpp index 9ec240b9..88436dbf 100644 --- a/src/GPU2D.cpp +++ b/src/GPU2D.cpp @@ -626,7 +626,7 @@ u32 GPU2D::ColorBrightnessDown(u32 val, u32 factor) void GPU2D::DrawScanline(u32 line) { - int stride = Accelerated ? (256*3 + 1) : LineStride; + int stride = Accelerated ? (256*3 + 2) : LineStride; u32* dst = &Framebuffer[stride * line]; int n3dline = line; @@ -804,6 +804,7 @@ void GPU2D::DrawScanline(u32 line) ctl |= (EVY << 26); dst[256*3] = ctl; + dst[256*3 + 1] = MasterBrightness; return; } diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index f4a1fdbb..27f03696 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -367,9 +367,9 @@ void GLDrawing_DrawScreen() GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][0]); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 768, 256<> 6) & 0x3; if (dispmode == 1) @@ -182,6 +183,27 @@ ivec4 zog=pixel; } } + if (dispmode != 0) + { + int brightmode = mbright.g >> 6; + if (brightmode == 1) + { + // up + int evy = mbright.r & 0x1F; + if (evy > 16) evy = 16; + + pixel += ((ivec4(0x3F,0x3F,0x3F,0) - pixel) * evy) >> 4; + } + else if (brightmode == 2) + { + // down + int evy = mbright.r & 0x1F; + if (evy > 16) evy = 16; + + pixel -= (pixel * evy) >> 4; + } + } + pixel.rgb <<= 2; pixel.rgb |= (pixel.rgb >> 6);