From 5da1d9b2fa0e2598cb4024a907145b8eb7a0368a Mon Sep 17 00:00:00 2001 From: Joursoir Date: Sat, 2 Apr 2022 14:55:15 +0300 Subject: main: add macros to draw a pixel, get independent color Using function to draw a pixel is too inefficient --- UefiMonitorTest/UefiMonitorTest.c | 40 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) (limited to 'UefiMonitorTest/UefiMonitorTest.c') diff --git a/UefiMonitorTest/UefiMonitorTest.c b/UefiMonitorTest/UefiMonitorTest.c index 8d67c83..708bf2d 100644 --- a/UefiMonitorTest/UefiMonitorTest.c +++ b/UefiMonitorTest/UefiMonitorTest.c @@ -12,6 +12,19 @@ #include "UefiMonitorTest.h" +#define GET_ICOLOR(Graphics, Ucolor) \ + (UINT32)( \ + (((Ucolor << Graphics->PixelShl[0]) >> Graphics->PixelShr[0]) & \ + Graphics->PixelMasks.RedMask) | \ + (((Ucolor << Graphics->PixelShl[1]) >> Graphics->PixelShr[1]) & \ + Graphics->PixelMasks.GreenMask) | \ + (((Ucolor << Graphics->PixelShl[2]) >> Graphics->PixelShr[2]) & \ + Graphics->PixelMasks.BlueMask) \ + ) + +#define PUT_PUXEL(Graphics, X, Y, Icolor) \ + Graphics->BackBuffer[X + (Y * Graphics->Pitch)] = Icolor + CONST EFI_PIXEL_BITMASK mRgbPixelMasks = { 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 }; @@ -181,33 +194,6 @@ GetGraphicsOutputProtocol ( return Gop; } -STATIC -VOID -PutPixel ( - IN GRAPHICS_CONTEXT *Graphics, - IN UINTN X, - IN UINTN Y, - GRAPHICS_PIXEL_COLOR *Color - ) -{ - UINT32 *Buffer; - UINT32 Ucolor; - - ASSERT (X >= 0 && X <= Graphics->Width); - ASSERT (Y >= 0 && Y <= Graphics->Height); - - Buffer = (UINT32 *)(Graphics->BackBuffer + (X * Graphics->PixelWidth) + (Y * Graphics->Pitch)); - Ucolor = *(UINT32 *)Color; - *Buffer = (UINT32)( - (((Ucolor << Graphics->PixelShl[0]) >> Graphics->PixelShr[0]) & - Graphics->PixelMasks.RedMask) | - (((Ucolor << Graphics->PixelShl[1]) >> Graphics->PixelShr[1]) & - Graphics->PixelMasks.GreenMask) | - (((Ucolor << Graphics->PixelShl[2]) >> Graphics->PixelShr[2]) & - Graphics->PixelMasks.BlueMask) - ); -} - EFI_STATUS EFIAPI UefiMain ( -- cgit v1.2.3-18-g5258