Files
exectos/xtoskrnl/includes/hl/fbdev.hh
Aiken Harris 1050ddea8a
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in -59m26s
Builds / ExectOS (amd64, debug) (push) Successful in -59m24s
Builds / ExectOS (i686, release) (push) Successful in -59m27s
Builds / ExectOS (i686, debug) (push) Successful in -59m25s
Implement framebuffer double buffering
2026-05-04 11:51:52 +02:00

57 lines
2.2 KiB
C++

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/hl/fbdev.hh
* DESCRIPTION: FrameBuffer support
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_HL_FBDEV_HH
#define __XTOSKRNL_HL_FBDEV_HH
#include <xtos.hh>
/* Hardware Layer */
namespace HL
{
class FrameBuffer
{
private:
STATIC HL_FRAMEBUFFER_DATA FrameBufferData;
STATIC PVOID ScreenShadowBuffer;
STATIC HL_SCROLL_REGION_DATA ScrollRegionData;
public:
STATIC XTAPI VOID ClearScreen(IN ULONG Color);
STATIC XTCDECL XTSTATUS DisplayCharacter(IN WCHAR Character);
STATIC XTAPI XTSTATUS EnableShadowBuffer(VOID);
STATIC XTAPI VOID GetFrameBufferResolution(OUT PULONG Width,
OUT PULONG Height);
STATIC XTAPI XTSTATUS InitializeFrameBuffer(VOID);
STATIC XTAPI VOID InitializeScrollRegion(IN ULONG Left,
IN ULONG Top,
IN ULONG Right,
IN ULONG Bottom,
IN ULONG FontColor);
STATIC XTAPI VOID UpdateScreen(VOID);
STATIC XTAPI VOID UpdateScreenRegion(IN ULONG Left,
IN ULONG Top,
IN ULONG Right,
IN ULONG Bottom);
private:
STATIC XTAPI VOID DrawCharacter(IN ULONG PositionX,
IN ULONG PositionY,
IN ULONG Color,
IN WCHAR WideCharacter);
STATIC XTAPI VOID DrawPixel(IN ULONG PositionX,
IN ULONG PositionY,
IN ULONG Color);
STATIC XTAPI ULONG GetRGBColor(IN ULONG Color);
STATIC XTAPI VOID ScrollRegion(VOID);
};
}
#endif /* __XTOSKRNL_HL_FBDEV_HH */