mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 15:49:26 +02:00
* extracted the common code for the VESA 16-colour TModeInfo initialization
git-svn-id: trunk@25711 -
This commit is contained in:
parent
912384594b
commit
7e3dd92b03
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user