From: Toni Wilen Date: Sat, 4 Nov 2023 13:56:35 +0000 (+0200) Subject: Fix on screen keyboard transparency X-Git-Tag: 5.1.0~64 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ebb1210d7cbdf7d025e59aa432b108c643d6f768;p=francis%2Fwinuae.git Fix on screen keyboard transparency --- diff --git a/od-win32/direct3d11.cpp b/od-win32/direct3d11.cpp index 4042bd24..abd5df2f 100644 --- a/od-win32/direct3d11.cpp +++ b/od-win32/direct3d11.cpp @@ -5041,6 +5041,7 @@ static bool xD3D11_alloctexture(int monid, int w, int h) if (d3d->invalidmode) return false; + d3d->m_bitmapWidth = w; d3d->m_bitmapHeight = h; d3d->m_bitmapWidth2 = d3d->m_bitmapWidth; @@ -5548,8 +5549,24 @@ static bool xD3D11_extoverlay(struct extoverlay *ext, int monid) hr = d3d->m_deviceContext->Map(s->texture, 0, D3D11_MAP_WRITE_DISCARD, 0, &map); if (SUCCEEDED(hr)) { - for (int y = 0; y < s->height; y++) { - memcpy((uae_u8*)map.pData + y * map.RowPitch, ext->data + y * ext->width * 4, ext->width * 4); + if (d3d->hdr) { + for (int y = 0; y < s->height; y++) { + uae_u32 *dp = (uae_u32*)((uae_u8 *)map.pData + y * map.RowPitch); + uae_u32 *sp = (uae_u32*)(ext->data + y * ext->width * 4); + for (int x = 0; x < s->width; x++) { + uae_u32 v = *sp++; + uae_u16 t = (v >> 24) * 10 / 7; + if (t > 255) { + t = 255; + } + *dp++ = (v & 0xffffff) | (t << 24); + } + } + + } else { + for (int y = 0; y < s->height; y++) { + memcpy((uae_u8*)map.pData + y * map.RowPitch, ext->data + y * ext->width * 4, ext->width * 4); + } } d3d->m_deviceContext->Unmap(s->texture, 0); } diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index ca69f854..11cf0961 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -4434,8 +4434,8 @@ static struct osd_kb *osd_kb_data; static int osd_kb_selected = 11, osd_kb_x, osd_kb_y; struct extoverlay osd_kb_eo = { 0 }; -#define OSD_KB_TRANSPARENCY 0xee -#define OSD_KB_ACTIVE_TRANSPARENCY 0xee +#define OSD_KB_TRANSPARENCY 0xaa +#define OSD_KB_ACTIVE_TRANSPARENCY 0xaa #define OSD_KB_PRESSED_TRANSPARENCY 0xff #define OSD_KB_COLOR 0xeeeeee #define OSD_KB_ACTIVE_COLOR 0x44cc44