X-Git-Url: https://code.delx.au/refind/blobdiff_plain/e22f7ac1eccb5958dd960e157d0f35606f7db26e..ec097428f9fb581bb0842bb840b5713e176dd0f4:/libeg/text.c diff --git a/libeg/text.c b/libeg/text.c index a59e8cb..93551b2 100644 --- a/libeg/text.c +++ b/libeg/text.c @@ -35,6 +35,7 @@ */ #include "libegint.h" +//#include "../refind/screen.h" #include "egemb_font.h" #define FONT_CELL_WIDTH (7) @@ -61,16 +62,20 @@ VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN UINTN BufferLineOffset, FontLineOffset; UINTN TextLength; UINTN i, c; - + // clip the text - TextLength = StrLen(Text); + if (Text) + TextLength = StrLen(Text); + else + TextLength = 0; + if (TextLength * FONT_CELL_WIDTH + PosX > CompImage->Width) TextLength = (CompImage->Width - PosX) / FONT_CELL_WIDTH; // load the font if (FontImage == NULL) FontImage = egPrepareEmbeddedImage(&egemb_font, TRUE); - + // render it BufferPtr = CompImage->PixelData; BufferLineOffset = CompImage->Width;