mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 11:29:24 +02:00
60 lines
1.4 KiB
ObjectPascal
60 lines
1.4 KiB
ObjectPascal
Program inigraph2;
|
|
|
|
{ Program to demonstrate dynamic graphics mode selection }
|
|
|
|
uses graph;
|
|
|
|
const
|
|
TheLine = 'We are now in 640 x 480 x 256 colors!'+
|
|
' (press <Return> to continue)';
|
|
|
|
var
|
|
th,tw,gd, gm, lo, hi, error: integer;
|
|
found: boolean;
|
|
|
|
begin
|
|
{ We want an 8 bit mode }
|
|
gd := D8bit;
|
|
{ Get all available resolutions for this bitdepth }
|
|
getmoderange(gd,lo,hi);
|
|
{ If the highest available mode number is -1,
|
|
no resolutions are supported for this bitdepth }
|
|
if hi = -1 then
|
|
begin
|
|
writeln('no 8 bit modes supported!');
|
|
halt
|
|
end;
|
|
found := false;
|
|
{ Search all resolutions for 640x480 }
|
|
for gm := lo to hi do
|
|
begin
|
|
initgraph(gd,gm,'');
|
|
{ Make sure you always check graphresult! }
|
|
error := graphResult;
|
|
if (error = grOk) and
|
|
(getmaxx = 639) and (getmaxy = 479) then
|
|
begin
|
|
found := true;
|
|
break;
|
|
end;
|
|
end;
|
|
if not found then
|
|
begin
|
|
writeln('640x480x256 is not supported!');
|
|
halt(1)
|
|
end;
|
|
{ We are now in 640x480x256 }
|
|
setColor(cyan);
|
|
rectangle(0,0,getmaxx,getmaxy);
|
|
{ Write a nice message in the center of the screen }
|
|
setTextStyle(defaultFont,horizDir,1);
|
|
TW:=TextWidth(TheLine);
|
|
TH:=TextHeight(TheLine);
|
|
outTextXY((getMaxX - TW) div 2,
|
|
(getMaxY - TH) div 2,TheLine);
|
|
{ Wait for return }
|
|
readln;
|
|
{ Back to text mode }
|
|
closegraph;
|
|
end.
|