1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-13 23:27:12 +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
commit b13a35e16e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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));