Graafikareziimi testimine

Alltoodud programm pärineb FreePascal dokumentatsioonist ja võimaldab testida graafikakaardi võimalusi ning väljastab tulemused faili grmoodid.txt töökataloogis

Program GetModeRange_Example;

{ See programm demonstreerib kuidas leida kõik kasutatavd graafikamoodid }

uses graph;

const
  { Praegu toetatakse ainult 4, 8, 15 ja 16 b moode, kuid see võib tulevikus muutuda }
  gdnames: array[D4bit..D16bit] of string[6] = ('4 bit','6 bit','8 bit','12 bit','15 bit','16 bit');

var
  t: text;
  line : string;
  gd, c, low, high, res: integer;
begin
  assign(t,'grmoodid.txt');
  rewrite(t);
  close(t);
  for gd := D4bit to D16bit do
    begin
    { Graafikadraiveri võimalikud moed }
    getModeRange(gd,low,high);
    append(t);
    write(t,gdnames[gd]);
    Writeln(t,': madalaim moodinumberr = ',low,', kõrgeim moodinumber = ',high);
    close(t);
    { Kui high on -1,  siis sellise bitisügavuse korral pole ühtki eraldusvõimet (resolutsiooni) }
    if high = -1 then
      begin
      append(t);
      writeln(t,'  Ei toetata ühtki moodi!');
      writeln(t);
      close(t);
      end
    else
      { Testitakse kõiki toetatavaid eraldusvõimeid sellise bittide sügavusega ja kirjutatakse tulemused faili }
      for c := low to high do
        begin
        append(t);
        writeln(t,'  testimismoe number ',c);
        close(t);
        initgraph(gd,c,'');
        res := graphresult;
        append(t);
        { Kas konkreetse moe testimisel esineb viga? }
        if res <> grok then
          writeln(t,grapherrormsg(res))
        else
          begin
          write(t,'SuurimX: ',getmaxx,', SuurimY: ',getmaxy);
          Writeln(t,', maxcolor: ',getmaxcolor);
          closegraph;
          end;
        writeln(t);
        close(t);
        end;
    append(t);
    writeln(t);
    close(t);
    end;
  Writeln('Kõik graafikaardi poolt toetatud moodid väljastati faili grmoodid.txt ');
end.