]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Restore interlace filter change detection.
authorToni Wilen <twilen@winuae.net>
Sun, 23 Mar 2025 12:34:44 +0000 (14:34 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 23 Mar 2025 12:34:44 +0000 (14:34 +0200)
custom.cpp
drawing.cpp
include/drawing.h

index 7eac62e8674e3f52d56fc49a11ffc9fd22daa686..666d4f18358c227c6cad03177f7e78ab8be81bbb 100644 (file)
@@ -5169,11 +5169,32 @@ static void check_interlace(void)
        if (is != interlace_seen) {
                interlace_seen = is;
                init_hz();
+               changed = true;
        } else if (nis) {
                interlace_seen = 0;
                init_hz();
        }
 
+       if (changed) {
+               if (currprefs.gf[GF_INTERLACE].enable && memcmp(&currprefs.gf[GF_NORMAL], &currprefs.gf[GF_INTERLACE], sizeof(struct gfx_filterdata))) {
+                       changed_prefs.gf[GF_NORMAL].changed = true;
+                       changed_prefs.gf[GF_INTERLACE].changed = true;
+                       if (ad->interlace_on != (interlace_seen != 0)) {
+                               ad->interlace_on = interlace_seen != 0;
+                               set_config_changed();
+                       }
+               }
+       }
+       if (!ad->picasso_on) {
+               if (ad->interlace_on) {
+                       ad->gf_index = GF_INTERLACE;
+               } else {
+                       ad->gf_index = GF_NORMAL;
+               }
+       } else {
+               ad->gf_index = GF_RTG;
+       }
+
        prevlofs[2] = prevlofs[1];
        prevlofs[1] = prevlofs[0];
        prevlofs[0] = lof_display;
index b06a1fa17b38da665bb34f5483cb80ec80581be8..886177ff63d44857d0a2b85a3cef1f6f28561b87 100644 (file)
@@ -2120,64 +2120,6 @@ static void gfxbuffer_reset(int monid)
        vidinfo->drawbuffer.unlockscr = dummy_unlock;
 }
 
-void notice_resolution_seen (int res, bool lace)
-{
-       if (res > frame_res)
-               frame_res = res;
-       if (res > 0)
-               can_use_lores = 0;
-       if (!frame_res_lace && lace)
-               frame_res_lace = lace;
-}
-
-bool notice_interlace_seen (int monid, bool lace)
-{
-       struct amigadisplay *ad = &adisplays[0];
-       bool changed = false;
-       bool interlace_on = false;
-
-       // non-lace to lace switch (non-lace active at least one frame)?
-       if (lace) {
-               if (interlace_seen == 0) {
-                       changed = true;
-                       interlace_on = true;
-                       //write_log (_T("->lace PC=%x\n"), m68k_getpc ());
-               }
-               interlace_seen = currprefs.gfx_vresolution ? 1 : -1;
-       } else {
-               if (interlace_seen) {
-                       changed = true;
-                       //write_log (_T("->non-lace PC=%x\n"), m68k_getpc ());
-               }
-               interlace_seen = 0;
-       }
-
-       if (changed) {
-               if (currprefs.gf[GF_INTERLACE].enable && memcmp(&currprefs.gf[GF_NORMAL], &currprefs.gf[GF_INTERLACE], sizeof(struct gfx_filterdata))) {
-                       changed_prefs.gf[GF_NORMAL].changed = true;
-                       changed_prefs.gf[GF_INTERLACE].changed = true;
-                       if (ad->interlace_on != interlace_on) {
-                               ad->interlace_on = interlace_on;
-                               set_config_changed();
-                       }
-               } else {
-                       ad->interlace_on = false;
-               }
-       }
-
-       if (!ad->picasso_on) {
-               if (ad->interlace_on) {
-                       ad->gf_index = GF_INTERLACE;
-               } else {
-                       ad->gf_index = GF_NORMAL;
-               }
-       } else {
-               ad->gf_index = GF_RTG;
-       }
-
-       return changed;
-}
-
 void allocvidbuffer(int monid, struct vidbuffer *buf, int width, int height, int depth)
 {
        memset(buf, 0, sizeof (struct vidbuffer));
index 7ce538361bdc67543e02e183635f71e1b1002bfd..4a5b938c6a8b6e0f9a13f7e6145e73af1f471e3a 100644 (file)
@@ -117,8 +117,6 @@ extern void vsync_handle_redraw (int long_field, int lof_changed, uae_u16, uae_u
 extern bool vsync_handle_check (void);
 extern void reset_drawing (void);
 extern void drawing_init (void);
-extern bool notice_interlace_seen(int, bool);
-extern void notice_resolution_seen(int, bool);
 extern bool frame_drawn (int monid);
 extern void redraw_frame(void);
 extern void full_redraw_all(void);