X-Git-Url: https://code.delx.au/refind/blobdiff_plain/e22f7ac1eccb5958dd960e157d0f35606f7db26e..39f21d099c9fb310bae28b54dc68d266ed610ed7:/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;