fix color32.alpha_blend

This commit is contained in:
blueloveTH 2025-04-21 01:20:31 +08:00
parent 6c25f6b1de
commit 2bdbe8a684
3 changed files with 10 additions and 2 deletions

View File

@ -216,7 +216,7 @@ class color32:
def ansi_bg(self, text: str) -> str: ... def ansi_bg(self, text: str) -> str: ...
@staticmethod @staticmethod
def alpha_blend(src: color32, dst: color32) -> color32: ... def alpha_blend(src: color32, dst: color32 | None) -> color32: ...
def rgb(r: int, g: int, b: int) -> color32: ... def rgb(r: int, g: int, b: int) -> color32: ...

View File

@ -1071,6 +1071,12 @@ static bool vmath_rgba(int argc, py_Ref argv) {
static bool color32_alpha_blend_STATIC(int argc, py_Ref argv) { static bool color32_alpha_blend_STATIC(int argc, py_Ref argv) {
PY_CHECK_ARGC(2); PY_CHECK_ARGC(2);
if(!py_checktype(&argv[0], tp_color32)) return false;
if(py_isnone(&argv[1])) {
py_assign(py_retval(), &argv[0]);
return true;
}
if(!py_checktype(&argv[1], tp_color32)) return false;
c11_color32 src = py_tocolor32(&argv[0]); c11_color32 src = py_tocolor32(&argv[0]);
c11_color32 dst = py_tocolor32(&argv[1]); c11_color32 dst = py_tocolor32(&argv[1]);
float alpha = src.a / 255.0f; float alpha = src.a / 255.0f;

View File

@ -32,3 +32,5 @@ assert a.to_vec3i() == vec3i(int(a.r * alpha), int(a.g * alpha), int(a.b * alpha
c = rgb(100, 200, 255) c = rgb(100, 200, 255)
assert c.ansi_fg('xxx') == '\x1b[38;2;100;200;255mxxx\x1b[0m' assert c.ansi_fg('xxx') == '\x1b[38;2;100;200;255mxxx\x1b[0m'
assert c.ansi_bg('xxx') == '\x1b[48;2;100;200;255mxxx\x1b[0m' assert c.ansi_bg('xxx') == '\x1b[48;2;100;200;255mxxx\x1b[0m'
assert color32.alpha_blend(a, None) == a