EFI_STATUS ReturnStatus;\r
UINTN MaxColumn;\r
UINTN MaxRow;\r
+ INT32 *TextOutModeMap;\r
+ INT32 ModeNumber;\r
+ INT32 CurrentMode;\r
\r
Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
-\r
- MaxColumn = Private->TextOutQueryData[Private->TextOutMode.Mode].Columns;\r
- MaxRow = Private->TextOutQueryData[Private->TextOutMode.Mode].Rows;\r
+ TextOutModeMap = NULL;\r
+ ModeNumber = Private->TextOutMode.Mode;\r
+ \r
+ //\r
+ // Get current MaxColumn and MaxRow from intersection map\r
+ //\r
+ if (Private->TextOutModeMap != NULL) {\r
+ TextOutModeMap = Private->TextOutModeMap + Private->TextOutListCount * ModeNumber;\r
+ CurrentMode = *TextOutModeMap;\r
+ } else {\r
+ CurrentMode = ModeNumber;\r
+ }\r
+ \r
+ MaxColumn = Private->TextOutQueryData[CurrentMode].Columns;\r
+ MaxRow = Private->TextOutQueryData[CurrentMode].Rows;\r
\r
if (Column >= MaxColumn || Row >= MaxRow) {\r
return EFI_UNSUPPORTED;\r