Modules/VESA - Disabled cursor blink to aid timer debugging
[tpg/acess2.git] / KernelLand / Modules / Display / VESA / main.c
index 3f2f1c9..8cb3728 100644 (file)
@@ -19,7 +19,7 @@
 #define FLAG_POPULATED 0x2\r
 #define FLAG_VALID     0x4\r
 #define VESA_DEFAULT_FRAMEBUFFER       (KERNEL_BASE|0xA0000)\r
-#define BLINKING_CURSOR        1\r
+#define BLINKING_CURSOR        0\r
 #if BLINKING_CURSOR\r
 # define VESA_CURSOR_PERIOD    1000\r
 #endif\r
@@ -27,7 +27,7 @@
 // === PROTOTYPES ===\r
  int   Vesa_Install(char **Arguments);\r
  int   VBE_int_GetModeList(void);\r
-size_t Vesa_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer);\r
+size_t Vesa_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags);\r
  int   Vesa_IOCtl(tVFS_Node *Node, int ID, void *Data);\r
  int   Vesa_Int_SetMode(int Mode);\r
  int   Vesa_Int_FindMode(tVideo_IOCtl_Mode *data);\r
@@ -67,11 +67,19 @@ tTimer      *gpVesaCursorTimer;
  int   gbVesa_CursorVisible = 0;\r
 // --- 2D Video Stream Handlers ---\r
 tDrvUtil_Video_BufInfo gVesa_BufInfo;\r
+// --- Settings ---\r
+// int gbVesa_DisableFBCache;  // Disables the main-memory framebuffer cache\r
 \r
 // === CODE ===\r
 int Vesa_Install(char **Arguments)\r
 {\r
         int    rv;\r
+\r
+//     for( int i = 0; Arguments[i]; i ++ )\r
+//     {\r
+//             if( strcmp(Aguments[i], "nocache") == 0 )\r
+//                     gbVesa_DisableFBCache = 1;\r
+//     }\r
        \r
        gpVesa_BiosState = VM8086_Init();\r
        \r
@@ -257,7 +265,7 @@ void Vesa_int_FillModeList(void)
 /**\r
  * \brief Write to the framebuffer\r
  */\r
-size_t Vesa_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer)\r
+size_t Vesa_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags)\r
 {\r
        if( gVesa_Modes[giVesaCurrentMode].framebuffer == 0 ) {\r
                Log_Warning("VESA", "Vesa_Write - Non-LFB Modes not yet supported.");\r
@@ -323,7 +331,9 @@ int Vesa_Int_SetMode(int mode)
        \r
        Vesa_int_FillModeList();\r
 \r
+       #if BLINKING_CURSOR\r
        Time_RemoveTimer(gpVesaCursorTimer);\r
+       #endif\r
        \r
        Mutex_Acquire( &glVesa_Lock );\r
        \r
@@ -359,6 +369,8 @@ int Vesa_Int_SetMode(int mode)
        \r
        Mutex_Release( &glVesa_Lock );\r
 \r
+       gVesa_BufInfo.BackBuffer  = realloc(gVesa_BufInfo.BackBuffer,\r
+               gVesa_Modes[mode].height * gVesa_Modes[mode].pitch);\r
        gVesa_BufInfo.Framebuffer = gpVesa_Framebuffer;\r
        gVesa_BufInfo.Pitch = gVesa_Modes[mode].pitch;\r
        gVesa_BufInfo.Width = gVesa_Modes[mode].width;\r

UCC git Repository :: git.ucc.asn.au