home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 114.SVGA.INC < prev    next >
Text File  |  1992-07-12  |  6KB  |  186 lines

  1. {
  2.  
  3.   Turbo Pascal Borland Graphics Interface (BGI) demonstration
  4.   program. This program shows how to use many features of
  5.   the Graph unit.
  6.  
  7.   Copyright (c) 1985-89 by Borland International, Inc.
  8.  
  9. }
  10. {
  11.   Modified for use in twview graphics: 10/21/91 by woody
  12. }
  13.  
  14. var
  15.   GraphDriver : integer;  { The Graphics device driver }
  16.   GraphMode   : integer;  { The Graphics mode value }
  17.   ErrorCode   : integer;  { Reports any graphics errors }
  18.   MaxColor    : word;     { The maximum color value available }
  19.  
  20.  
  21. {$F+}
  22. function DetectVGA256 : integer;
  23. { Detects VGA or MCGA video cards }
  24. var
  25.   DetectedDriver : integer;
  26.   SuggestedMode  : integer;
  27. begin
  28.   DetectGraph(DetectedDriver, SuggestedMode);
  29.   if (DetectedDriver = VGA) or (DetectedDriver = MCGA) then
  30.   begin
  31.     Writeln('Which video mode would you like to use?');
  32.     Writeln('  0) 320x200x256');
  33.     Writeln('  1) 640x400x256');
  34.     Writeln('  2) 640x480x256');
  35.     Writeln('  3) 800x600x256');
  36.     Writeln('  4) 1024x768x256');
  37.     Write('> ');
  38.     Readln(SuggestedMode);
  39.     DetectVGA256 := SuggestedMode;
  40.   end
  41.   else
  42.     DetectVGA256 := grError; { Couldn't detect hardware }
  43. end; { DetectVGA256 }
  44. {$F-}
  45.  
  46. {$F+}
  47. function DetectTwk256 : integer;
  48. { Detects VGA or MCGA video cards }
  49. var
  50.   DetectedDriver : integer;
  51.   SuggestedMode  : integer;
  52. begin
  53.   DetectGraph(DetectedDriver, SuggestedMode);
  54.   if (DetectedDriver = VGA) or (DetectedDriver = MCGA) then
  55.   begin
  56.     Writeln('Which video mode would you like to use?');
  57.     Writeln('  0) 320x400x256');
  58.     Writeln('  1) 320x480x256');
  59.     Writeln('  2) 360x480x256');
  60.     Writeln('  3) 376x564x256');
  61.     Writeln('  4) 400x564x256');
  62.     Writeln('  5) 400x600x256');
  63.     Write('> ');
  64.     Readln(SuggestedMode);
  65.     DetectTwk256 := SuggestedMode;
  66.   end
  67.   else
  68.     DetectTwk256 := grError; { Couldn't detect hardware }
  69. end; { DetectVGA256 }
  70. {$F-}
  71.  
  72.  
  73. {$F+}
  74. function DetectVGA16 : integer;
  75. { Detects VGA or MCGA video cards }
  76. var
  77.   DetectedDriver : integer;
  78.   SuggestedMode  : integer;
  79. begin
  80.   DetectGraph(DetectedDriver, SuggestedMode);
  81.   if (DetectedDriver = EGA) or (DetectedDriver = VGA) then
  82.   begin
  83.     Writeln('Which video mode would you like to use?');
  84.     Writeln('  0) 320x200x16');
  85.     Writeln('  1) 640x200x16');
  86.     Writeln('  2) 640x350x16');
  87.     Writeln('  3) 640x480x16');
  88.     Writeln('  4) 800x600x16');
  89.     Writeln('  5) 1024x768x16');
  90.     Write('> ');
  91.     Readln(SuggestedMode);
  92.     DetectVGA16 := SuggestedMode;
  93.   end
  94.   else
  95.     DetectVGA16 := grError; { Couldn't detect hardware }
  96. end; { DetectVGA256 }
  97. {$F-}
  98.  
  99. {$F+}
  100. function DetectTwk16 : integer;
  101. { Detects VGA or MCGA video cards }
  102. var
  103.   DetectedDriver : integer;
  104.   SuggestedMode  : integer;
  105. begin
  106.   DetectGraph(DetectedDriver, SuggestedMode);
  107.   if (DetectedDriver = VGA) then
  108.   begin
  109.     Writeln('Which video mode would you like to use?');
  110.     Writeln('  0) 704x528x16');
  111.     Writeln('  1) 720x540x16');
  112.     Writeln('  2) 736x552x16');
  113.     Writeln('  3) 752x564x16');
  114.     Writeln('  4) 768x576x16');
  115.     Writeln('  5) 784x588x16');
  116.     Writeln('  6) 800x600x16');
  117.     Write('> ');
  118.     Readln(SuggestedMode);
  119.     DetectTwk16 := SuggestedMode;
  120.   end
  121.   else
  122.     DetectTwk16 := grError; { Couldn't detect hardware }
  123. end; { DetectVGA256 }
  124. {$F-}
  125.  
  126. var
  127.   AutoDetectPointer : pointer;
  128.  
  129. procedure InitializeSpecialGraphics;
  130. { Initialize graphics and report any errors that may occur }
  131. var
  132.   InGraphicsMode : boolean; { Flags initialization of graphics mode }
  133.   PathToDriver   : string;  { Stores the DOS path to *.BGI & *.CHR }
  134.   UseWhichDriver : integer;
  135. begin
  136.   { when using Crt and graphics, turn off Crt's memory-mapped writes }
  137.   DirectVideo := False;
  138.   PathToDriver := '';
  139.   repeat
  140.     Writeln('Which driver to use?');
  141.     Writeln('  0) Svga256');
  142.     Writeln('  1) Svga16');
  143.     Writeln('  2) Tweak256');
  144.     Writeln('  3) Tweak16');
  145.     Write('>');
  146.     Readln(UseWhichDriver);
  147.     case UseWhichDriver of
  148.     0 : begin
  149.           AutoDetectPointer := @DetectVGA256;
  150.           GraphDriver := InstallUserDriver('Svga256',AutoDetectPointer);
  151.         end;
  152.     1 : begin
  153.           AutoDetectPointer := @DetectVGA16;   { Point to detection routine }
  154.           GraphDriver := InstallUserDriver('SVGA16', AutoDetectPointer);
  155.         end;
  156.     2 : begin
  157.           AutoDetectPointer := @DetectTwk256;
  158.           GraphDriver := InstallUserDriver('Twk256',AutoDetectPointer);
  159.         end;
  160.     3 : begin
  161.           AutoDetectPointer := @DetectTwk16;
  162.           GraphDriver := InstallUserDriver('Twk16',AutoDetectPointer);
  163.         end;
  164.     end; {case}
  165.     GraphDriver := Detect;
  166.     InitGraph(GraphDriver, GraphMode, PathToDriver);
  167.     ErrorCode := GraphResult;             { preserve error return }
  168.     if ErrorCode <> grOK then             { error? }
  169.     begin
  170.       Writeln('Graphics error: ', GraphErrorMsg(ErrorCode));
  171.       if ErrorCode = grFileNotFound then  { Can't find driver file }
  172.       begin
  173.         Writeln('Enter full path to BGI driver or type <Ctrl-Break> to quit:');
  174.         Readln(PathToDriver);
  175.         Writeln;
  176.       end
  177.       else
  178.         Halt(1);                          { Some other error: terminate }
  179.     end;
  180.   until ErrorCode = grOK;
  181.   Randomize;                { init random number generator }
  182.   MaxColor := GetMaxColor;  { Get the maximum allowable drawing color }
  183.   XMax := GetMaxX;          { Get screen resolution values }
  184.   YMax := GetMaxY;
  185.   SVGA := true;
  186. end; { InitializeSpecialGraphics }