X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FKernel%2Fdrv%2Fvterm.h;h=75128ba5968760376a3b39f9684aba14c8e62425;hb=10949658e20bd7b35f9ebe1d9354119d993e115b;hp=4ca241b83087f48ac887e03042614369c69abbc1;hpb=719c74c0763d27de41101ded34836cea66dc04aa;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm.h b/KernelLand/Kernel/drv/vterm.h index 4ca241b8..75128ba5 100644 --- a/KernelLand/Kernel/drv/vterm.h +++ b/KernelLand/Kernel/drv/vterm.h @@ -42,6 +42,12 @@ enum eVT_InModes { typedef struct sVTerm tVTerm; // === STRUCTURES === +typedef struct +{ + unsigned short Row; + unsigned short Col; +} tVT_Pos; + struct sVTerm { int Mode; //!< Current Mode (see ::eTplTerminal_Modes) @@ -56,15 +62,15 @@ struct sVTerm Uint32 CurColour; //!< Current Text Colour - int ViewPos; //!< View Buffer Offset (Text Only) - int WritePos; //!< Write Buffer Offset (Text Only) + size_t ViewTopRow; //!< View Buffer Offset (Text Only) + tVT_Pos WritePos; //!< Write Buffer Offset (Text Only) tVT_Char *Text; + tVT_Pos AltWritePos; //!< Alternate write position tVT_Char *AltBuf; //!< Alternate Screen Buffer - int AltWritePos; //!< Alternate write position short ScrollTop; //!< Top of scrolling region (smallest) short ScrollHeight; //!< Length of scrolling region - int SavedWritePos; //!< Saved cursor position (\e[s and \e[u) + tVT_Pos SavedWritePos; //!< Saved cursor position (\e[s and \e[u) char EscapeCodeCache[16]; size_t EscapeCodeLen; @@ -88,6 +94,11 @@ struct sVTerm int CachePos; char Cache[32]; size_t PreEat; + union { + struct { + size_t Offset; + } Push; + } CmdInfo; } Cmd2D; tPTY *PTY; @@ -125,8 +136,13 @@ extern void VT_int_PutRawString(tVTerm *Term, const Uint8 *String, size_t Bytes) extern void VT_int_PutChar(tVTerm *Term, Uint32 Ch); extern void VT_int_ScrollText(tVTerm *Term, int Count); extern void VT_int_ClearLine(tVTerm *Term, int Num); +extern void VT_int_ClearInLine(tVTerm *Term, int Row, int FirstCol, int LastCol); extern void VT_int_Resize(tVTerm *Term, int NewWidth, int NewHeight); extern void VT_int_ToggleAltBuffer(tVTerm *Term, int Enabled); +extern void VT_int_PutFBData(tVTerm *Term, size_t Offset, size_t Length, const void *Buffer); + +extern tVT_Pos *VT_int_GetWritePosPtr(tVTerm *Term); +extern size_t VT_int_GetBufferRows(tVTerm *Term); #endif