From ab727196242ebb95ab137edcdeb83a6d1681a196 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 15 Sep 2024 19:37:02 +0300 Subject: [PATCH] 5310b1 --- include/options.h | 2 +- od-win32/parser.cpp | 10 ++++++++++ od-win32/rp.cpp | 9 +++++++-- od-win32/statusline_win32.cpp | 2 +- od-win32/win32.h | 6 +++--- od-win32/win32_scaler.cpp | 2 ++ od-win32/win32gui.cpp | 22 ++++++++++++---------- 7 files changed, 36 insertions(+), 17 deletions(-) diff --git a/include/options.h b/include/options.h index 7eb67c8c..d7930146 100644 --- a/include/options.h +++ b/include/options.h @@ -16,7 +16,7 @@ #define UAEMAJOR 5 #define UAEMINOR 3 -#define UAESUBREV 0 +#define UAESUBREV 1 #define MAX_AMIGADISPLAYS 4 diff --git a/od-win32/parser.cpp b/od-win32/parser.cpp index d18da23d..d914d049 100644 --- a/od-win32/parser.cpp +++ b/od-win32/parser.cpp @@ -369,6 +369,16 @@ static void DoSomeWeirdPrintingStuff (uae_char val) } if (prtbufbytes < PRTBUFSIZE) { prtbuf[prtbufbytes++] = val; + +#ifdef RETROPLATFORM + if (rp_isprinter() && + !currprefs.parallel_postscript_emulation && + currprefs.parallel_matrix_emulation < PARALLEL_MATRIX_EPSON && + (rp_isprinteropen() || prtbufbytes >= MIN_PRTBYTES)) { + + flushprtbuf(); + } +#endif } else { flushprtbuf (); *prtbuf = val; diff --git a/od-win32/rp.cpp b/od-win32/rp.cpp index 4d5c896f..e6de3c63 100644 --- a/od-win32/rp.cpp +++ b/od-win32/rp.cpp @@ -910,7 +910,7 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) int hres, vres; float hmult = 1, vmult = 1; struct MultiDisplay *disp; - bool keepaspect = (sm->dwScreenMode & RP_SCREENMODE_SCALING_SUBPIXEL) && !(sm->dwScreenMode & RP_SCREENMODE_SCALING_STRETCH); + bool keepaspect = !(sm->dwScreenMode & RP_SCREENMODE_SCALING_STRETCH); bool stretch = (sm->dwScreenMode & RP_SCREENMODE_SCALING_STRETCH) != 0; bool forcesize = smm == RP_SCREENMODE_SCALE_TARGET && sm->lTargetWidth > 0 && sm->lTargetHeight > 0; bool integerscale = !(sm->dwScreenMode & RP_SCREENMODE_SCALING_SUBPIXEL) && !(sm->dwScreenMode & RP_SCREENMODE_SCALING_STRETCH) && smm >= RP_SCREENMODE_SCALE_TARGET; @@ -1129,9 +1129,11 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) if (keepaspect) { p->gf[0].gfx_filter_aspect = -1; + p->gf[0].gfx_filter_keep_autoscale_aspect = 1; p->gf[0].gfx_filter_keep_aspect = 1; } else { p->gf[0].gfx_filter_aspect = 0; + p->gf[0].gfx_filter_keep_autoscale_aspect = 0; p->gf[0].gfx_filter_keep_aspect = 0; } @@ -2583,7 +2585,10 @@ void rp_writeprinter(uae_char *b, int len) RPSendMessagex(RP_IPC_TO_HOST_DEVICEOPEN, unit, 0, NULL, 0, &guestinfo, NULL); rp_printeropen = 1; } - RPSendMessagex(RP_IPC_TO_HOST_DEVICEWRITEBYTES, unit, 0, b, len, &guestinfo, NULL); + if (len == 1) + RPSendMessagex(RP_IPC_TO_HOST_DEVICEWRITEBYTE, unit, (LPARAM)*b & 0xFF, 0, 0, &guestinfo, NULL); + else + RPSendMessagex(RP_IPC_TO_HOST_DEVICEWRITEBYTES, unit, 0, b, len, &guestinfo, NULL); } void rp_test(void) diff --git a/od-win32/statusline_win32.cpp b/od-win32/statusline_win32.cpp index 5e5ec4fa..540d434c 100644 --- a/od-win32/statusline_win32.cpp +++ b/od-win32/statusline_win32.cpp @@ -210,8 +210,8 @@ static void create_led_font(HWND parent, int monid) hdc = CreateCompatibleDC(NULL); if (hdc) { - int y = getdpiforwindow(parent); if (isfullscreen() <= 0) { + int y = getdpiforwindow(parent); statusline_fontsize = -MulDiv(statusline_fontsize, y, 72); } statusline_fontsize = statusline_fontsize * statusline_get_multiplier(monid) / 100; diff --git a/od-win32/win32.h b/od-win32/win32.h index 3ea67c24..274a0871 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -15,17 +15,17 @@ #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100) #define GETBDD(x) ((x) % 100) -#define WINUAEPUBLICBETA 0 +#define WINUAEPUBLICBETA 1 #define LANG_DLL 1 #define LANG_DLL_FULL_VERSION_MATCH 0 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("") +#define WINUAEBETA _T("1") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2024, 6, 1) +#define WINUAEDATE MAKEBD(2024, 9, 15) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32_scaler.cpp b/od-win32/win32_scaler.cpp index 1ff5d6ad..cd5918f1 100644 --- a/od-win32/win32_scaler.cpp +++ b/od-win32/win32_scaler.cpp @@ -416,6 +416,7 @@ void getfilterrect2(int monid, RECT *sr, RECT *dr, RECT *zr, int dst_width, int } if (scalemode == AUTOSCALE_INTEGER || ok == false) { getmanualpos(monid, &cx, &cy, &cw, &ch); + crealh = ch; set_custom_limits(cw, ch, cx, cy, true); store_custom_limits(cw, ch, cx, cy); scl = true; @@ -502,6 +503,7 @@ void getfilterrect2(int monid, RECT *sr, RECT *dr, RECT *zr, int dst_width, int //write_log (_T("%dx%d %dx%d %dx%d\n"), currprefs.gfx_xcenter_pos, currprefs.gfx_ycenter_pos, cx, cy, cw, ch); + crealh = ch; cv = 1; } else if (scalemode == AUTOSCALE_CENTER) { diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 36cd8195..038ad316 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -23633,17 +23633,19 @@ static int GetSettings (int all_options, HWND hwnd) } for (;;) { - HANDLE IPChandle; - IPChandle = geteventhandleIPC (globalipc); - if (globalipc && IPChandle != INVALID_HANDLE_VALUE) { - MsgWaitForMultipleObjects (1, &IPChandle, FALSE, INFINITE, QS_ALLINPUT); - while (checkIPC (globalipc, &workprefs)); - if (quit_program == -UAE_QUIT) - break; - } else { - WaitMessage (); + if (!PeekMessage(&msg, NULL, 0, 0, 0)) { + HANDLE IPChandle; + IPChandle = geteventhandleIPC(globalipc); + if (globalipc && IPChandle != INVALID_HANDLE_VALUE) { + MsgWaitForMultipleObjects(1, &IPChandle, FALSE, INFINITE, QS_ALLINPUT); + while (checkIPC(globalipc, &workprefs)); + if (quit_program == -UAE_QUIT) + break; + } else { + WaitMessage(); + } } - dialogmousemove (dhwnd); + dialogmousemove(dhwnd); while ((v = PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))) { if (dialogreturn >= 0) -- 2.47.3