1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-02-28 17:19:20 +00:00

Merge pull request #519 from Interlisp/nhb-fix-sdl-display-bitmap-flushing

Fix display bitmap flushing on modification when using SDL display subsystem
This commit is contained in:
Nick Briggs
2024-12-15 09:25:29 -08:00
committed by GitHub
2 changed files with 9 additions and 3 deletions

View File

@@ -126,7 +126,7 @@ LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos)
if (displayflg) (currentdsp->mouse_visible)(IOPage->dlmousex, IOPage->dlmousey);
#endif /* SUNDISPLAY / DOS */
#ifdef XWINDOW
#if defined(XWINDOW) || defined(SDL)
flush_display_lineregion(dx, dstbase, w, h);
#endif /* XWINDOW */

View File

@@ -43,7 +43,9 @@ LispPTR N_OP_misc7(LispPTR arg1, LispPTR arg2, LispPTR arg3, LispPTR arg4, LispP
int offset;
DLword bmdata;
DLword bmmask;
#ifdef REALCURSOR
int displayflg;
#endif
DBPRINT(("MISC7 op with alpha byte %d.\n", alpha));
@@ -58,7 +60,11 @@ LispPTR N_OP_misc7(LispPTR arg1, LispPTR arg2, LispPTR arg3, LispPTR arg4, LispP
DBPRINT(("MISC7 args OK.\n"));
#ifdef REALCURSOR
displayflg = n_new_cursorin(base, x, (heightminus1 - y), 1, 1);
if (displayflg)
HideCursor();
#endif
/* Bitmaps use a positive integer coordinate system with the lower left
corner pixel at coordinate (0, 0). Storage is allocated in 16-bit words
@@ -79,12 +85,12 @@ LispPTR N_OP_misc7(LispPTR arg1, LispPTR arg2, LispPTR arg3, LispPTR arg4, LispP
}
#ifdef XWINDOW
#if defined(XWINDOW) || defined(SDL)
if (in_display_segment(base)) {
/* NB: base + offset doesn't need WORDPTR() wrapper */
flush_display_ptrregion(base + offset, 0, 16, 1);
}
#endif /* XWINDOW */
#endif /* XWINDOW || SDL */
ScreenLocked = NIL;
DBPRINT(("FBITMAPBIT old bit = 0x%x.\n", oldbit));