Table of Contents

detectgraph

Syntax of detectgraph

#include <graphics.h>
void detectgraph(int *graphdriver, int *graphmode);

Description of detectgraph

detectgraph detects your system's graphics adapter and chooses the mode
that provides the highest resolution for that adapter. If no graphics
hardware is detected, *graphdriver is set to grNotDetected (-2), and
graphresult returns grNotDetected (-2).
*graphdriver is an integer that specifies the graphics driver to be used.
You can give it a value using a constant of the graphics_drivers
enumeration type defined in graphics.h and listed as follows:
graphics_drivers constant  ÂNumeric value
DETECT0 (requests autodetect)
CGA   1
MCGA  2
EGA   3
EGA64 4
EGAMONO     5
IBM8514     6
HERCMONO    7
ATT4008
VGA   9
PC327010
*graphmode is an integer that specifies the initial graphics mode (unless
*graphdriver equals DETECT; in which case, *graphmode is set to the
highest resolution available for the detected driver). You can give
*graphmode a value using a constant of the graphics_modes enumeration
type defined in graphics.h and listed as follows.
Graphics        Columns   
Drivergraphics_mode  Value   x Rows   Palette  Pages
CGA   CGAC00  320 x 200  C0   1
CGAC11  320 x 200  C1   1
CGAC22  320 x 200  C2   1
CGAC33  320 x 200  C3   1
CGAHI4  640 x 200  2 color    1
 
MCGA  MCGAC0     0  320 x 200  C0   1
 
MCGAC1     1  320 x 200  C1   1
MCGAC2     2  320 x 200  C2   1
MCGAC3     3  320 x 200  C3   1
MCGAMED    4  640 x 200  2 color    1
MCGAHI     5  640 x 480  2 color    1
 
EGA   EGALO0  640 x 200  16 color   4
 
EGAHI1  640 x 350  16 color   2
 
EGA64 EGA64LO    0  640 x 200  16 color   1
 
EGA64HI    1  640 x 350  4 color    1
 
EGA-MONO    EGAMONOHI  3  640 x 350  2 color    1 w/64K
EGAMONOHI  3  640 x 350  2 color    2 w/256K
 
HERC  HERCMONOHI 0  720 x 348  2 color    2
 
ATT400ATT400C0   0  320 x 200  C0   1
ATT400C1   1  320 x 200  C1   1
ATT400C2   2  320 x 200  C2   1
ATT400C3   3  320 x 200  C3   1
ATT400MED  4  640 x 200  2 color    1
ATT400HI   5  640 x 400  2 color    1
 
VGA   VGALO0  640 x 200  16 color   2
VGAMED     1  640 x 350  16 color   2
VGAHI2  640 x 480  16 color   1
 
PC3270PC3270HI   0  720 x 350  2 color    1
IBM8514     IBM8514HI  0  640 x 480  256 color  ?
IBM8514LO  0  1024 x 768 256 color  ?
Note: The main reason to call detectgraph directly is to override the
graphics mode that detectgraph recommends to initgraph.

Example of detectgraph

/* detectgraph example */
 
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
/* the names of the various cards supported */
char *dname[] = { "requests detection",
"a CGA",
"an MCGA",
"an EGA",
"a 64K EGA",
"a monochrome EGA",
"an IBM 8514",
"a Hercules monochrome",
"an AT&T 6300 PC",
"a VGA",
 
"an IBM 3270 PC"
    };
 
int main(void)
{
   /* used to return detected hardware info. */
   int gdriver, gmode, errorcode;
 
   /* detect the graphics hardware available */
   detectgraph(&gdriver, &gmode);
 
   /* read result of detectgraph call */
   errorcode = graphresult();
   if (errorcode != grOk) {  /* an error occurred */
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
 
getch();
exit(1);   /* terminate with an error code */
   }
 
   /* display the information detected */
   clrscr();
   printf("You have %s video display card.\n", dname[gdriver]);
   printf("Press any key to halt:");
   getch();
   return 0;
}

See also

graphresult initgraph

output of detectgraph example

  no output of example at the moment
  do not hesitate and add it...