mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-21 05:09:46 -06:00
scale screen gap
also moar optimization...
This commit is contained in:
@ -773,16 +773,16 @@ void GPU2D::DrawScanline(u32 line)
|
|||||||
// convert to 32-bit BGRA
|
// convert to 32-bit BGRA
|
||||||
// note: 32-bit RGBA would be more straightforward, but
|
// note: 32-bit RGBA would be more straightforward, but
|
||||||
// BGRA seems to be more compatible (Direct2D soft, cairo...)
|
// BGRA seems to be more compatible (Direct2D soft, cairo...)
|
||||||
for (int i = 0; i < LineStride; i++)
|
for (int i = 0; i < LineStride; i+=2)
|
||||||
{
|
{
|
||||||
u32 c = dst[i];
|
u64 c = *(u64*)&dst[i];
|
||||||
|
|
||||||
u32 r = c << 18;
|
u64 r = (c << 18) & 0xFC000000FC0000;
|
||||||
u32 g = (c << 2) & 0xFC00;
|
u64 g = (c << 2) & 0xFC000000FC00;
|
||||||
u32 b = (c >> 14) & 0xFC;
|
u64 b = (c >> 14) & 0xFC000000FC;
|
||||||
c = r | g | b;
|
c = r | g | b;
|
||||||
|
|
||||||
dst[i] = c | ((c & 0x00C0C0C0) >> 6) | 0xFF000000;
|
*(u64*)&dst[i] = c | ((c & 0x00C0C0C000C0C0C0) >> 6) | 0xFF000000FF000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -812,7 +812,7 @@ void SetupScreenRects(int width, int height)
|
|||||||
else
|
else
|
||||||
sizemode = ScreenSizing;
|
sizemode = ScreenSizing;
|
||||||
|
|
||||||
int screenW, screenH;
|
int screenW, screenH, gap;
|
||||||
if (sideways)
|
if (sideways)
|
||||||
{
|
{
|
||||||
screenW = 192;
|
screenW = 192;
|
||||||
@ -824,8 +824,11 @@ void SetupScreenRects(int width, int height)
|
|||||||
screenH = 192;
|
screenH = 192;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gap = ScreenGap;
|
||||||
|
|
||||||
screenW *= ScreenScale;
|
screenW *= ScreenScale;
|
||||||
screenH *= ScreenScale;
|
screenH *= ScreenScale;
|
||||||
|
gap *= ScreenScale;
|
||||||
|
|
||||||
uiRect *topscreen, *bottomscreen;
|
uiRect *topscreen, *bottomscreen;
|
||||||
if (ScreenRotation == 1 || ScreenRotation == 2)
|
if (ScreenRotation == 1 || ScreenRotation == 2)
|
||||||
@ -846,7 +849,7 @@ void SetupScreenRects(int width, int height)
|
|||||||
int heightreq;
|
int heightreq;
|
||||||
int startX = 0;
|
int startX = 0;
|
||||||
|
|
||||||
width -= ScreenGap;
|
width -= gap;
|
||||||
|
|
||||||
if (sizemode == 0) // even
|
if (sizemode == 0) // even
|
||||||
{
|
{
|
||||||
@ -884,7 +887,7 @@ void SetupScreenRects(int width, int height)
|
|||||||
topscreen->X = startX;
|
topscreen->X = startX;
|
||||||
topscreen->Y = ((height - heightreq) / 2) + (heightreq - topscreen->Height);
|
topscreen->Y = ((height - heightreq) / 2) + (heightreq - topscreen->Height);
|
||||||
|
|
||||||
bottomscreen->X = topscreen->X + topscreen->Width + ScreenGap;
|
bottomscreen->X = topscreen->X + topscreen->Width + gap;
|
||||||
|
|
||||||
if (sizemode == 1)
|
if (sizemode == 1)
|
||||||
{
|
{
|
||||||
@ -905,7 +908,7 @@ void SetupScreenRects(int width, int height)
|
|||||||
int widthreq;
|
int widthreq;
|
||||||
int startY = 0;
|
int startY = 0;
|
||||||
|
|
||||||
height -= ScreenGap;
|
height -= gap;
|
||||||
|
|
||||||
if (sizemode == 0) // even
|
if (sizemode == 0) // even
|
||||||
{
|
{
|
||||||
@ -943,7 +946,7 @@ void SetupScreenRects(int width, int height)
|
|||||||
topscreen->Y = startY;
|
topscreen->Y = startY;
|
||||||
topscreen->X = (width - topscreen->Width) / 2;
|
topscreen->X = (width - topscreen->Width) / 2;
|
||||||
|
|
||||||
bottomscreen->Y = topscreen->Y + topscreen->Height + ScreenGap;
|
bottomscreen->Y = topscreen->Y + topscreen->Height + gap;
|
||||||
|
|
||||||
if (sizemode == 1)
|
if (sizemode == 1)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user