Skip to content

Instantly share code, notes, and snippets.

@brbsh brbsh/rgba_argb.pwn
Last active Feb 12, 2017

Embed
What would you like to do?
Functions to operate RGBA & ARGB hex colors in PAWN
cutAlphaRGBA(rgbacolor) return (rgbacolor >>> 8); // вернет цвет с вырезанной прозрачностью
cutAlphaARGB(argbcolor) return (argbcolor & 0xFFFFFF);
setAlphaRGBA(rgbacolor, alpha = 0xFF) return (cutAlphaRGBA(rgbacolor) | alpha); // вернет цвет с установленной прозрачностью
setAlphaARGB(argbcolor, alpha = 0xFF) return (cutAlphaARGB(argbcolor) | (alpha << 24));
getAlphaRGBA(rgbacolor) return (rgbacolor & 0xFF); // вернет альфу
getAlphaARGB(argbcolor) return (argbcolor >>> 24);
bool:hasAlphaRGBA(rgbacolor) return (getAlphaRGBA(rgbacolor) != 0 && ((rgbacolor >>> 24) != 0));
bool:hasAlphaARGB(argbcolor) return (getAlphaARGB(argbcolor) != 0 && ((argbcolor >>> 8) != 0));
torgba(rgbacolor, &r, &g, &b, &a) // разобьет цвет на состовляющие (red, green, blue, alpha)
{
r = (rgbacolor >>> 24),
g = ((rgbacolor >>> 16) & 0xFF),
b = (rgbacolor >>> 8) & 0xFF),
a = getAlphaRGBA(rgbacolor);
}
toargb(argbcolor, &a, &r, &g, &b)
{
torgba(argbcolor, a, r, g, b);
}
torgbacolor(r, g, b, a) return ((r << 24) | (g << 16) | (b << 8) | a); // соберет цвет из его отдельных каналов
toargbcolor(a, r, g, b) return ((a << 24) | (r << 16) | (g << 8) | b);
rgbatoargb(rgbacolor) // вернет ARGB цвет
{
new r, g, b, a;
torgba(rgbacolor, r, g, b, a);
return toargbcolor(a, r, g, b);
}
argbtorgba(argbcolor) // вернет RGBA цвет
{
new a, r, g, b;
torgba(argbcolor, a, r, g, b);
return torgbacolor(r, g, b, a);
}
@Jonathan-Rosewood

This comment has been minimized.

Copy link

commented Oct 7, 2015

https://gist.github.com/BJIADOKC/5584091#file-rgba_argb-pwn-L14
Пропущена экранирующая скобка :)
А так спасибо за гист, использоваться будет на Classic Role Play :3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.