Borland C++ reference

setpalette

raw OCR

Changes one palette color.

Defined in header <graphics.h>

Syntax

#include <graphics.h>
void far setpalette(int colormim, int color);

Portability

DOSUNIXWindowsANSI CC++ only
■

Remarks

setpalette changes the colornum entry in the palette to color. For example, setpalette(0,5) changes the first color in the current palette (the back-ground color) to actual color number 5. If size is the number of entries in the current palette, colornum can range between 0 and (size - 1).

You can partially (or completely) change the colors in the EGA/VGA palette with setpalette. On a CGA, you can only change the first entry in the palette {colornum equals 0, the background color) with a call to setpalette.

The color parameter passed to setpalette can be represented by symbolic constants defined in graphics.h.

CGAEGAA/GA
NameValueNameValue
BLACK0EGA BLACK0
BLUE1EGA BLUE1
GREEN2EGA GREEN2
CYAN3EGA CYAN3
RED4EGA RED4
MAGENTA5EGA MAGENTA5
BROWN6EGA LIGHTGRAY7
LIGHTGRAY7EGA BROWN20
DARKGRAY8EGA DARKGRAY56
LIGHTBLUE9EGA LIGHTBLUE57
LIGHTGREEN10EGA LIGHTGREEN58
LIGHTCYAN11EGA LIGHTCYAN59
LIGHTRED12EGA LIGHTRED60
LIGHTMAGENTA13EGA LIGHTMAGENTA61
YELLOW14EGA YELLOW62
WHITE15EGA WHITE63

Note that valid colors depend on the current graphics driver and current graphics mode.

Changes made to the palette are seen immediately onscreen. Each time a palette color is changed, all occurrences of that color onscreen change to the new color value.

b^

setpalette cannot be used with the lBM-8514 driver; use setrgbpalette instead.

Return value

If invalid input is passed to setpalette, graphresult returns -11, and the current palette remains unchanged.

See also

Example

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
   /* request autodetection */
   int gdriver - DETECT, gmode, errorcode;
   int color, maxcolor, ht;
int y = 10;
char msg[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:");
   getchO ;
   exit(l);                /* terminate with an error code */
}
maxcolor = getmaxcolor ();
ht = 2 * textheight("W");

/* display the default colors  */
for  (color=l; color<=maxcolor; color++) {
   setcolor (color);
   sprintf (msg, "Color; %d", color);
   outtextxy(l, y, msg);
   y += ht;
}
/* wait for a key */
getchO ;

/* black out the colors one by'one  */
for  (color=l; color<=maxcolor; color++) {
   setpalette (color, BLACK);
  . getchO ;
}

/* clean up */
closegraphO ;
return 0;

Differences from modern implementations

Nothing recorded yet.

Modern references

These are search links, not yet checked by hand.