@@ -15,9 +15,9 @@ template <>
1515INLINE void fb_flush_pix<PixFmt::BGR>(FrameBuffer &fb, const pl2d::TextureF &tex, u32 x, u32 y) {
1616 byte *_rest fb_p = &fb.pix8 [0 ][y * fb.pitch + x * fb.padding ];
1717 auto *_rest tex_p = &tex.pixels [y * tex.pitch + x];
18- fb_p[0 ] = tex_p->b * 255 .f ;
19- fb_p[1 ] = tex_p->g * 255 .f ;
20- fb_p[2 ] = tex_p->r * 255 .f ;
18+ fb_p[0 ] = cpp::clamp ( tex_p->b , 0 . f , 1 . f ) * 255 .f ;
19+ fb_p[1 ] = cpp::clamp ( tex_p->g , 0 . f , 1 . f ) * 255 .f ;
20+ fb_p[2 ] = cpp::clamp ( tex_p->r , 0 . f , 1 . f ) * 255 .f ;
2121}
2222template <>
2323INLINE void fb_copy_to_pix<PixFmt::BGR>(const FrameBuffer &fb, pl2d::TextureB &tex, u32 x, u32 y) {
@@ -51,10 +51,10 @@ template <>
5151INLINE void fb_flush_pix<PixFmt::BGRA>(FrameBuffer &fb, const pl2d::TextureF &tex, u32 x, u32 y) {
5252 byte *_rest fb_p = &fb.pix8 [0 ][y * fb.pitch + x * fb.padding ];
5353 auto *_rest tex_p = &tex.pixels [y * tex.pitch + x];
54- fb_p[0 ] = tex_p->b * 255 .f ;
55- fb_p[1 ] = tex_p->g * 255 .f ;
56- fb_p[2 ] = tex_p->r * 255 .f ;
57- fb_p[3 ] = tex_p->a * 255 .f ;
54+ fb_p[0 ] = cpp::clamp ( tex_p->b , 0 . f , 1 . f ) * 255 .f ;
55+ fb_p[1 ] = cpp::clamp ( tex_p->g , 0 . f , 1 . f ) * 255 .f ;
56+ fb_p[2 ] = cpp::clamp ( tex_p->r , 0 . f , 1 . f ) * 255 .f ;
57+ fb_p[3 ] = cpp::clamp ( tex_p->a , 0 . f , 1 . f ) * 255 .f ;
5858}
5959template <>
6060INLINE void fb_copy_to_pix<PixFmt::BGRA>(const FrameBuffer &fb, pl2d::TextureB &tex, u32 x, u32 y) {
@@ -88,10 +88,10 @@ template <>
8888INLINE void fb_flush_pix<PixFmt::ABGR>(FrameBuffer &fb, const pl2d::TextureF &tex, u32 x, u32 y) {
8989 byte *_rest fb_p = &fb.pix8 [0 ][y * fb.pitch + x * fb.padding ];
9090 auto *_rest tex_p = &tex.pixels [y * tex.pitch + x];
91- fb_p[0 ] = tex_p->a * 255 .f ;
92- fb_p[1 ] = tex_p->b * 255 .f ;
93- fb_p[2 ] = tex_p->g * 255 .f ;
94- fb_p[3 ] = tex_p->r * 255 .f ;
91+ fb_p[0 ] = cpp::clamp ( tex_p->a , 0 . f , 1 . f ) * 255 .f ;
92+ fb_p[1 ] = cpp::clamp ( tex_p->b , 0 . f , 1 . f ) * 255 .f ;
93+ fb_p[2 ] = cpp::clamp ( tex_p->g , 0 . f , 1 . f ) * 255 .f ;
94+ fb_p[3 ] = cpp::clamp ( tex_p->r , 0 . f , 1 . f ) * 255 .f ;
9595}
9696template <>
9797INLINE void fb_copy_to_pix<PixFmt::ABGR>(const FrameBuffer &fb, pl2d::TextureB &tex, u32 x, u32 y) {
0 commit comments