modrange.pp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. Program GetModeRange_Example;
  2. { This program demonstrates how to find all available graph modes }
  3. uses graph;
  4. const
  5. { Currently, only 4, 8, 15 and 16 bit modes are supported
  6. but this may change in the future }
  7. gdnames: array[D4bit..D16bit] of string[6] =
  8. ('4 bit','6 bit','8 bit','12 bit','15 bit','16 bit');
  9. procedure WriteRes(const depth : integer);
  10. var
  11. tw, th : integer;
  12. v, text : String;
  13. begin
  14. text := 'Current resolution is '; str(getmaxx+1, v);
  15. text := text + v + 'x'; str(getmaxy+1, v);
  16. text := text + v + 'x' + gdnames[depth];
  17. setTextStyle(defaultFont,horizDir,1);
  18. TW:=TextWidth(text);
  19. TH:=TextHeight(text);
  20. outTextXY((getMaxX - TW) div 2,
  21. (getMaxY - TH) div 2,text);
  22. end;
  23. var
  24. t: text;
  25. line : string;
  26. gd, c, low, high, res: integer;
  27. begin
  28. assign(t,'modes.txt');
  29. rewrite(t);
  30. close(t);
  31. for gd := D4bit to D16bit do
  32. begin
  33. { Get the available mode numbers for this driver }
  34. getModeRange(gd,low,high);
  35. append(t);
  36. write(t,gdnames[gd]);
  37. Writeln(t,': low modenr = ',low,', high modenr = ',high);
  38. close(t);
  39. { If high is -1,
  40. no resolutions are supported for this bitdepth }
  41. if high = -1 then
  42. begin
  43. append(t);
  44. writeln(t,' No modes supported!');
  45. writeln(t);
  46. close(t);
  47. end
  48. else
  49. { Enter all supported resolutions for this bitdepth
  50. and write their characteristics to the file }
  51. for c := low to high do
  52. begin
  53. append(t);
  54. writeln(t,' testing mode nr ',c);
  55. close(t);
  56. initgraph(gd,c,'');
  57. res := graphresult;
  58. append(t);
  59. { An error occurred when entering the mode? }
  60. if res <> grok then
  61. writeln(t,grapherrormsg(res))
  62. else
  63. begin
  64. write(t,'maxx: ',getmaxx,', maxy: ',getmaxy);
  65. Writeln(t,', maxcolor: ',getmaxcolor);
  66. closegraph;
  67. end;
  68. writeln(t);
  69. WriteRes(gd);
  70. close(t);
  71. end;
  72. append(t);
  73. writeln(t);
  74. close(t);
  75. end;
  76. Writeln('All supported modes are listed in modes.txt files');
  77. end.