graphics.h


Función setrgbpalette Borland® C

void far setrgbpalette(int num_paleta, 
   int rojo, int verde, int azul);

Esta función es para usarse con los dispositivos de IBM 8514 y VGA. El argumento num_paleta especifica el miembro de la paleta a ser modificado. Para la IBM 8514 (y para el modo de 256K de la VGA), el intervalo de la paleta es de 0 á 255. Para los modos de VGA, el intervalo es de 0 á 15. Los argumentos rojo, verde, y azul especifican la intensidad del color para el miembro de la paleta. De cada byte (de cada argumento) sólo los seis bits más signifcativos son cargados en la paleta.

Por razones de compatibilidad con otros adaptadores gráficos de IBM, el dispositivo BGI define las primeras dieciséis entradas a la paleta de la IBM 8514 a los colores por defecto de la EGA/VGA.

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

Valor de retorno:

La función setrgbpalette no retorna ningún valor.

Ejemplo:

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

int main() {
   int gdriver = EGA;
   int gmodo = EGAHI;
   struct palettetype palette;
   int size, 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; i++ )
      setrgbpalette( i, 2*i+33, 42, 63-4*i );     /* Tonos de naranja y azul */

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

   return 0;
}