]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fixed OSD on the fly change, disappearing D3D scanlines in non-shader mode.
authorToni Wilen <twilen@winuae.net>
Mon, 26 Oct 2015 16:47:07 +0000 (18:47 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 26 Oct 2015 16:47:07 +0000 (18:47 +0200)
od-win32/direct3d.cpp
od-win32/win32_scaler.cpp

index 38a628d68ffd49cb9d6e2f502e98b865f1c77c6b..076c467dee985c91b1e2340428d047898a537194 100644 (file)
@@ -2122,12 +2122,12 @@ static int restoredeviceobjects (void)
                                createmasktexture (filterd3d->gfx_filtermask[i + MAX_FILTERSHADERS], s);
                        }
                }
-               if (filterd3d->gfx_filter_scanlines > 0) {
-                       createsltexture ();
-                       createscanlines (1);
-               }
                break;
        }
+       if (filterd3d->gfx_filter_scanlines > 0) {
+               createsltexture();
+               createscanlines(1);
+       }
        if (wasshader && !shaderon)
                write_log (_T("Falling back to non-shader mode\n"));
 
@@ -2181,7 +2181,8 @@ static void D3D_free2 (void)
        resetcount = 0;
        devicelost = 0;
        renderdisabled = false;
-       changed_prefs.leds_on_screen = currprefs.leds_on_screen = currprefs.leds_on_screen & ~STATUSLINE_TARGET;
+       changed_prefs.leds_on_screen &= ~STATUSLINE_TARGET;
+       currprefs.leds_on_screen &= ~STATUSLINE_TARGET;
 }
 
 void D3D_free (bool immediate)
@@ -2554,7 +2555,8 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
                break;
        }
 
-       changed_prefs.leds_on_screen = currprefs.leds_on_screen = currprefs.leds_on_screen | STATUSLINE_TARGET;
+       changed_prefs.leds_on_screen |= STATUSLINE_TARGET;
+       currprefs.leds_on_screen |= STATUSLINE_TARGET;
 
        if (!restoredeviceobjects ()) {
                D3D_free (true);
@@ -2666,7 +2668,8 @@ bool D3D_alloctexture (int w, int h)
        if (fakemode)
                return false;
 
-       changed_prefs.leds_on_screen = currprefs.leds_on_screen = currprefs.leds_on_screen | STATUSLINE_TARGET;
+       changed_prefs.leds_on_screen |= STATUSLINE_TARGET;
+       currprefs.leds_on_screen |= STATUSLINE_TARGET;
 
        freetextures ();
        return alloctextures ();
index 848b89e7c1e37c7eac52b4dc6f6cc489f209866c..e9076d7fda6861dbb32047735dfd0989c52afbb7 100644 (file)
@@ -755,7 +755,8 @@ void S2X_reset (void)
 
 void S2X_free (void)
 {
-       changed_prefs.leds_on_screen = currprefs.leds_on_screen = currprefs.leds_on_screen & ~STATUSLINE_TARGET;
+       changed_prefs.leds_on_screen &= ~STATUSLINE_TARGET;
+       currprefs.leds_on_screen &= ~STATUSLINE_TARGET;
 
        freesurface (tempsurf);
        tempsurf = 0;
@@ -786,7 +787,8 @@ bool S2X_init (int dw, int dh, int dd)
 
        S2X_free ();
        d3d = currprefs.gfx_api;
-       changed_prefs.leds_on_screen = currprefs.leds_on_screen = currprefs.leds_on_screen | STATUSLINE_TARGET;
+       changed_prefs.leds_on_screen |= STATUSLINE_TARGET;
+       currprefs.leds_on_screen |= STATUSLINE_TARGET;
 
        if (d3d)
                dd = amiga_depth2;