mirror of
https://github.com/Interlisp/maiko.git
synced 2026-04-26 04:17:27 +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:
@@ -126,7 +126,7 @@ LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos)
|
|||||||
if (displayflg) (currentdsp->mouse_visible)(IOPage->dlmousex, IOPage->dlmousey);
|
if (displayflg) (currentdsp->mouse_visible)(IOPage->dlmousex, IOPage->dlmousey);
|
||||||
#endif /* SUNDISPLAY / DOS */
|
#endif /* SUNDISPLAY / DOS */
|
||||||
|
|
||||||
#ifdef XWINDOW
|
#if defined(XWINDOW) || defined(SDL)
|
||||||
flush_display_lineregion(dx, dstbase, w, h);
|
flush_display_lineregion(dx, dstbase, w, h);
|
||||||
#endif /* XWINDOW */
|
#endif /* XWINDOW */
|
||||||
|
|
||||||
|
|||||||
10
src/misc7.c
10
src/misc7.c
@@ -43,7 +43,9 @@ LispPTR N_OP_misc7(LispPTR arg1, LispPTR arg2, LispPTR arg3, LispPTR arg4, LispP
|
|||||||
int offset;
|
int offset;
|
||||||
DLword bmdata;
|
DLword bmdata;
|
||||||
DLword bmmask;
|
DLword bmmask;
|
||||||
|
#ifdef REALCURSOR
|
||||||
int displayflg;
|
int displayflg;
|
||||||
|
#endif
|
||||||
|
|
||||||
DBPRINT(("MISC7 op with alpha byte %d.\n", alpha));
|
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"));
|
DBPRINT(("MISC7 args OK.\n"));
|
||||||
|
|
||||||
|
#ifdef REALCURSOR
|
||||||
displayflg = n_new_cursorin(base, x, (heightminus1 - y), 1, 1);
|
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
|
/* Bitmaps use a positive integer coordinate system with the lower left
|
||||||
corner pixel at coordinate (0, 0). Storage is allocated in 16-bit words
|
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)) {
|
if (in_display_segment(base)) {
|
||||||
/* NB: base + offset doesn't need WORDPTR() wrapper */
|
/* NB: base + offset doesn't need WORDPTR() wrapper */
|
||||||
flush_display_ptrregion(base + offset, 0, 16, 1);
|
flush_display_ptrregion(base + offset, 0, 16, 1);
|
||||||
}
|
}
|
||||||
#endif /* XWINDOW */
|
#endif /* XWINDOW || SDL */
|
||||||
|
|
||||||
ScreenLocked = NIL;
|
ScreenLocked = NIL;
|
||||||
DBPRINT(("FBITMAPBIT old bit = 0x%x.\n", oldbit));
|
DBPRINT(("FBITMAPBIT old bit = 0x%x.\n", oldbit));
|
||||||
|
|||||||
Reference in New Issue
Block a user