* extracted the common code for the VESA 16-colour TModeInfo initialization

git-svn-id: trunk@25711 -
This commit is contained in:
nickysn 2013-10-07 13:11:46 +00:00
parent 912384594b
commit 7e3dd92b03

View File

@ -3167,6 +3167,27 @@ const CrtAddress: word = 0;
mode.GetScanLine := {$ifdef fpc}@{$endif}GetScanLine16;
end;
procedure FillCommonVESA16(var mode: TModeInfo);
begin
mode.MaxColor := 16;
{ the ModeInfo is automatically set if the mode is supPorted }
{ by the call to SearchVESAMode. }
mode.HardwarePages := VESAModeInfo.NumberOfPages;
mode.DirectColor := FALSE;
mode.PaletteSize := mode.MaxColor;
mode.DirectPutPixel:={$ifdef fpc}@{$endif}DirectPutPixVESA16;
mode.SetRGBPalette := {$ifdef fpc}@{$endif}SetVESARGBPalette;
mode.GetRGBPalette := {$ifdef fpc}@{$endif}GetVESARGBPalette;
{$ifdef fpc}
mode.SetAllPalette := @SetVESARGBAllPalette;
{$endif fpc}
mode.PutPixel:={$ifdef fpc}@{$endif}PutPixVESA16;
mode.GetPixel:={$ifdef fpc}@{$endif}GetPixVESA16;
mode.SetVisualPage := {$ifdef fpc}@{$endif}SetVisualVESA;
mode.SetActivePage := {$ifdef fpc}@{$endif}SetActiveVESA;
mode.HLine := {$ifdef fpc}@{$endif}HLineVESA16;
end;
procedure FillCommonVESA256(var mode: TModeInfo);
begin
mode.MaxColor := 256;
@ -3705,29 +3726,13 @@ const CrtAddress: word = 0;
if SearchVESAModes(m800x600x16) then
begin
InitMode(mode);
FillCommonVESA16(mode);
mode.ModeNumber:=m800x600x16;
mode.DriverNumber := VESA;
mode.ModeName:='800 x 600 VESA';
mode.MaxColor := 16;
{ the ModeInfo is automatically set if the mode is supPorted }
{ by the call to SearchVESAMode. }
mode.HardwarePages := VESAModeInfo.NumberOfPages;
mode.DirectColor := FALSE;
mode.PaletteSize := mode.MaxColor;
mode.MaxX := 799;
mode.MaxY := 599;
mode.DirectPutPixel:={$ifdef fpc}@{$endif}DirectPutPixVESA16;
mode.SetRGBPalette := {$ifdef fpc}@{$endif}SetVESARGBPalette;
mode.GetRGBPalette := {$ifdef fpc}@{$endif}GetVESARGBPalette;
{$ifdef fpc}
mode.SetAllPalette := @SetVESARGBAllPalette;
{$endif fpc}
mode.PutPixel:={$ifdef fpc}@{$endif}PutPixVESA16;
mode.GetPixel:={$ifdef fpc}@{$endif}GetPixVESA16;
mode.InitMode := {$ifdef fpc}@{$endif}Init800x600x16;
mode.SetVisualPage := {$ifdef fpc}@{$endif}SetVisualVESA;
mode.SetActivePage := {$ifdef fpc}@{$endif}SetActiveVESA;
mode.HLine := {$ifdef fpc}@{$endif}HLineVESA16;
mode.XAspect := 10000;
mode.YAspect := 10000;
AddMode(mode);
@ -3801,29 +3806,13 @@ const CrtAddress: word = 0;
if SearchVESAModes(m1024x768x16) then
begin
InitMode(mode);
FillCommonVESA16(mode);
mode.ModeNumber:=m1024x768x16;
mode.DriverNumber := VESA;
mode.ModeName:='1024 x 768 VESA';
mode.MaxColor := 16;
{ the ModeInfo is automatically set if the mode is supPorted }
{ by the call to SearchVESAMode. }
mode.HardwarePages := VESAModeInfo.NumberOfPages;
mode.PaletteSize := mode.MaxColor;
mode.DirectColor := FALSE;
mode.MaxX := 1023;
mode.MaxY := 767;
mode.DirectPutPixel:={$ifdef fpc}@{$endif}DirectPutPixVESA16;
mode.PutPixel:={$ifdef fpc}@{$endif}PutPixVESA16;
mode.SetRGBPalette := {$ifdef fpc}@{$endif}SetVESARGBPalette;
mode.GetRGBPalette := {$ifdef fpc}@{$endif}GetVESARGBPalette;
{$ifdef fpc}
mode.SetAllPalette := @SetVESARGBAllPalette;
{$endif fpc}
mode.GetPixel:={$ifdef fpc}@{$endif}GetPixVESA16;
mode.InitMode := {$ifdef fpc}@{$endif}Init1024x768x16;
mode.SetVisualPage := {$ifdef fpc}@{$endif}SetVisualVESA;
mode.SetActivePage := {$ifdef fpc}@{$endif}SetActiveVESA;
mode.HLine := {$ifdef fpc}@{$endif}HLineVESA16;
mode.XAspect := 10000;
mode.YAspect := 10000;
AddMode(mode);
@ -3897,29 +3886,13 @@ const CrtAddress: word = 0;
if SearchVESAModes(m1280x1024x16) then
begin
InitMode(mode);
FillCommonVESA16(mode);
mode.ModeNumber:=m1280x1024x16;
mode.DriverNumber := VESA;
mode.ModeName:='1280 x 1024 VESA';
mode.MaxColor := 16;
{ the ModeInfo is automatically set if the mode is supPorted }
{ by the call to SearchVESAMode. }
mode.HardwarePages := VESAModeInfo.NumberOfPages;
mode.DirectColor := FALSE;
mode.PaletteSize := mode.MaxColor;
mode.MaxX := 1279;
mode.MaxY := 1023;
mode.DirectPutPixel:={$ifdef fpc}@{$endif}DirectPutPixVESA16;
mode.SetRGBPalette := {$ifdef fpc}@{$endif}SetVESARGBPalette;
mode.GetRGBPalette := {$ifdef fpc}@{$endif}GetVESARGBPalette;
{$ifdef fpc}
mode.SetAllPalette := @SetVESARGBAllPalette;
{$endif fpc}
mode.PutPixel:={$ifdef fpc}@{$endif}PutPixVESA16;
mode.GetPixel:={$ifdef fpc}@{$endif}GetPixVESA16;
mode.InitMode := {$ifdef fpc}@{$endif}Init1280x1024x16;
mode.SetVisualPage := {$ifdef fpc}@{$endif}SetVisualVESA;
mode.SetActivePage := {$ifdef fpc}@{$endif}SetActiveVESA;
mode.HLine := {$ifdef fpc}@{$endif}HLineVESA16;
mode.XAspect := 10000;
mode.YAspect := 10000;
AddMode(mode);