mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-03-15 04:25:06 +00:00
Fix AHCIBufferAlign causing crashes on bare-metal.
Update 32-bit color graphics demo. Add global Boolean to toggle window manager framebuffer writes.
This commit is contained in:
parent
413b73db76
commit
59eba5a7de
6 changed files with 18 additions and 3 deletions
Binary file not shown.
|
@ -11,7 +11,13 @@ I0 Color32Demo()
|
||||||
I64 i, j, x, y;
|
I64 i, j, x, y;
|
||||||
CBGR24 color;
|
CBGR24 color;
|
||||||
|
|
||||||
while (TRUE)
|
"\nPress any key to exit demo.\n\n";
|
||||||
|
|
||||||
|
Sleep(500);
|
||||||
|
|
||||||
|
text.is_fb_busy = TRUE;
|
||||||
|
|
||||||
|
while (!CharScan)
|
||||||
{
|
{
|
||||||
x = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP);
|
x = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP);
|
||||||
y = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP);
|
y = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP);
|
||||||
|
@ -21,8 +27,12 @@ I0 Color32Demo()
|
||||||
for (j = 0; j < SQUARE_SIZE; j++)
|
for (j = 0; j < SQUARE_SIZE; j++)
|
||||||
DrawPixel(x + i, y + j, color);
|
DrawPixel(x + i, y + j, color);
|
||||||
|
|
||||||
Busy(1000);
|
Sleep(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
text.is_fb_busy = FALSE;
|
||||||
|
LFBFlush;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Color32Demo;
|
Color32Demo;
|
|
@ -320,7 +320,7 @@ U8 *AHCIBufferAlign(CBlkDev *bd, U8 *user_buf, I64 buf_size, Bool write)
|
||||||
// "Aligning buffer under 32-bit range\n";
|
// "Aligning buffer under 32-bit range\n";
|
||||||
|
|
||||||
Free(bd->prd_buf);
|
Free(bd->prd_buf);
|
||||||
bd->prd_buf = MAlloc(buf_size, Fs->code_heap);
|
bd->prd_buf = MAlloc(buf_size, zenith_task->code_heap);
|
||||||
|
|
||||||
Bts(&bd->flags, BDf_INTERNAL_BUF);
|
Bts(&bd->flags, BDf_INTERNAL_BUF);
|
||||||
|
|
||||||
|
|
|
@ -4208,6 +4208,7 @@ public class CTextGlobals
|
||||||
U64 *font, *aux_font, screen_size, buffer_size;
|
U64 *font, *aux_font, screen_size, buffer_size;
|
||||||
U8 *vga_alias;
|
U8 *vga_alias;
|
||||||
U8 border_chars[16];
|
U8 border_chars[16];
|
||||||
|
Bool is_fb_busy;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FONT_WIDTH 8
|
#define FONT_WIDTH 8
|
||||||
|
|
|
@ -190,6 +190,7 @@ U0 CtrlAltT(I64)
|
||||||
U0 CtrlAltV(I64)
|
U0 CtrlAltV(I64)
|
||||||
{
|
{
|
||||||
LFBFlush;
|
LFBFlush;
|
||||||
|
text.is_fb_busy = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
U0 CtrlAltX(I64)
|
U0 CtrlAltX(I64)
|
||||||
|
|
|
@ -416,6 +416,9 @@ U0 GrUpdateScreen()
|
||||||
{//Called by the Window Manager $LK,"HERE",A="FF:::/Zenith/WinMgr.CC,GrUpdateScreen"$, 30 times a second.
|
{//Called by the Window Manager $LK,"HERE",A="FF:::/Zenith/WinMgr.CC,GrUpdateScreen"$, 30 times a second.
|
||||||
CDC *dc;
|
CDC *dc;
|
||||||
|
|
||||||
|
if (text.is_fb_busy)
|
||||||
|
return;
|
||||||
|
|
||||||
GrUpdateTextBG;
|
GrUpdateTextBG;
|
||||||
GrUpdateTextFG;
|
GrUpdateTextFG;
|
||||||
GrUpdateTasks;
|
GrUpdateTasks;
|
||||||
|
|
Loading…
Reference in a new issue