X-Git-Url: https://code.delx.au/refind/blobdiff_plain/d2370de648f795ccdf7fe76786c9516568cbe529..dcbecb59b62d07f29d4d6a6ed2212143d0664525:/libeg/libeg.h diff --git a/libeg/libeg.h b/libeg/libeg.h index e993ee1..0275410 100644 --- a/libeg/libeg.h +++ b/libeg/libeg.h @@ -43,6 +43,11 @@ /* types */ +typedef enum ColorTypes { + white, + black +} Colors; + /* This should be compatible with EFI_UGA_PIXEL */ typedef struct { UINT8 b, g, r, a; @@ -66,6 +71,8 @@ typedef struct { #define EG_EICOMPMODE_RLE (1) #define EG_EICOMPMODE_EFICOMPRESS (2) +#define ICON_EXTENSIONS L"icns,png" + typedef struct { UINTN Width; UINTN Height; @@ -78,6 +85,7 @@ typedef struct { /* functions */ VOID egInitScreen(VOID); +BOOLEAN egGetResFromMode(UINTN *ModeWidth, UINTN *Height); VOID egGetScreenSize(OUT UINTN *ScreenWidth, OUT UINTN *ScreenHeight); CHAR16 * egScreenDescription(VOID); BOOLEAN egHasGraphicsMode(VOID); @@ -91,11 +99,13 @@ VOID egSetGraphicsModeEnabled(IN BOOLEAN Enable); EG_IMAGE * egCreateImage(IN UINTN Width, IN UINTN Height, IN BOOLEAN HasAlpha); EG_IMAGE * egCreateFilledImage(IN UINTN Width, IN UINTN Height, IN BOOLEAN HasAlpha, IN EG_PIXEL *Color); EG_IMAGE * egCopyImage(IN EG_IMAGE *Image); +EG_IMAGE * egCropImage(IN EG_IMAGE *Image, IN UINTN StartX, IN UINTN StartY, IN UINTN Width, IN UINTN Height); VOID egFreeImage(IN EG_IMAGE *Image); EG_IMAGE * egLoadImage(IN EFI_FILE* BaseDir, IN CHAR16 *FileName, IN BOOLEAN WantAlpha); EG_IMAGE * egLoadIcon(IN EFI_FILE* BaseDir, IN CHAR16 *FileName, IN UINTN IconSize); -EG_IMAGE * egDecodeImage(IN UINT8 *FileData, IN UINTN FileDataLength, IN CHAR16 *Format, IN BOOLEAN WantAlpha); +EG_IMAGE * egLoadIconAnyType(IN EFI_FILE *BaseDir, IN CHAR16 *SubdirName, IN CHAR16 *BaseName, IN UINTN IconSize); +EG_IMAGE * egFindIcon(IN CHAR16 *BaseName, IN UINTN IconSize); EG_IMAGE * egPrepareEmbeddedImage(IN EG_EMBEDDED_IMAGE *EmbeddedImage, IN BOOLEAN WantAlpha); EG_IMAGE * egEnsureImageSize(IN EG_IMAGE *Image, IN UINTN Width, IN UINTN Height, IN EG_PIXEL *Color); @@ -112,19 +122,24 @@ VOID egFillImageArea(IN OUT EG_IMAGE *CompImage, IN EG_PIXEL *Color); VOID egComposeImage(IN OUT EG_IMAGE *CompImage, IN EG_IMAGE *TopImage, IN UINTN PosX, IN UINTN PosY); +UINTN egGetFontHeight(VOID); +UINTN egGetFontCellWidth(VOID); +UINTN egComputeTextWidth(IN CHAR16 *Text); VOID egMeasureText(IN CHAR16 *Text, OUT UINTN *Width, OUT UINTN *Height); -VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN UINTN PosY); +VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN UINTN PosY, IN UINT8 BGBrightness); +VOID egLoadFont(IN CHAR16 *Filename); VOID egClearScreen(IN EG_PIXEL *Color); VOID egDrawImage(IN EG_IMAGE *Image, IN UINTN ScreenPosX, IN UINTN ScreenPosY); +VOID egDrawImageWithTransparency(EG_IMAGE *Image, EG_IMAGE *BadgeImage, UINTN XPos, UINTN YPos, UINTN Width, UINTN Height); VOID egDrawImageArea(IN EG_IMAGE *Image, IN UINTN AreaPosX, IN UINTN AreaPosY, IN UINTN AreaWidth, IN UINTN AreaHeight, IN UINTN ScreenPosX, IN UINTN ScreenPosY); VOID egDisplayMessage(IN CHAR16 *Text, EG_PIXEL *BGColor); +EG_IMAGE * egCopyScreen(VOID); VOID egScreenShot(VOID); -//UINT32 egGetGraphicsMode(VOID); -UINT32 egSetTextMode(UINT32 RequestedMode); +BOOLEAN egSetTextMode(UINT32 RequestedMode); #endif /* __LIBEG_LIBEG_H__ */