From b13f8084d31d3ad17e141142204713b00924ddad Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 23 Mar 2025 14:33:52 +0200 Subject: [PATCH] Remove color depth and match color depth selections. --- cd32_fmv.cpp | 2 +- cfgfile.cpp | 21 +--- include/options.h | 2 - od-win32/picasso96_win.cpp | 21 ++-- od-win32/render.h | 4 +- od-win32/resources/resource.h | 2 - od-win32/resources/winuae.rc | 5 +- od-win32/win32.cpp | 26 +---- od-win32/win32gfx.cpp | 189 ++++++++++------------------------ od-win32/win32gui.cpp | 113 +++----------------- 10 files changed, 89 insertions(+), 296 deletions(-) diff --git a/cd32_fmv.cpp b/cd32_fmv.cpp index 4f693f0b..986ea228 100644 --- a/cd32_fmv.cpp +++ b/cd32_fmv.cpp @@ -839,7 +839,7 @@ static void cl450_parse_frame(void) } break; case STATE_SEQUENCE: - cl450_frame_pixbytes = currprefs.color_mode != 5 ? 2 : 4; + cl450_frame_pixbytes = 4; mpeg2_convert(mpeg_decoder, cl450_frame_pixbytes == 2 ? mpeg2convert_rgb16 : mpeg2convert_rgb32, NULL); cl450_set_status(CL_INT_SEQ_V); cl450_frame_rate = mpeg_info->sequence->frame_period ? 27000000 / mpeg_info->sequence->frame_period : 0; diff --git a/cfgfile.cpp b/cfgfile.cpp index 3f20c17b..19e96866 100644 --- a/cfgfile.cpp +++ b/cfgfile.cpp @@ -97,7 +97,6 @@ static const struct cfg_lines opttable[] = {_T("gfx_center_horizontal"), _T("Center display horizontally?") }, {_T("gfx_center_vertical"), _T("Center display vertically?") }, {_T("gfx_colour_mode"), _T("") }, - {_T("32bit_blits"), _T("Enable 32 bit blitter emulation") }, {_T("immediate_blits"), _T("Perform blits immediately") }, {_T("show_leds"), _T("LED display") }, {_T("keyboard_leds"), _T("Keyboard LEDs") }, @@ -154,8 +153,6 @@ static const TCHAR *linemode[] = { _T("double3"), _T("scanlines3"), _T("scanlines3p2"), _T("scanlines3p3"), 0 }; static const TCHAR *speedmode[] = { _T("max"), _T("real"), 0 }; -static const TCHAR *colormode1[] = { _T("8bit"), _T("15bit"), _T("16bit"), _T("8bit_dither"), _T("4bit_dither"), _T("32bit"), 0 }; -static const TCHAR *colormode2[] = { _T("8"), _T("15"), _T("16"), _T("8d"), _T("4d"), _T("32"), 0 }; static const TCHAR *soundmode1[] = { _T("none"), _T("interrupts"), _T("normal"), _T("exact"), 0 }; static const TCHAR *soundmode2[] = { _T("none"), _T("interrupts"), _T("good"), _T("best"), 0 }; static const TCHAR *centermode1[] = { _T("none"), _T("simple"), _T("smart"), 0 }; @@ -2466,7 +2463,7 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type) cfgfile_write_strarr(f, _T("gfx_fullscreen_picasso"), fullmodes, p->gfx_apmode[1].gfx_fullscreen); cfgfile_write_strarr(f, _T("gfx_center_horizontal"), centermode1, p->gfx_xcenter); cfgfile_write_strarr(f, _T("gfx_center_vertical"), centermode1, p->gfx_ycenter); - cfgfile_write_strarr(f, _T("gfx_colour_mode"), colormode1, p->color_mode); + cfgfile_write_str(f, _T("gfx_colour_mode"), _T("32bit")); cfgfile_write_bool(f, _T("gfx_blacker_than_black"), p->gfx_blackerthanblack); cfgfile_dwrite_bool(f, _T("gfx_monochrome"), p->gfx_grayscale); cfgfile_dwrite_strarr(f, _T("gfx_atari_palette_fix"), threebitcolors, p->gfx_threebitcolors); @@ -3777,10 +3774,6 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value) || cfgfile_strval (option, value, _T("gfx_center_vertical"), &p->gfx_ycenter, centermode1, 1) || cfgfile_strval (option, value, _T("gfx_center_horizontal"), &p->gfx_xcenter, centermode2, 0) || cfgfile_strval (option, value, _T("gfx_center_vertical"), &p->gfx_ycenter, centermode2, 0) - || cfgfile_strval (option, value, _T("gfx_colour_mode"), &p->color_mode, colormode1, 1) - || cfgfile_strval (option, value, _T("gfx_colour_mode"), &p->color_mode, colormode2, 0) - || cfgfile_strval (option, value, _T("gfx_color_mode"), &p->color_mode, colormode1, 1) - || cfgfile_strval (option, value, _T("gfx_color_mode"), &p->color_mode, colormode2, 0) || cfgfile_strval (option, value, _T("gfx_max_horizontal"), &p->gfx_max_horizontal, maxhoriz, 0) || cfgfile_strval (option, value, _T("gfx_max_vertical"), &p->gfx_max_vertical, maxvert, 0) || cfgfile_strval(option, value, _T("gfx_api"), &p->gfx_api, filterapi, 0) @@ -3791,6 +3784,10 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value) || cfgfile_strval (option, value, _T("absolute_mouse"), &p->input_tablet, abspointers, 0)) return 1; + if (cfgfile_string(option, value, _T("gfx_colour_mode"), tmpbuf, sizeof tmpbuf / sizeof(TCHAR))) { + return 1; + } + if (cfgfile_intval(option, value, _T("gfx_rotation"), &p->gfx_rotation, 1)) { p->gf[GF_NORMAL].gfx_filter_rotation = p->gfx_rotation; p->gf[GF_INTERLACE].gfx_filter_rotation = p->gfx_rotation; @@ -7755,13 +7752,6 @@ int parse_cmdline_option (struct uae_prefs *p, TCHAR c, const TCHAR *arg) break; - case 'H': - p->color_mode = _tstoi (arg); - if (p->color_mode < 0) { - write_log (_T("Bad color mode selected. Using default.\n")); - p->color_mode = 0; - } - break; default: write_log (_T("Unknown option `-%c'!\n"), c); break; @@ -8516,7 +8506,6 @@ void default_prefs (struct uae_prefs *p, bool reset, int type) p->gfx_max_vertical = VRES_DOUBLE; p->gfx_autoresolution_minv = 0; p->gfx_autoresolution_minh = 0; - p->color_mode = 2; p->gfx_blackerthanblack = 0; p->gfx_autoresolution_vga = true; p->gfx_apmode[0].gfx_backbuffers = 2; diff --git a/include/options.h b/include/options.h index fc17139b..3dde5f4b 100644 --- a/include/options.h +++ b/include/options.h @@ -611,7 +611,6 @@ struct uae_prefs { int gfx_threebitcolors; int gfx_api; int gfx_api_options; - int color_mode; int gfx_extrawidth; int gfx_extraheight; bool lightboost_strobo; @@ -902,7 +901,6 @@ struct uae_prefs { bool win32_iconified_nosound; int win32_iconified_input; - bool win32_rtgmatchdepth; bool win32_rtgallowscaling; int win32_rtgscaleaspectratio; int win32_rtgvblankrate; diff --git a/od-win32/picasso96_win.cpp b/od-win32/picasso96_win.cpp index 5fe4fb42..92db31aa 100644 --- a/od-win32/picasso96_win.cpp +++ b/od-win32/picasso96_win.cpp @@ -1109,9 +1109,6 @@ static void setconvert(int monid) if (vidinfo->host_mode != vidinfo->ohost_mode || state->RGBFormat != vidinfo->orgbformat) { write_log (_T("RTG conversion: Depth=%d HostRGBF=%d P96RGBF=%d Mode=%d/%d\n"), picasso_vidinfo[monid].pixbytes, vidinfo->host_mode, state->RGBFormat, vidinfo->picasso_convert[0], vidinfo->picasso_convert[1]); - if (vidinfo->host_mode != vidinfo->ohost_mode && isfullscreen() > 0 && currprefs.win32_rtgmatchdepth) { - state->ModeChanged = true; - } vidinfo->ohost_mode = vidinfo->host_mode; vidinfo->orgbformat = state->RGBFormat; } @@ -2521,7 +2518,7 @@ static int _cdecl resolution_compare (const void *a, const void *b) return -1; if (ma->res.height > mb->res.height) return 1; - return ma->depth - mb->depth; + return 0; } static int missmodes[] = { 320, 200, 320, 240, 320, 256, 640, 400, 640, 480, 640, 512, 800, 600, 1024, 768, 1280, 1024, -1 }; @@ -2557,7 +2554,7 @@ static void picasso96_alloc2 (TrapContext *ctx) for (int mon = 0; Displays[mon].monitorname; mon++) { struct PicassoResolution *DisplayModes = Displays[mon].DisplayModes; i = 0; - while (DisplayModes[i].depth >= 0) { + while (DisplayModes[i].inuse) { for (j = 0; missmodes[j * 2] >= 0; j++) { if (DisplayModes[i].res.width == missmodes[j * 2 + 0] && DisplayModes[i].res.height == missmodes[j * 2 + 1]) { missmodes[j * 2 + 0] = 0; @@ -2572,7 +2569,7 @@ static void picasso96_alloc2 (TrapContext *ctx) for (int mon = 0; Displays[mon].monitorname; mon++) { struct PicassoResolution *DisplayModes = Displays[mon].DisplayModes; i = 0; - while (DisplayModes[i].depth >= 0) { + while (DisplayModes[i].inuse) { if (DisplayModes[i].rawmode) { i++; continue; @@ -2604,8 +2601,7 @@ static void picasso96_alloc2 (TrapContext *ctx) int k; for (k = 0; k < cnt; k++) { if (newmodes[k].res.width == DisplayModes[i].res.width && - newmodes[k].res.height == DisplayModes[i].res.height && - newmodes[k].depth == DisplayModes[i].depth) + newmodes[k].res.height == DisplayModes[i].res.height) break; } if (k >= cnt) { @@ -2625,7 +2621,7 @@ static void picasso96_alloc2 (TrapContext *ctx) size += PSSO_ModeInfo_sizeof * depths; } #endif - newmodes[cnt].depth = -1; + newmodes[cnt].inuse = false; for (i = 0; i < cnt; i++) { int depth; @@ -2833,7 +2829,7 @@ static uae_u32 REGPARAM2 picasso_InitCard (TrapContext *ctx) i = 0; unkcnt = cnt = 0; - while (newmodes[i].depth >= 0) { + while (newmodes[i].inuse) { struct LibResolution res = { 0 }; int j = i; if (addmode(ctx, AmigaBoardInfo, &amem, &res, newmodes[i].res.width, newmodes[i].res.height, NULL, 0, &unkcnt)) { @@ -2841,7 +2837,7 @@ static uae_u32 REGPARAM2 picasso_InitCard (TrapContext *ctx) s = au (res.Name); write_log (_T("%2d: %08X %4dx%4d %s\n"), ++cnt, res.DisplayID, res.Width, res.Height, s); xfree (s); - while (newmodes[i].depth >= 0 + while (newmodes[i].inuse && newmodes[i].res.width == newmodes[j].res.width && newmodes[i].res.height == newmodes[j].res.height) i++; @@ -3162,9 +3158,6 @@ static uae_u32 REGPARAM2 picasso_SetGC (TrapContext *ctx) state->VirtualHeight = state->Height; /* in case SetPanning doesn't get called */ uae_u8 d = trap_get_byte(ctx, modeinfo + PSSO_ModeInfo_Depth); - if (d != state->GC_Depth && isfullscreen() > 0 && currprefs.win32_rtgmatchdepth) { - state->ModeChanged = true; - } state->GC_Depth = d; state->GC_Flags = trap_get_byte(ctx, modeinfo + PSSO_ModeInfo_Flags); diff --git a/od-win32/render.h b/od-win32/render.h index 8a80cbcf..2d3ebb23 100644 --- a/od-win32/render.h +++ b/od-win32/render.h @@ -21,14 +21,12 @@ struct ScreenResolution struct PicassoResolution { + bool inuse; struct ScreenResolution res; - int depth; /* depth in bytes-per-pixel */ int residx; int refresh[MAX_REFRESH_RATES]; /* refresh-rates in Hz */ int refreshtype[MAX_REFRESH_RATES]; /* 0=normal,1=raw,2=lace */ TCHAR name[25]; - /* Bit mask of RGBFF_xxx values. */ - uae_u32 colormodes; int rawmode; bool lace; // all modes lace }; diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 0128d0ae..d990ac90 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -466,7 +466,6 @@ #define IDC_DISPLAYSELECT 1024 #define IDC_AUTOCONFIG 1025 #define IDC_PRINTERLIST 1025 -#define IDC_RESOLUTIONDEPTH 1025 #define IDC_CHIPMEM 1026 #define IDC_CREATELOGFILE 1026 #define IDC_PORT0_JOYS 1026 @@ -1224,7 +1223,6 @@ #define IDC_HDFINFO3 1783 #define IDC_DBG_ADDRINPUTTXT 1784 #define IDC_RTG_SCALE 1785 -#define IDC_RTG_MATCH_DEPTH 1786 #define IDC_RTG_8BIT 1787 #define IDC_RTG_16BIT 1788 #define IDC_PATHS_CONFIGCACHE 1788 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 4dfc54ed..8eb23b13 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -159,8 +159,7 @@ BEGIN GROUPBOX "Screen",IDC_SCREENRESTEXT,1,4,393,81,BS_LEFT COMBOBOX IDC_DISPLAYSELECT,10,17,375,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP RTEXT "Fullscreen:",IDC_STATIC,3,35,51,15,SS_CENTERIMAGE - COMBOBOX IDC_RESOLUTION,59,35,76,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_RESOLUTIONDEPTH,144,35,62,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_RESOLUTION,59,35,93,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP RTEXT "Windowed:",IDC_STATIC,2,52,51,15,SS_CENTERIMAGE EDITTEXT IDC_XSIZE,59,54,43,12,ES_NUMBER EDITTEXT IDC_YSIZE,110,54,43,12,ES_NUMBER @@ -1264,8 +1263,6 @@ BEGIN RTEXT "VRAM size: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,2,98,76,10,SS_NOTIFY | SS_CENTERIMAGE CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,94,103,20 EDITTEXT IDC_P96RAM,201,97,40,12,ES_CENTER | ES_READONLY - CONTROL "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,117,177,10 CONTROL "Scale if smaller than display size setting",IDC_RTG_SCALE, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,130,175,10 CONTROL "Always scale in windowed mode",IDC_RTG_SCALE_ALLOW, diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index a38695b2..338ebdc0 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -4425,15 +4425,13 @@ void target_fixup_options (struct uae_prefs *p) if (p->rtgboards[0].rtgmem_type >= GFXBOARD_HARDWARE) { p->rtg_hardwareinterrupt = false; p->rtg_hardwaresprite = false; - p->win32_rtgmatchdepth = false; - p->color_mode = 5; } struct MultiDisplay *md = getdisplay(p, 0); for (int j = 0; j < MAX_AMIGADISPLAYS; j++) { if (p->gfx_monitor[j].gfx_size_fs.special == WH_NATIVE) { int i; - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (i = 0; md->DisplayModes[i].inuse; i++) { if (md->DisplayModes[i].res.width == md->rect.right - md->rect.left && md->DisplayModes[i].res.height == md->rect.bottom - md->rect.top) { p->gfx_monitor[j].gfx_size_fs.width = md->DisplayModes[i].res.width; @@ -4442,26 +4440,12 @@ void target_fixup_options (struct uae_prefs *p) break; } } - if (md->DisplayModes[i].depth < 0) { + if (!md->DisplayModes[i].inuse) { p->gfx_monitor[j].gfx_size_fs.special = 0; write_log(_T("Native resolution not found.\n")); } } } - /* switch from 32 to 16 or vice versa if mode does not exist */ - if (1 || isfullscreen() > 0) { - int depth = p->color_mode == 5 ? 4 : 2; - for (int i = 0; md->DisplayModes[i].depth >= 0; i++) { - if (md->DisplayModes[i].depth == depth) { - depth = 0; - break; - } - } - if (depth) { - p->color_mode = p->color_mode == 5 ? 2 : 5; - } - } - if ((p->gfx_apmode[0].gfx_vsyncmode || p->gfx_apmode[1].gfx_vsyncmode) ) { if (p->produce_sound && sound_devices[p->win32_soundcard]->type == SOUND_DEVICE_DS) { p->win32_soundcard = 0; @@ -4513,7 +4497,6 @@ void target_default_options (struct uae_prefs *p, int type) p->win32_powersavedisabled = true; p->win32_gui_control = false; p->sana2 = 0; - p->win32_rtgmatchdepth = 1; p->gf[GF_RTG].gfx_filter_autoscale = RTG_MODE_SCALE; p->win32_rtgallowscaling = 0; p->win32_rtgscaleaspectratio = -1; @@ -4527,8 +4510,6 @@ void target_default_options (struct uae_prefs *p, int type) p->win32_commandpathend[0] = 0; p->win32_statusbar = 1; p->gfx_api = 2; - if (p->gfx_api > 1) - p->color_mode = 5; if (p->gf[GF_NORMAL].gfx_filter == 0) p->gf[GF_NORMAL].gfx_filter = 1; if (p->gf[GF_RTG].gfx_filter == 0) @@ -4626,7 +4607,6 @@ void target_save_options (struct zfile *f, struct uae_prefs *p) cfgfile_target_dwrite_str_escape(f, _T("midiin_device_name"), midp->name); cfgfile_target_dwrite_bool (f, _T("midirouter"), p->win32_midirouter); - cfgfile_target_dwrite_bool (f, _T("rtg_match_depth"), p->win32_rtgmatchdepth); cfgfile_target_dwrite_bool(f, _T("rtg_scale_small"), p->gf[GF_RTG].gfx_filter_autoscale == 1); cfgfile_target_dwrite_bool(f, _T("rtg_scale_center"), p->gf[GF_RTG].gfx_filter_autoscale == 2); cfgfile_target_dwrite_bool (f, _T("rtg_scale_allow"), p->win32_rtgallowscaling); @@ -4859,7 +4839,7 @@ static int target_parse_option_host(struct uae_prefs *p, const TCHAR *option, co return 1; } - if (cfgfile_yesno(option, value, _T("rtg_match_depth"), &p->win32_rtgmatchdepth)) + if (cfgfile_yesno(option, value, _T("rtg_match_depth"), &tbool)) return 1; if (cfgfile_yesno(option, value, _T("rtg_scale_small"), &tbool)) { p->gf[GF_RTG].gfx_filter_autoscale = tbool ? RTG_MODE_SCALE : 0; diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index 9bdbcc9d..151b36e6 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -644,7 +644,7 @@ int getrefreshrate(int monid, int width, int height) return 0; struct MultiDisplay *md = getdisplay(&currprefs, monid); - for (int i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (int i = 0; md->DisplayModes[i].inuse; i++) { struct PicassoResolution *pr = &md->DisplayModes[i]; if (pr->res.width == width && pr->res.height == height) { for (int j = 0; pr->refresh[j] > 0; j++) { @@ -661,7 +661,6 @@ int getrefreshrate(int monid, int width, int height) static void addmode (struct MultiDisplay *md, DEVMODE *dm, int rawmode) { - int ct; int i, j; int w = dm->dmPelsWidth; int h = dm->dmPelsHeight; @@ -673,6 +672,9 @@ static void addmode (struct MultiDisplay *md, DEVMODE *dm, int rawmode) write_log (_T("Ignored mode %d*%d\n"), w, h); return; } + if (d != 32) { + return; + } if (dm->dmFields & DM_DISPLAYFREQUENCY) { freq = dm->dmDisplayFrequency; @@ -683,23 +685,9 @@ static void addmode (struct MultiDisplay *md, DEVMODE *dm, int rawmode) lace = (dm->dmDisplayFlags & DM_INTERLACED) != 0; } - ct = 0; - if (d == 8) - ct = RGBMASK_8BIT; - if (d == 15) - ct = RGBMASK_15BIT; - if (d == 16) - ct = RGBMASK_16BIT; - if (d == 24) - ct = RGBMASK_24BIT; - if (d == 32) - ct = RGBMASK_32BIT; - if (ct == 0) - return; - d /= 8; i = 0; - while (md->DisplayModes[i].depth >= 0) { - if (md->DisplayModes[i].depth == d && md->DisplayModes[i].res.width == w && md->DisplayModes[i].res.height == h) { + while (md->DisplayModes[i].inuse) { + if (md->DisplayModes[i].res.width == w && md->DisplayModes[i].res.height == h) { for (j = 0; j < MAX_REFRESH_RATES; j++) { if (md->DisplayModes[i].refresh[j] == 0 || md->DisplayModes[i].refresh[j] == freq) break; @@ -716,24 +704,23 @@ static void addmode (struct MultiDisplay *md, DEVMODE *dm, int rawmode) i++; } i = 0; - while (md->DisplayModes[i].depth >= 0) + while (md->DisplayModes[i].inuse) { i++; - if (i >= MAX_PICASSO_MODES - 1) + } + if (i >= MAX_PICASSO_MODES - 1) { return; + } + md->DisplayModes[i].inuse = true; md->DisplayModes[i].rawmode = rawmode; md->DisplayModes[i].lace = lace; md->DisplayModes[i].res.width = w; md->DisplayModes[i].res.height = h; - md->DisplayModes[i].depth = d; md->DisplayModes[i].refresh[0] = freq; md->DisplayModes[i].refreshtype[0] = (lace ? REFRESH_RATE_LACE : 0) | (rawmode ? REFRESH_RATE_RAW : 0); md->DisplayModes[i].refresh[1] = 0; - md->DisplayModes[i].colormodes = ct; - md->DisplayModes[i + 1].depth = -1; - _stprintf (md->DisplayModes[i].name, _T("%dx%d%s, %d-bit"), + _stprintf (md->DisplayModes[i].name, _T("%dx%d%s"), md->DisplayModes[i].res.width, md->DisplayModes[i].res.height, - lace ? _T("i") : _T(""), - md->DisplayModes[i].depth * 8); + lace ? _T("i") : _T("")); } static int _cdecl resolution_compare (const void *a, const void *b) @@ -748,7 +735,7 @@ static int _cdecl resolution_compare (const void *a, const void *b) return -1; if (ma->res.height > mb->res.height) return 1; - return ma->depth - mb->depth; + return 0; } static void sortmodes (struct MultiDisplay *md) @@ -757,10 +744,11 @@ static void sortmodes (struct MultiDisplay *md) int pw = -1, ph = -1; i = 0; - while (md->DisplayModes[i].depth >= 0) + while (md->DisplayModes[i].inuse) { i++; + } qsort (md->DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (i = 0; md->DisplayModes[i].inuse; i++) { int j, k; for (j = 0; md->DisplayModes[i].refresh[j]; j++) { for (k = j + 1; md->DisplayModes[i].refresh[k]; k++) { @@ -807,7 +795,7 @@ static void modesList (struct MultiDisplay *md) int i, j; i = 0; - while (md->DisplayModes[i].depth >= 0) { + while (md->DisplayModes[i].inuse) { write_log (_T("%d: %s%s ("), i, md->DisplayModes[i].rawmode ? _T("!") : _T(""), md->DisplayModes[i].name); j = 0; while (md->DisplayModes[i].refresh[j] > 0) { @@ -1073,8 +1061,7 @@ void sortdisplays (void) } md = Displays; while (md->monitorname) { - md->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); - md->DisplayModes[0].depth = -1; + md->DisplayModes = xcalloc(struct PicassoResolution, MAX_PICASSO_MODES); write_log (_T("%s '%s' [%s]\n"), md->adaptername, md->adapterid, md->adapterkey); write_log (_T("-: %s [%s]\n"), md->fullname, md->monitorid); @@ -1086,13 +1073,13 @@ void sortdisplays (void) while (EnumDisplaySettingsEx (md->adapterid, idx, &dm, mode ? EDS_RAWMODE : 0)) { int found = 0; int idx2 = 0; - while (md->DisplayModes[idx2].depth >= 0 && !found) { + while (md->DisplayModes[idx2].inuse && !found) { struct PicassoResolution *pr = &md->DisplayModes[idx2]; if (dm.dmPelsWidth == w && dm.dmPelsHeight == h && dm.dmBitsPerPel == b) { if (dm.dmDisplayFrequency > deskhz) deskhz = dm.dmDisplayFrequency; } - if (pr->res.width == dm.dmPelsWidth && pr->res.height == dm.dmPelsHeight && pr->depth == dm.dmBitsPerPel / 8) { + if (pr->res.width == dm.dmPelsWidth && pr->res.height == dm.dmPelsHeight) { for (i = 0; pr->refresh[i]; i++) { if (pr->refresh[i] == dm.dmDisplayFrequency) { found = 1; @@ -1119,8 +1106,9 @@ void sortdisplays (void) sortmodes (md); modesList (md); i = 0; - while (md->DisplayModes[i].depth > 0) + while (md->DisplayModes[i].inuse) { i++; + } write_log (_T("%d display modes.\n"), i); md++; } @@ -1131,74 +1119,46 @@ void sortdisplays (void) /* DirectX will fail with "Mode not supported" if we try to switch to a full * screen mode that doesn't match one of the dimensions we got during enumeration. * So try to find a best match for the given resolution in our list. */ -int WIN32GFX_AdjustScreenmode (struct MultiDisplay *md, int *pwidth, int *pheight, int *ppixbits) +int WIN32GFX_AdjustScreenmode (struct MultiDisplay *md, int *pwidth, int *pheight) { struct PicassoResolution *best; - uae_u32 selected_mask = (*ppixbits == 8 ? RGBMASK_8BIT - : *ppixbits == 15 ? RGBMASK_15BIT - : *ppixbits == 16 ? RGBMASK_16BIT - : *ppixbits == 24 ? RGBMASK_24BIT - : RGBMASK_32BIT); int pass, i = 0, index = 0; for (pass = 0; pass < 2; pass++) { struct PicassoResolution *dm; - uae_u32 mask = (pass == 0 - ? selected_mask - : RGBMASK_8BIT | RGBMASK_15BIT | RGBMASK_16BIT | RGBMASK_24BIT | RGBMASK_32BIT); /* %%% - BERND, were you missing 15-bit here??? */ i = 0; index = 0; best = &md->DisplayModes[0]; dm = &md->DisplayModes[1]; - while (dm->depth >= 0) { + while (dm->inuse) { /* do we already have supported resolution? */ - if (dm->res.width == *pwidth && dm->res.height == *pheight && dm->depth == (*ppixbits / 8)) + if (dm->res.width == *pwidth && dm->res.height == *pheight) return i; - if ((dm->colormodes & mask) != 0) { - if (dm->res.width <= best->res.width && dm->res.height <= best->res.height - && dm->res.width >= *pwidth && dm->res.height >= *pheight) - { - best = dm; - index = i; - } - if (dm->res.width >= best->res.width && dm->res.height >= best->res.height - && dm->res.width <= *pwidth && dm->res.height <= *pheight) - { - best = dm; - index = i; - } + if (dm->res.width <= best->res.width && dm->res.height <= best->res.height + && dm->res.width >= *pwidth && dm->res.height >= *pheight) + { + best = dm; + index = i; + } + if (dm->res.width >= best->res.width && dm->res.height >= best->res.height + && dm->res.width <= *pwidth && dm->res.height <= *pheight) + { + best = dm; + index = i; } dm++; i++; } if (best->res.width == *pwidth && best->res.height == *pheight) { - selected_mask = mask; /* %%% - BERND, I added this - does it make sense? Otherwise, I'd specify a 16-bit display-mode for my - Workbench (using -H 2, but SHOULD have been -H 1), and end up with an 8-bit mode instead*/ break; } } *pwidth = best->res.width; *pheight = best->res.height; - if (best->colormodes & selected_mask) - return index; - - /* Ordering here is done such that 16-bit is preferred, followed by 15-bit, 8-bit, 32-bit and 24-bit */ - if (best->colormodes & RGBMASK_16BIT) - *ppixbits = 16; - else if (best->colormodes & RGBMASK_15BIT) /* %%% - BERND, this possibility was missing? */ - *ppixbits = 15; - else if (best->colormodes & RGBMASK_8BIT) - *ppixbits = 8; - else if (best->colormodes & RGBMASK_32BIT) - *ppixbits = 32; - else if (best->colormodes & RGBMASK_24BIT) - *ppixbits = 24; - else - index = -1; return index; } @@ -1749,15 +1709,6 @@ static void close_hwnds(struct AmigaMonitor *mon) gfx_hdr = false; } -static bool canmatchdepth(void) -{ - if (!currprefs.win32_rtgmatchdepth) - return false; - if (currprefs.gfx_api >= 2) - return false; - return true; -} - static void updatemodes(struct AmigaMonitor *mon) { DWORD flags = 0; @@ -1828,20 +1779,8 @@ static void update_gfxparams(struct AmigaMonitor *mon) #if FORCE16BIT mon->currentmode.current_depth = 16; #else - mon->currentmode.current_depth = currprefs.color_mode < 5 && currprefs.gfx_api == 1 ? 16 : 32; + mon->currentmode.current_depth = 32; #endif - if (mon->screen_is_picasso && canmatchdepth() && isfullscreen () > 0) { - int pbits = state->BytesPerPixel * 8; - if (pbits <= 8) { - if (mon->currentmode.current_depth == 32) - pbits = 32; - else - pbits = 16; - } - if (pbits == 24) - pbits = 32; - mon->currentmode.current_depth = pbits; - } mon->currentmode.amiga_width = mon->currentmode.current_width; mon->currentmode.amiga_height = mon->currentmode.current_height; @@ -1862,19 +1801,17 @@ static void update_gfxparams(struct AmigaMonitor *mon) mon->scalepicasso = -1; } } else if (isfullscreen () > 0) { - if (!canmatchdepth()) { // can't scale to different color depth - if (mon->currentmode.native_width > state->Width && mon->currentmode.native_height > state->Height) { - if (currprefs.gf[GF_RTG].gfx_filter_autoscale) - mon->scalepicasso = RTG_MODE_SCALE; - if (currprefs.gf[GF_RTG].gfx_filter_autoscale == RTG_MODE_INTEGER_SCALE) { - mon->scalepicasso = RTG_MODE_INTEGER_SCALE; - } + if (mon->currentmode.native_width > state->Width && mon->currentmode.native_height > state->Height) { + if (currprefs.gf[GF_RTG].gfx_filter_autoscale) + mon->scalepicasso = RTG_MODE_SCALE; + if (currprefs.gf[GF_RTG].gfx_filter_autoscale == RTG_MODE_INTEGER_SCALE) { + mon->scalepicasso = RTG_MODE_INTEGER_SCALE; } - if (currprefs.gf[GF_RTG].gfx_filter_autoscale == RTG_MODE_CENTER) - mon->scalepicasso = currprefs.gf[GF_RTG].gfx_filter_autoscale; - if (!mon->scalepicasso && currprefs.win32_rtgscaleaspectratio) - mon->scalepicasso = -1; } + if (currprefs.gf[GF_RTG].gfx_filter_autoscale == RTG_MODE_CENTER) + mon->scalepicasso = currprefs.gf[GF_RTG].gfx_filter_autoscale; + if (!mon->scalepicasso && currprefs.win32_rtgscaleaspectratio) + mon->scalepicasso = -1; } else if (isfullscreen () == 0) { if (currprefs.gf[GF_RTG].gfx_filter_autoscale == RTG_MODE_INTEGER_SCALE) { mon->scalepicasso = RTG_MODE_INTEGER_SCALE; @@ -2121,7 +2058,6 @@ int check_prefs_changed_gfx(void) c |= currprefs.gfx_size_win.x != changed_prefs.gfx_size_win.x ? 16 : 0; c |= currprefs.gfx_size_win.y != changed_prefs.gfx_size_win.y ? 16 : 0; #endif - c |= currprefs.color_mode != changed_prefs.color_mode ? 2 | 16 : 0; c |= currprefs.gfx_apmode[0].gfx_fullscreen != changed_prefs.gfx_apmode[0].gfx_fullscreen ? 16 : 0; c |= currprefs.gfx_apmode[1].gfx_fullscreen != changed_prefs.gfx_apmode[1].gfx_fullscreen ? 16 : 0; c |= currprefs.gfx_apmode[0].gfx_vsync != changed_prefs.gfx_apmode[0].gfx_vsync ? 2 | 16 : 0; @@ -2229,8 +2165,6 @@ int check_prefs_changed_gfx(void) c |= currprefs.win32_nonotificationicon != changed_prefs.win32_nonotificationicon ? 32 : 0; c |= currprefs.win32_borderless != changed_prefs.win32_borderless ? 32 : 0; c |= currprefs.win32_blankmonitors != changed_prefs.win32_blankmonitors ? 32 : 0; - c |= currprefs.win32_rtgmatchdepth != changed_prefs.win32_rtgmatchdepth ? 2 : 0; -// c |= currprefs.win32_rtgscalemode != changed_prefs.win32_rtgscalemode ? (2 | 8 | 64) : 0; c |= currprefs.win32_rtgallowscaling != changed_prefs.win32_rtgallowscaling ? (2 | 8 | 64) : 0; c |= currprefs.win32_rtgscaleaspectratio != changed_prefs.win32_rtgscaleaspectratio ? (8 | 64) : 0; c |= currprefs.win32_rtgvblankrate != changed_prefs.win32_rtgvblankrate ? 8 : 0; @@ -2246,7 +2180,6 @@ int check_prefs_changed_gfx(void) currprefs.gfx_autoresolution = changed_prefs.gfx_autoresolution; currprefs.gfx_autoresolution_vga = changed_prefs.gfx_autoresolution_vga; - currprefs.color_mode = changed_prefs.color_mode; currprefs.lightboost_strobo = changed_prefs.lightboost_strobo; if (currprefs.gfx_api != changed_prefs.gfx_api) { @@ -2336,8 +2269,6 @@ int check_prefs_changed_gfx(void) currprefs.win32_borderless = changed_prefs.win32_borderless; currprefs.win32_blankmonitors = changed_prefs.win32_blankmonitors; currprefs.win32_statusbar = changed_prefs.win32_statusbar; - currprefs.win32_rtgmatchdepth = changed_prefs.win32_rtgmatchdepth; -// currprefs.win32_rtgscalemode = changed_prefs.win32_rtgscalemode; currprefs.win32_rtgallowscaling = changed_prefs.win32_rtgallowscaling; currprefs.win32_rtgscaleaspectratio = changed_prefs.win32_rtgscaleaspectratio; currprefs.win32_rtgvblankrate = changed_prefs.win32_rtgvblankrate; @@ -2790,9 +2721,9 @@ bool vsync_switchmode(int monid, int hz) lacecheck = true; for (int extra = 1; extra >= -1 && !found; extra--) { - for (i = 0; md->DisplayModes[i].depth >= 0 && !found; i++) { + for (i = 0; md->DisplayModes[i].inuse && !found; i++) { struct PicassoResolution *r = &md->DisplayModes[i]; - if (r->res.width == w && (r->res.height == newh + cnt || r->res.height == newh - cnt) && r->depth == d) { + if (r->res.width == w && (r->res.height == newh + cnt || r->res.height == newh - cnt)) { int j; for (j = 0; r->refresh[j] > 0; j++) { if (doublecheck) { @@ -2878,10 +2809,8 @@ static int modeswitchneeded(struct AmigaMonitor *mon, struct winuae_currentmode if (isfullscreen () > 0) { /* fullscreen to fullscreen */ if (mon->screen_is_picasso) { - if (state->BytesPerPixel > 1 && state->BytesPerPixel * 8 != wc->current_depth && canmatchdepth()) - return -1; if (state->Width < wc->current_width && state->Height < wc->current_height) { - if ((currprefs.gf[GF_RTG].gfx_filter_autoscale == 1 || (currprefs.gf[GF_RTG].gfx_filter_autoscale == 2 && currprefs.win32_rtgallowscaling)) && !canmatchdepth()) + if (currprefs.gf[GF_RTG].gfx_filter_autoscale == 1 || (currprefs.gf[GF_RTG].gfx_filter_autoscale == 2 && currprefs.win32_rtgallowscaling)) return 0; } if (state->Width != wc->current_width || @@ -2891,8 +2820,7 @@ static int modeswitchneeded(struct AmigaMonitor *mon, struct winuae_currentmode state->Height == wc->current_height) { if (state->BytesPerPixel * 8 == wc->current_depth || state->BytesPerPixel == 1) return 0; - if (!canmatchdepth()) - return 0; + return 0; } return 1; } else { @@ -3304,12 +3232,12 @@ static int getbestmode(struct AmigaMonitor *mon, int nextbest) if (!md) return 0; ratio = mon->currentmode.native_width > mon->currentmode.native_height ? 1 : 0; - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (i = 0; md->DisplayModes[i].inuse; i++) { struct PicassoResolution *pr = &md->DisplayModes[i]; if (pr->res.width == mon->currentmode.native_width && pr->res.height == mon->currentmode.native_height) break; } - if (md->DisplayModes[i].depth >= 0) { + if (md->DisplayModes[i].inuse) { if (!nextbest) break; while (md->DisplayModes[i].res.width == mon->currentmode.native_width && md->DisplayModes[i].res.height == mon->currentmode.native_height) @@ -3319,7 +3247,7 @@ static int getbestmode(struct AmigaMonitor *mon, int nextbest) } // first iterate only modes that have similar aspect ratio startidx = i; - for (; md->DisplayModes[i].depth >= 0; i++) { + for (; md->DisplayModes[i].inuse; i++) { struct PicassoResolution *pr = &md->DisplayModes[i]; int r = pr->res.width > pr->res.height ? 1 : 0; if (pr->res.width >= mon->currentmode.native_width && pr->res.height >= mon->currentmode.native_height && r == ratio) { @@ -3334,7 +3262,7 @@ static int getbestmode(struct AmigaMonitor *mon, int nextbest) } // still not match? check all modes i = startidx; - for (; md->DisplayModes[i].depth >= 0; i++) { + for (; md->DisplayModes[i].inuse; i++) { struct PicassoResolution *pr = &md->DisplayModes[i]; int r = pr->res.width > pr->res.height ? 1 : 0; if (pr->res.width >= mon->currentmode.native_width && pr->res.height >= mon->currentmode.native_height) { @@ -3991,18 +3919,12 @@ retry: if (errv == 2 && currprefs.gfx_api == 0) { write_log("Retrying D3D %s\n", err); changed_prefs.gfx_api = currprefs.gfx_api = 2; - changed_prefs.color_mode = currprefs.color_mode = 5; update_gfxparams(mon); goto retry; } gfx_hdr = false; if (currprefs.gfx_api >= 2) { D3D_free(0, true); - if (err[0] == 0 && currprefs.color_mode != 5) { - changed_prefs.color_mode = currprefs.color_mode = 5; - update_gfxparams(mon); - goto retry; - } changed_prefs.gfx_api = currprefs.gfx_api = 1; d3d_select(&currprefs); error_log(_T("Direct3D11 failed to initialize ('%s'), falling back to Direct3D9."), err); @@ -4018,7 +3940,6 @@ retry: goto retry; } else if (currprefs.gfx_api > 0) { changed_prefs.gfx_api = currprefs.gfx_api = 0; - changed_prefs.color_mode = currprefs.color_mode = 5; changed_prefs.gf[ad->gf_index].gfx_filter = currprefs.gf[ad->gf_index].gfx_filter = 1; update_gfxparams(mon); d3d_select(&currprefs); diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 7d91b782..377139f6 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -8381,24 +8381,22 @@ static int display_mode_index (uae_u32 x, uae_u32 y, uae_u32 d) struct MultiDisplay *md = getdisplay(&workprefs, 0); j = 0; - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (i = 0; md->DisplayModes[i].inuse; i++) { if (md->DisplayModes[i].res.width == x && - md->DisplayModes[i].res.height == y && - md->DisplayModes[i].depth == d) + md->DisplayModes[i].res.height == y) break; j++; } if (x == 0 && y == 0) { j = 0; - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { + for (i = 0; md->DisplayModes[i].inuse; i++) { if (md->DisplayModes[i].res.width == md->rect.right - md->rect.left && - md->DisplayModes[i].res.height == md->rect.bottom - md->rect.top && - md->DisplayModes[i].depth == d) + md->DisplayModes[i].res.height == md->rect.bottom - md->rect.top) break; j++; } } - if(md->DisplayModes[i].depth < 0) + if(!md->DisplayModes[i].inuse) j = -1; return j; } @@ -8517,69 +8515,20 @@ void init_da (HWND hDlg) static int gui_display_depths[3]; static void init_display_mode (HWND hDlg) { - int d, d2, index; - int i, cnt; + int index; struct MultiDisplay *md = getdisplay(&workprefs, 0); struct monconfig *gm = &workprefs.gfx_monitor[0]; - switch (workprefs.color_mode) - { - case 2: - d = 16; - break; - case 5: - default: - d = 32; - break; - } - - if (workprefs.gfx_apmode[0].gfx_fullscreen) { - d2 = d; - if ((index = WIN32GFX_AdjustScreenmode (md, &gm->gfx_size_fs.width, &gm->gfx_size_fs.height, &d2)) >= 0) { - switch (d2) - { - case 15: - case 16: - workprefs.color_mode = 2; - d = 2; - break; - case 32: - default: - workprefs.color_mode = 5; - d = 4; - break; - } - } - } else { - d = d / 8; - } - if (gm->gfx_size_fs.special == WH_NATIVE) { int cnt = (int)xSendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_GETCOUNT, 0, 0); xSendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_SETCURSEL, cnt - 1, 0); - index = display_mode_index (gm->gfx_size_fs.width, gm->gfx_size_fs.height, d); + index = display_mode_index (gm->gfx_size_fs.width, gm->gfx_size_fs.height, 4); } else { - index = display_mode_index (gm->gfx_size_fs.width, gm->gfx_size_fs.height, d); + index = display_mode_index (gm->gfx_size_fs.width, gm->gfx_size_fs.height, 4); if (index >= 0) xSendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_SETCURSEL, md->DisplayModes[index].residx, 0); gm->gfx_size_fs.special = 0; } - xSendDlgItemMessage(hDlg, IDC_RESOLUTIONDEPTH, CB_RESETCONTENT, 0, 0); - cnt = 0; - gui_display_depths[0] = gui_display_depths[1] = gui_display_depths[2] = -1; - if (index >= 0) { - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { - if (md->DisplayModes[i].depth > 1 && md->DisplayModes[i].residx == md->DisplayModes[index].residx) { - TCHAR tmp[64]; - _stprintf (tmp, _T("%d"), md->DisplayModes[i].depth * 8); - xSendDlgItemMessage(hDlg, IDC_RESOLUTIONDEPTH, CB_ADDSTRING, 0, (LPARAM)tmp); - if (md->DisplayModes[i].depth == d) - xSendDlgItemMessage (hDlg, IDC_RESOLUTIONDEPTH, CB_SETCURSEL, cnt, 0); - gui_display_depths[cnt] = md->DisplayModes[i].depth; - cnt++; - } - } - } init_frequency_combo (hDlg, index); } @@ -8852,8 +8801,8 @@ static void init_resolution_combo (HWND hDlg) idx = -1; xSendDlgItemMessage(hDlg, IDC_RESOLUTION, CB_RESETCONTENT, 0, 0); - for (i = 0; md->DisplayModes[i].depth >= 0; i++) { - if (md->DisplayModes[i].depth > 1 && md->DisplayModes[i].residx != idx) { + for (i = 0; md->DisplayModes[i].inuse; i++) { + if (md->DisplayModes[i].residx != idx) { _stprintf (tmp, _T("%dx%d%s"), md->DisplayModes[i].res.width, md->DisplayModes[i].res.height, md->DisplayModes[i].lace ? _T("i") : _T("")); if (md->DisplayModes[i].rawmode) _tcscat (tmp, _T(" (*)")); @@ -9110,36 +9059,24 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l bool native = false; struct MultiDisplay *md = getdisplay(&workprefs, 0); posn1 = xSendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_GETCURSEL, 0, 0); - int posn2 = xSendDlgItemMessage (hDlg, IDC_RESOLUTIONDEPTH, CB_GETCURSEL, 0, 0); if (posn1 != CB_ERR) { - if (posn2 == CB_ERR) - posn2 = 0; workprefs.gfx_monitor[0].gfx_size_fs.special = 0; - for (dmode = 0; md->DisplayModes[dmode].depth >= 0; dmode++) { + for (dmode = 0; md->DisplayModes[dmode].inuse; dmode++) { if (md->DisplayModes[dmode].residx == posn1) break; } - if (md->DisplayModes[dmode].depth <= 0) { - for (dmode = 0; md->DisplayModes[dmode].depth >= 0; dmode++) { + if (!md->DisplayModes[dmode].inuse) { + for (dmode = 0; md->DisplayModes[dmode].inuse; dmode++) { if (md->DisplayModes[dmode].res.width == md->rect.right - md->rect.left && - md->DisplayModes[dmode].res.height == md->rect.bottom - md->rect.top && - md->DisplayModes[dmode].depth == gui_display_depths[posn2]) + md->DisplayModes[dmode].res.height == md->rect.bottom - md->rect.top) { workprefs.gfx_monitor[0].gfx_size_fs.special = WH_NATIVE; break; } } - if (md->DisplayModes[dmode].depth <= 0) + if (!md->DisplayModes[dmode].inuse) { dmode = -1; - } else { - i = dmode; - while (md->DisplayModes[dmode].residx == posn1) { - if (md->DisplayModes[dmode].depth == gui_display_depths[posn2]) - break; - dmode++; } - if (md->DisplayModes[dmode].residx != posn1) - dmode = i; } } @@ -9161,22 +9098,9 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l posn = xSendDlgItemMessage(hDlg, IDC_OVERSCANMODE, CB_GETCURSEL, 0, 0); if (posn != CB_ERR) workprefs.gfx_overscanmode = posn; - } else if ((LOWORD (wParam) == IDC_RESOLUTION || LOWORD(wParam) == IDC_RESOLUTIONDEPTH) && dmode >= 0) { + } else if (LOWORD (wParam) == IDC_RESOLUTION && dmode >= 0) { workprefs.gfx_monitor[0].gfx_size_fs.width = md->DisplayModes[dmode].res.width; workprefs.gfx_monitor[0].gfx_size_fs.height = md->DisplayModes[dmode].res.height; - switch(md->DisplayModes[dmode].depth) - { - case 2: - workprefs.color_mode = 2; - break; - case 3: - case 4: - workprefs.color_mode = 5; - break; - default: - workprefs.color_mode = 0; - break; - } /* Set the Int boxes */ SetDlgItemInt (hDlg, IDC_XSIZE, workprefs.gfx_monitor[0].gfx_size_win.width, FALSE); SetDlgItemInt (hDlg, IDC_YSIZE, workprefs.gfx_monitor[0].gfx_size_win.height, FALSE); @@ -11741,7 +11665,6 @@ static void enable_for_expansiondlg(HWND hDlg) ew(hDlg, IDC_RTG_16BIT, rtg); ew(hDlg, IDC_RTG_24BIT, rtg); ew(hDlg, IDC_RTG_32BIT, rtg); - ew(hDlg, IDC_RTG_MATCH_DEPTH, rtg3); ew(hDlg, IDC_RTG_SCALE, rtg2); ew(hDlg, IDC_RTG_CENTER, rtg2); ew(hDlg, IDC_RTG_INTEGERSCALE, rtg2); @@ -11862,7 +11785,6 @@ static void values_to_expansiondlg(HWND hDlg) CheckDlgButton(hDlg, IDC_RTG_CENTER, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_CENTER); CheckDlgButton(hDlg, IDC_RTG_INTEGERSCALE, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_INTEGER_SCALE); CheckDlgButton(hDlg, IDC_RTG_SCALE_ALLOW, workprefs.win32_rtgallowscaling); - CheckDlgButton(hDlg, IDC_RTG_MATCH_DEPTH, workprefs.win32_rtgmatchdepth); CheckDlgButton(hDlg, IDC_RTG_VBINTERRUPT, workprefs.rtg_hardwareinterrupt); CheckDlgButton(hDlg, IDC_RTG_HWSPRITE, workprefs.rtg_hardwaresprite); CheckDlgButton(hDlg, IDC_RTG_THREAD, workprefs.rtg_multithread); @@ -11990,9 +11912,6 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP recursive++; switch (LOWORD (wParam)) { - case IDC_RTG_MATCH_DEPTH: - workprefs.win32_rtgmatchdepth = ischecked(hDlg, IDC_RTG_MATCH_DEPTH); - break; case IDC_RTG_SCALE: workprefs.gf[1].gfx_filter_autoscale = ischecked(hDlg, IDC_RTG_SCALE) ? RTG_MODE_SCALE : 0; setchecked(hDlg, IDC_RTG_CENTER, false); -- 2.47.3