mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-21 12:12:30 +02:00
65 lines
1.6 KiB
ObjectPascal
65 lines
1.6 KiB
ObjectPascal
Program GetModeRange_Example;
|
|
|
|
{ This program demonstrates how to find all available graph modes }
|
|
|
|
uses graph;
|
|
|
|
const
|
|
{ Currently, only 4, 8, 15 and 16 bit modes are supported
|
|
but this may change in the future }
|
|
gdnames: array[D4bit..D16bit] of string[6] =
|
|
('4 bit','6 bit','8 bit','12 bit','15 bit','16 bit');
|
|
|
|
var
|
|
t: text;
|
|
gd, c, low, high, res: integer;
|
|
begin
|
|
assign(t,'modes.txt');
|
|
rewrite(t);
|
|
close(t);
|
|
for gd := D4bit to D16bit do
|
|
begin
|
|
{ Get the available mode numbers for this driver }
|
|
getModeRange(gd,low,high);
|
|
append(t);
|
|
write(t,gdnames[gd]);
|
|
Writeln(t,': low modenr = ',low,', high modenr = ',high);
|
|
close(t);
|
|
{ If high is -1,
|
|
no resolutions are supported for this bitdepth }
|
|
if high = -1 then
|
|
begin
|
|
append(t);
|
|
writeln(t,' No modes supported!');
|
|
writeln(t);
|
|
close(t);
|
|
end
|
|
else
|
|
{ Enter all supported resolutions for this bitdepth
|
|
and write their characteristics to the file }
|
|
for c := low to high do
|
|
begin
|
|
append(t);
|
|
writeln(t,' testing mode nr ',c);
|
|
close(t);
|
|
initgraph(gd,c,'');
|
|
res := graphresult;
|
|
append(t);
|
|
{ An error occurred when entering the mode? }
|
|
if res <> grok then
|
|
writeln(t,grapherrormsg(res))
|
|
else
|
|
begin
|
|
write(t,'maxx: ',getmaxx,', maxy: ',getmaxy);
|
|
Writeln(t,', maxcolor: ',getmaxcolor);
|
|
closegraph;
|
|
end;
|
|
writeln(t);
|
|
close(t);
|
|
end;
|
|
append(t);
|
|
writeln(t);
|
|
close(t);
|
|
end;
|
|
end.
|