graphics.h


Función setallpalette Borland® C

void far setallpalette(struct palettetype far *paleta);

Esta función es usada para asignar la paleta actual a la paleta definida en la estructura del tipo palettetype que es apuntado por el argumento *paleta. Todos los colores de la paleta actual son asignados a aquéllos definidos en la estructura palettetype. La síntaxis de la estructura palettetype es:

#define MAXCOLORS 15

struct palettetype {
   unsigned char size;
   signed char colors[MAXCOLORS+1];
}

El campo size indica el número de colores de la paleta actual. El campo colors es un array que contiene los valores numéricos que representan los colores que ofrece el dispositivo en su paleta de colores. Si la entrada de cualquier elemento del array es -1, el valor del color de ese elemento no cambiará.

Nota: Recuerda que todos los cambios hechos a la paleta tiene un efecto visual inmediato y que la función setallpalette no debería usarse con el dispositivo IBM-8514.

Valor de retorno:

La función setallpalette no retorna ningún valor; sin embargo, si los valores pasados son inválidos, entonces la función graphresult retorna grError (-11) y la paleta no es alterada.

Ejemplo:

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

int main() {
   int gdriver = EGA;
   int gmodo = EGAHI;
   struct palettetype palette;
   int size, temp, i, y=0;

/* Si has registrado los dispositivos para que formen parte de graphics.lib
** entonces usa estas sentencias:

   registerbgidriver( EGAVGA_driver );
   initgraph( &gdriver, &gmodo, "" );
*/

/* Si no, entonces has de "decir" dónde se encuentra el dispositivo gráfico */

   initgraph( &gdriver, &gmodo, "C:\\BC5\\BGI" );

   getpalette( &palette );
   size = palette.size;
   for( i=0; i<size; i++ ) {
      y += 30;
      setcolor( palette.colors[i] );
      line( 20, y, 520, y );
   }

   getch();    /* Pausa */
   for( i=0; i<size/2; i++ ) {
      temp = palette.colors[i];
      palette.colors[i] = palette.colors[size-1-i];
      palette.colors[size-1-i] = temp;
   }
   setallpalette( &palette );

   getch();    /* Pausa */
   closegraph();

   return 0;
}