diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index b777301..06fc88d 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -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 ¬¬ diff --git a/ediv/src/dlls/dlls.suo b/ediv/src/dlls/dlls.suo index aa530d5..2b45314 100644 Binary files a/ediv/src/dlls/dlls.suo and b/ediv/src/dlls/dlls.suo differ diff --git a/ediv/src/dlls/graphics/graphics.h b/ediv/src/dlls/graphics/graphics.h index f4e555b..5c84211 100644 --- a/ediv/src/dlls/graphics/graphics.h +++ b/ediv/src/dlls/graphics/graphics.h @@ -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) ; diff --git a/ediv/src/dlls/graphics/main.c b/ediv/src/dlls/graphics/main.c index 8bac2f2..26d45e7 100644 --- a/ediv/src/dlls/graphics/main.c +++ b/ediv/src/dlls/graphics/main.c @@ -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); */