diff options
-rw-r--r-- | src/GPU.cpp | 11 | ||||
-rw-r--r-- | src/libui_sdl/DlgVideoSettings.cpp | 8 | ||||
-rw-r--r-- | src/libui_sdl/main.cpp | 27 |
3 files changed, 30 insertions, 16 deletions
diff --git a/src/GPU.cpp b/src/GPU.cpp index a904a90..f4e9fd4 100644 --- a/src/GPU.cpp +++ b/src/GPU.cpp @@ -92,11 +92,6 @@ bool Init() //SetFramebufferScale(1); SetFramebufferScale(1, 1); - memset(Framebuffer[0][0], 0, (256*192)<<(FBScale[0]*2)); - memset(Framebuffer[0][1], 0, (256*192)<<(FBScale[1]*2)); - memset(Framebuffer[1][0], 0, (256*192)<<(FBScale[0]*2)); - memset(Framebuffer[1][1], 0, (256*192)<<(FBScale[1]*2)); - return true; } @@ -264,6 +259,9 @@ void SetFramebufferScale(int top, int bottom) Framebuffer[0][0] = new u32[fbsize]; Framebuffer[1][0] = new u32[fbsize]; + memset(Framebuffer[0][0], 0, fbsize*4); + memset(Framebuffer[1][0], 0, fbsize*4); + int backbuf = FrontBuffer ? 0 : 1; if (NDS::PowerControl9 & (1<<15)) { @@ -288,6 +286,9 @@ void SetFramebufferScale(int top, int bottom) Framebuffer[0][1] = new u32[fbsize]; Framebuffer[1][1] = new u32[fbsize]; + memset(Framebuffer[0][1], 0, fbsize*4); + memset(Framebuffer[1][1], 0, fbsize*4); + int backbuf = FrontBuffer ? 0 : 1; if (NDS::PowerControl9 & (1<<15)) { diff --git a/src/libui_sdl/DlgVideoSettings.cpp b/src/libui_sdl/DlgVideoSettings.cpp index b6544ed..4d5de71 100644 --- a/src/libui_sdl/DlgVideoSettings.cpp +++ b/src/libui_sdl/DlgVideoSettings.cpp @@ -46,7 +46,12 @@ int OnCloseWindow(uiWindow* window, void* blarg) return 1; } -// +void OnResolutionChanged(uiRadioButtons* rb, void* blarg) +{ + int id = uiRadioButtonsSelected(rb); + + printf("res=%d\n", id); +} void OnCancel(uiButton* btn, void* blarg) { @@ -144,6 +149,7 @@ void Open() uiBoxAppend(in_ctrl, uiControl(lbl), 0); uiRadioButtons* rbResolution = uiNewRadioButtons(); + uiRadioButtonsOnSelected(rbResolution, OnResolutionChanged, NULL); uiRadioButtonsAppend(rbResolution, "1x"); uiRadioButtonsAppend(rbResolution, "2x"); uiRadioButtonsAppend(rbResolution, "4x"); diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index 2853a90..b79853e 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -834,7 +834,6 @@ void SetupScreenRects(int width, int height) screenW *= ScreenScale; screenH *= ScreenScale; - gap *= ScreenScale; uiRect *topscreen, *bottomscreen; if (ScreenRotation == 1 || ScreenRotation == 2) @@ -1029,9 +1028,6 @@ void SetMinSize(int w, int h) int cw, ch; uiWindowContentSize(MainWindow, &cw, &ch); - w *= ScreenScale; - h *= ScreenScale; - uiControlSetMinSize(uiControl(MainDrawArea), w, h); if ((cw < w) || (ch < h)) { @@ -1534,26 +1530,31 @@ void EnsureProperMinSize() { bool isHori = (ScreenRotation == 1 || ScreenRotation == 3); + int w0 = 256 * ScreenScale; + int h0 = 192 * ScreenScale; + int w1 = 256 * ScreenScale; + int h1 = 192 * ScreenScale; + if (ScreenLayout == 0) // natural { if (isHori) - SetMinSize(384+ScreenGap, 256); + SetMinSize(h0+ScreenGap+h1, std::max(w0,w1)); else - SetMinSize(256, 384+ScreenGap); + SetMinSize(std::max(w0,w1), h0+ScreenGap+h1); } else if (ScreenLayout == 1) // vertical { if (isHori) - SetMinSize(192, 512+ScreenGap); + SetMinSize(std::max(h0,h1), w0+ScreenGap+w1); else - SetMinSize(256, 384+ScreenGap); + SetMinSize(std::max(w0,w1), h0+ScreenGap+h1); } else // horizontal { if (isHori) - SetMinSize(384+ScreenGap, 256); + SetMinSize(h0+ScreenGap+h1, std::max(w0,w1)); else - SetMinSize(512+ScreenGap, 192); + SetMinSize(w0+ScreenGap+w1, std::max(h0,h1)); } } @@ -1565,6 +1566,8 @@ void OnSetScreenSize(uiMenuItem* item, uiWindow* window, void* param) int w = 256*factor * ScreenScale; int h = 192*factor * ScreenScale; + // FIXME + if (ScreenLayout == 0) // natural { if (isHori) @@ -1696,6 +1699,10 @@ void ApplyNewSettings(int type) Platform::LAN_DeInit(); Platform::LAN_Init(); } + else if (type == 2) // upscaling/video settings + { + // + } EmuRunning = prevstatus; } |