You are not logged in.

#1 2009-02-25 14:14:52

spiffen
Member

Color functions

In GRRLIB.h add

Code:

u8 GRRLIB_GetRed(u32 color);
u8 GRRLIB_GetGreen(u32 color);
u8 GRRLIB_GetBlue(u32 color);
u8 GRRLIB_GetAlpha(u32 color);
u32 GRRLIB_MakeColor(u8 red, u8 green, u8 blue, u8 alpha);
u32 GRRLIB_ChangeAlpha(u32 color, u8 alpha);

In GRRLIB.c add

Code:

/**
* Returns red level of color.
* @param color specifies color.
* @return red level.
*/
u8 GRRLIB_GetRed(u32 color) {
    return (color >> 24) & 0x000000FF;
}

/**
* Returns green level of color.
* @param color specifies color.
* @return green level.
*/
u8 GRRLIB_GetGreen(u32 color) {
    return (color >> 16) & 0x000000FF;
}

/**
* Returns blue level of color.
* @param color specifies color.
* @return blue level.
*/
u8 GRRLIB_GetBlue(u32 color) {
    return (color >> 8) & 0x000000FF;
}

/**
* Returns alpha level of color.
* @param color specifies color.
* @return alpha level.
*/
u8 GRRLIB_GetAlpha(u32 color) {
    return (color & 0x000000FF);
}

/**
* Returns color.
* @param red specifies red level.
* @param green specifies red level.
* @param blue specifies blue level.
* @param alpha specifies alpha level.
* @return 32-bit color
*/
u32 GRRLIB_MakeColor(u8 red, u8 green, u8 blue, u8 alpha) {
    u32 color;
    color = red;
    color = (color << 8) | green;
    color = (color << 8) | blue;
    color = (color << 8) | alpha;
    return color;
}

/**
* Returns color with changed alpha level.
* @param color specifies original color.
* @param a specifies new alpha.
* @return color with changed alpha level.
*/
u32 GRRLIB_ChangeAlpha(u32 color, u8 alpha) {
    return (color & 0xFFFFFF00) | alpha;
}

Last edited by spiffen (2009-02-25 17:20:51)

Offline

 

Board footer

Powered by FluxBB