aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libui_sdl/libui/ui.h1
-rw-r--r--src/libui_sdl/libui/windows/area.cpp13
-rw-r--r--src/libui_sdl/libui/windows/area.hpp2
-rw-r--r--src/libui_sdl/libui/windows/areadraw.cpp26
-rw-r--r--src/libui_sdl/main.cpp11
5 files changed, 38 insertions, 15 deletions
diff --git a/src/libui_sdl/libui/ui.h b/src/libui_sdl/libui/ui.h
index f76f218..908574d 100644
--- a/src/libui_sdl/libui/ui.h
+++ b/src/libui_sdl/libui/ui.h
@@ -334,6 +334,7 @@ _UI_EXTERN void uiAreaScrollTo(uiArea *a, double x, double y, double width, doub
// TODO release capture?
_UI_EXTERN void uiAreaBeginUserWindowMove(uiArea *a);
_UI_EXTERN void uiAreaBeginUserWindowResize(uiArea *a, uiWindowResizeEdge edge);
+_UI_EXTERN void uiAreaSetBackgroundColor(uiArea *a, int r, int g, int b);
_UI_EXTERN uiArea *uiNewArea(uiAreaHandler *ah);
_UI_EXTERN uiArea *uiNewScrollingArea(uiAreaHandler *ah, int width, int height);
diff --git a/src/libui_sdl/libui/windows/area.cpp b/src/libui_sdl/libui/windows/area.cpp
index 6bb8fe7..2185f25 100644
--- a/src/libui_sdl/libui/windows/area.cpp
+++ b/src/libui_sdl/libui/windows/area.cpp
@@ -167,6 +167,15 @@ void uiAreaBeginUserWindowResize(uiArea *a, uiWindowResizeEdge edge)
wParam, 0);
}
+
+void uiAreaSetBackgroundColor(uiArea *a, int r, int g, int b)
+{
+ a->bgR = r;
+ a->bgG = g;
+ a->bgB = b;
+}
+
+
uiArea *uiNewArea(uiAreaHandler *ah)
{
uiArea *a;
@@ -184,6 +193,8 @@ uiArea *uiNewArea(uiAreaHandler *ah)
hInstance, a,
FALSE);
+ uiAreaSetBackgroundColor(a, -1, -1, -1);
+
return a;
}
@@ -206,6 +217,8 @@ uiArea *uiNewScrollingArea(uiAreaHandler *ah, int width, int height)
hInstance, a,
FALSE);
+ uiAreaSetBackgroundColor(a, -1, -1, -1);
+
// set initial scrolling parameters
areaUpdateScroll(a);
diff --git a/src/libui_sdl/libui/windows/area.hpp b/src/libui_sdl/libui/windows/area.hpp
index 86a62de..add62dd 100644
--- a/src/libui_sdl/libui/windows/area.hpp
+++ b/src/libui_sdl/libui/windows/area.hpp
@@ -24,6 +24,8 @@ struct uiArea {
BOOL inside;
BOOL tracking;
+ int bgR, bgG, bgB;
+
ID2D1HwndRenderTarget *rt;
};
diff --git a/src/libui_sdl/libui/windows/areadraw.cpp b/src/libui_sdl/libui/windows/areadraw.cpp
index 7b3dc69..0bdf58a 100644
--- a/src/libui_sdl/libui/windows/areadraw.cpp
+++ b/src/libui_sdl/libui/windows/areadraw.cpp
@@ -40,14 +40,24 @@ static HRESULT doPaint(uiArea *a, ID2D1RenderTarget *rt, RECT *clip)
// TODO only clear the clip area
// TODO clear with actual background brush
- bgcolorref = GetSysColor(COLOR_BTNFACE);
- bgcolor.r = ((float) GetRValue(bgcolorref)) / 255.0;
- // due to utter apathy on Microsoft's part, GetGValue() does not work with MSVC's Run-Time Error Checks
- // it has not worked since 2008 and they have *never* fixed it
- // TODO now that -RTCc has just been deprecated entirely, should we switch back?
- bgcolor.g = ((float) ((BYTE) ((bgcolorref & 0xFF00) >> 8))) / 255.0;
- bgcolor.b = ((float) GetBValue(bgcolorref)) / 255.0;
- bgcolor.a = 1.0;
+ if (a->bgR != -1)
+ {
+ bgcolor.r = ((float) a->bgR) / 255.0;
+ bgcolor.g = ((float) a->bgG) / 255.0;
+ bgcolor.b = ((float) a->bgB) / 255.0;
+ bgcolor.a = 1.0;
+ }
+ else
+ {
+ bgcolorref = GetSysColor(COLOR_BTNFACE);
+ bgcolor.r = ((float) GetRValue(bgcolorref)) / 255.0;
+ // due to utter apathy on Microsoft's part, GetGValue() does not work with MSVC's Run-Time Error Checks
+ // it has not worked since 2008 and they have *never* fixed it
+ // TODO now that -RTCc has just been deprecated entirely, should we switch back?
+ bgcolor.g = ((float) ((BYTE) ((bgcolorref & 0xFF00) >> 8))) / 255.0;
+ bgcolor.b = ((float) GetBValue(bgcolorref)) / 255.0;
+ bgcolor.a = 1.0;
+ }
rt->Clear(&bgcolor);
(*(ah->Draw))(ah, a, &dp);
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index 320f31e..ba0668a 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -313,13 +313,6 @@ void OnAreaDraw(uiAreaHandler* handler, uiArea* area, uiAreaDrawParams* params)
uiDrawBitmapDraw(params->Context, ScreenBitmap, &top, &TopScreenRect);
uiDrawRestore(params->Context);
- /*uiDrawMatrix blirg;
- uiDrawMatrixSetIdentity(&blirg);
- uiDrawMatrixTranslate(&blirg, -BottomScreenRect.X, -BottomScreenRect.Y);
- uiDrawMatrixRotate(&blirg, 0, 0, -M_PI/2.0f);//3.14);
- uiDrawMatrixTranslate(&blirg, BottomScreenRect.X, BottomScreenRect.Y+BottomScreenRect.Height);
- //uiDrawMatrixScale(&blirg, 128, 192, 2, 2);
- uiDrawTransform(params->Context, &blirg);*/
uiDrawSave(params->Context);
uiDrawTransform(params->Context, &BottomScreenTrans);
uiDrawBitmapDraw(params->Context, ScreenBitmap, &bot, &BottomScreenRect);
@@ -422,6 +415,9 @@ int OnAreaKeyEvent(uiAreaHandler* handler, uiArea* area, uiAreaKeyEvent* evt)
for (int i = 0; i < 12; i++)
if (evt->Scancode == Config::KeyMapping[i])
KeyInputMask &= ~(1<<i);
+
+ //if (evt->Scancode == 0x58) // F12
+ // NDS::debug(0);
}
return 1;
@@ -1081,6 +1077,7 @@ int main(int argc, char** argv)
MainDrawArea = uiNewArea(&areahandler);
uiWindowSetChild(MainWindow, uiControl(MainDrawArea));
uiControlSetMinSize(uiControl(MainDrawArea), 256, 384);
+ uiAreaSetBackgroundColor(MainDrawArea, 0, 0, 0); // TODO: make configurable?
EmuRunning = 2;
RunningSomething = false;