nueva funcion en la graphics.dll: get_rgb

This commit is contained in:
Gabriel Lorenzo 2002-12-13 22:25:15 +00:00
parent f74c9f815a
commit e8aa4b485a
4 changed files with 36 additions and 0 deletions

View file

@ -1,3 +1,11 @@
13/12/2002
----------
* Nueva funcion en la graphics.dll: get_rgb(color,&r,&g,&b). obtiene las
componentes RGB de un color dado. naturalmente es similar a la funcion
homonima que hice en su dia para div2 ;) ojo, no esta preparada para
8 bpp (en esta profundidad debera devolver valores de 0..63, ademas de
diferenciar la paleta activa de la paleta cargada) (Er_Makina)
12/12/2002
----------
* Corregido fallo en la math.c... el seno de 90º no es infinito, sino 1 ¬¬

Binary file not shown.

View file

@ -28,6 +28,7 @@ int eDIV_COLLISION(FUNCTION_PARAMS);
int eDIV_SET_TRANSPARENT_COLOR(FUNCTION_PARAMS);
int eDIV_GET_TRANSPARENT_COLOR(FUNCTION_PARAMS);
int eDIV_RGB(FUNCTION_PARAMS);
int eDIV_GET_RGB(FUNCTION_PARAMS);
int eDIV_ADVANCE(FUNCTION_PARAMS);
int eDIV_XADVANCE(FUNCTION_PARAMS) ;
int eDIV_MAP_BLOCK_COPY(FUNCION_PARMAS) ;

View file

@ -173,6 +173,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
FUNCTION("graphic_info",3,eDIV_GRAPHIC_INFO) ;
FUNCTION("fade",4,eDIV_FADE) ;
FUNCTION("xput",6,eDIV_XPUT);
FUNCTION("get_rgb",4,eDIV_GET_RGB);
// FUNCTION("setmode",4,eDIV_SETMODE);
ENTRYPOINT( frame ) ;
@ -388,6 +389,32 @@ int eDIV_RGB(FUNCTION_PARAMS)
return ( b + g*256 + r*65536 ) ;
}
/*****************************************************************/
/* */
/* eDIV_GET_RGB(color, offset r, offset g, offset b); */
/* */
/* Obtiene las componentes RGB de un color dado. */
/* */
/* r=Rojo (Red) g=Verde (Green) b=Blue (Azul) */
/* */
/* Retorna: 1 */
/* */
/*****************************************************************/
int eDIV_GET_RGB(FUNCTION_PARAMS)
{
unsigned int color,roff,goff,boff;
unsigned char r,g,b;
boff=getparm();
goff=getparm();
roff=getparm();
color=getparm();
SDL_GetRGB(color,fp->screen->format,&r,&g,&b);
if(roff) fp->mem[roff]=(int)r;
if(goff) fp->mem[goff]=(int)g;
if(boff) fp->mem[boff]=(int)b;
return 1;
}
/*****************************************************************/
/* */
/* eDIV_ADVANCE(a); */