st->imm_curv.nz = z;
}
+#define CLAMP(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
+
void g3d_color3b(unsigned char r, unsigned char g, unsigned char b)
{
- st->imm_curv.r = r;
- st->imm_curv.g = g;
- st->imm_curv.b = b;
+ st->imm_curv.r = CLAMP(r, 0, 255);
+ st->imm_curv.g = CLAMP(g, 0, 255);
+ st->imm_curv.b = CLAMP(b, 0, 255);
st->imm_curv.a = 255;
}
void g3d_color4b(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
{
- st->imm_curv.r = r;
- st->imm_curv.g = g;
- st->imm_curv.b = b;
- st->imm_curv.a = a;
+ st->imm_curv.r = CLAMP(r, 0, 255);
+ st->imm_curv.g = CLAMP(g, 0, 255);
+ st->imm_curv.b = CLAMP(b, 0, 255);
+ st->imm_curv.a = CLAMP(a, 0, 255);
}
void g3d_color3f(float r, float g, float b)
int ir = r * 255.0f;
int ig = g * 255.0f;
int ib = b * 255.0f;
- st->imm_curv.r = ir > 255 ? 255 : ir;
- st->imm_curv.g = ig > 255 ? 255 : ig;
- st->imm_curv.b = ib > 255 ? 255 : ib;
+ st->imm_curv.r = CLAMP(ir, 0, 255);
+ st->imm_curv.g = CLAMP(ig, 0, 255);
+ st->imm_curv.b = CLAMP(ib, 0, 255);
st->imm_curv.a = 255;
}
int ig = g * 255.0f;
int ib = b * 255.0f;
int ia = a * 255.0f;
- st->imm_curv.r = ir > 255 ? 255 : ir;
- st->imm_curv.g = ig > 255 ? 255 : ig;
- st->imm_curv.b = ib > 255 ? 255 : ib;
- st->imm_curv.a = ia > 255 ? 255 : ia;
+ st->imm_curv.r = CLAMP(ir, 0, 255);
+ st->imm_curv.g = CLAMP(ig, 0, 255);
+ st->imm_curv.b = CLAMP(ib, 0, 255);
+ st->imm_curv.a = CLAMP(ia, 0, 255);
}
void g3d_texcoord(float u, float v)