+/**\r
+ * \brief Updates the state of the text cursor\r
+ * \note Just does a bitwise not on the cursor region\r
+ */\r
+void Vesa_FlipCursor(void *Arg)\r
+{\r
+ int pitch = gVesa_Modes[giVesaCurrentMode].pitch/4;\r
+ int x = giVesaCursorX*giVT_CharWidth;\r
+ int y = giVesaCursorY*giVT_CharHeight;\r
+ int i;\r
+ Uint32 *fb = (void*)gpVesa_Framebuffer;\r
+ \r
+ if(giVesaCursorX < 0 || giVesaCursorY < 0) return;\r
+ \r
+ for( i = 1; i < giVT_CharHeight-1; i++ )\r
+ fb[(y+i)*pitch+x] = ~fb[(y+i)*pitch+x];\r
+ \r
+ giVesaCursorTimer = Time_CreateTimer(VESA_CURSOR_PERIOD, Vesa_FlipCursor, Arg);\r
+}\r
+\r