It could be a PCD. I would recommend against using EFI_GLYPH_HEIGHT and 
EFI_GLYPH_WIDTH, since that is not necessarily the height of the system font.

The correct way is to call the GetFontInfo() function of the HII Font protocol, 
with a NULL input for StringFontIn set to NULL. This will return the width and 
height of the character cell.

Tim

From: Andrew Fish [mailto:af...@apple.com]
Sent: Tuesday, February 25, 2014 5:45 PM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [PATCH 1/1] MdeModulePkg: TerminalDxe: add other text 
resolutions


On Feb 25, 2014, at 5:23 PM, Li, Elvin 
<elvin...@intel.com<mailto:elvin...@intel.com>> wrote:


Laszlo,
            Where do you get the video resolution list? I prefer to be more 
popular to cover most common resolutions we see.

I wonder if you could add a mode that used the PCD defaults and EFI_GYPH_HIGHT 
and EFI_GLYPH_WIDTH to calculate the mode and not need as large a list?
f

 ## This PCD defines the video horizontal resolution.

  #  This PCD could be set to 0 then video resolution could be at highest 
resolution.

  
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800|UINT32|0x40000009



  ## This PCD defines the video vertical resolution.

  #  This PCD could be set to 0 then video resolution could be at highest 
resolution.

  
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600|UINT32|0x4000000a
Thanks,

Andrew Fish


Thanks
Elvin

-----Original Message-----
From: Laszlo Ersek [mailto:ler...@redhat.com]
Sent: Wednesday, February 26, 2014 3:00 AM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: [edk2] [PATCH 1/1] MdeModulePkg: TerminalDxe: add other text 
resolutions

When the console output is multiplexed to several devices by ConSplitterDxe, 
then ConSplitterDxe builds an intersection of text modes supported by all 
console output devices.

Two notable output devices are provided by:
(1) MdeModulePkg/Universal/Console/GraphicsConsoleDxe,
(2) MdeModulePkg/Universal/Console/TerminalDxe.

GraphicsConsoleDxe supports four modes at most -- see
InitializeGraphicsConsoleTextMode():

(1a) 80x25 (required by the UEFI spec as mode 0),
(1b) 80x50 (not necessarily supported, but if it is, then the UEFI spec
    requires the driver to provide it as mode 1),
(1c) 100x31 (corresponding to graphics resolution 800x600, which the UEFI
    spec requires from all plug-in graphics devices),
(1d) "full screen" resolution, derived form the underlying GOP's
    horizontal and vertical resolutions with division by EFI_GLYPH_WIDTH
    (8) and EFI_GLYPH_HEIGHT (19), respectively.

The automatic "full screen resolution" makes GraphicsConsoleDxe's character 
console very flexible. However, TerminalDxe (which runs on serial ports) only 
provides the following fixed resolutions -- see
InitializeTerminalConsoleTextMode():

(2a) 80x25 (required by the UEFI spec as mode 0),
(2b) 80x50 (since the character resolution of a serial device cannot be
   interrogated easily, this is added unconditionally as mode 1)
(2c) modes 2 and above come from "mTerminalConsoleModeData". This table
    currently only contains one mode, 100x31.

When ConSplitterDxe combines (1) and (2), multiplexing console output to both 
video output and serial terminal, the list of commonly supported text modes 
(ie. the "intersection") comprises:

(3a) 80x25, unconditionally, from (1a) and (2a),
(3b) 80x50, if the graphics console provides at least 640x950 pixel
    resolution, from (1b) and (2b)
(3c) 100x31, if the graphics device is a plug-in one (because in that case
    800x600 is a mandated pixel resolution), from (1c) and (2c).

Unfortunately, the "full screen resolution" (1d) of the GOP-based text console 
is not available in general.

Mitigate this problem by extending "mTerminalConsoleModeData" with a handful of 
text resolutions that are derived from widespread maximal pixel resolutions. 
This way TerminalDxe won't cause ConSplitterDxe to filter out the most frequent 
(1d) values from the intersection, and eg. the MODE command in the UEFI shell 
will offer the "best" (ie. full screen) resolution too.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <ler...@redhat.com<mailto:ler...@redhat.com>>
---
.../Universal/Console/TerminalDxe/Terminal.c       | 37 +++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c 
b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
index 14f49ee..67dc369 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
@@ -96,7 +96,42 @@ TERMINAL_DEV  mTerminalDevTemplate = {  };

TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
-  {100, 31},
+  {  100,  25 }, // from graphics resolution  800 x  480  {  100,  31
+ }, // from graphics resolution  800 x  600  {  104,  32 }, // from
+ graphics resolution  832 x  624  {  120,  33 }, // from graphics
+ resolution  960 x  640  {  128,  31 }, // from graphics resolution
+ 1024 x  600  {  128,  40 }, // from graphics resolution 1024 x  768  {
+ 144,  45 }, // from graphics resolution 1152 x  864  {  144,  45 }, //
+ from graphics resolution 1152 x  870  {  160,  37 }, // from graphics
+ resolution 1280 x  720  {  160,  40 }, // from graphics resolution
+ 1280 x  760  {  160,  40 }, // from graphics resolution 1280 x  768  {
+ 160,  42 }, // from graphics resolution 1280 x  800  {  160,  50 }, //
+ from graphics resolution 1280 x  960  {  160,  53 }, // from graphics
+ resolution 1280 x 1024  {  170,  40 }, // from graphics resolution
+ 1360 x  768  {  170,  40 }, // from graphics resolution 1366 x  768  {
+ 175,  55 }, // from graphics resolution 1400 x 1050  {  180,  47 }, //
+ from graphics resolution 1440 x  900  {  200,  47 }, // from graphics
+ resolution 1600 x  900  {  200,  63 }, // from graphics resolution
+ 1600 x 1200  {  210,  55 }, // from graphics resolution 1680 x 1050  {
+ 240,  56 }, // from graphics resolution 1920 x 1080  {  240,  63 }, //
+ from graphics resolution 1920 x 1200  {  240,  75 }, // from graphics
+ resolution 1920 x 1440  {  250, 105 }, // from graphics resolution
+ 2000 x 2000  {  256,  80 }, // from graphics resolution 2048 x 1536  {
+ 256, 107 }, // from graphics resolution 2048 x 2048  {  320,  75 }, //
+ from graphics resolution 2560 x 1440  {  320,  84 }, // from graphics
+ resolution 2560 x 1600  {  320, 107 }, // from graphics resolution
+ 2560 x 2048  {  350, 110 }, // from graphics resolution 2800 x 2100  {
+ 400, 126 }, // from graphics resolution 3200 x 2400  {  480, 113 }, //
+ from graphics resolution 3840 x 2160  {  512, 113 }, // from graphics
+ resolution 4096 x 2160  {  960, 227 }, // from graphics resolution
+ 7680 x 4320  { 1024, 227 }, // from graphics resolution 8192 x 4320
  //
  // New modes can be added here.
  //
--
1.8.3.1


------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to