getmaxcolor returns the highest valid color value for the current
graphics driver and mode that can be passed to setcolor.
For example, on a 256K EGA, getmaxcolor always returns 15, which means
that any call to setcolor with a value from 0 to 15 is valid. On a CGA in
high-resolution mode or on a Hercules monochrome adapter, getmaxcolor
returns a value of 1.
Windows Notes
The winbgim version of getmaxcolor returns 15 for the maximum color.
However, in addition to the usual BGI colors (0 through 15), the
programmer may also use RGB_colors.
/* getmaxcolor example */
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
char colstr[80];
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
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 */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* grab the color info. and convert it to a string */
sprintf(colstr, "This mode supports colors 0..%d", getmaxcolor());
/* display the information */
settextjustify(CENTER_TEXT, CENTER_TEXT);
outtextxy(midx, midy, colstr);
/* clean up */
getch();
closegraph();
return 0;
}