@@ -250,6 +250,10 @@ wuffs_base__pixel_buffer__set_color_u32_at(
250
250
wuffs_base__color_u32_argb_premul__as__color_u64_argb_nonpremul (
251
251
color ));
252
252
break ;
253
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_BINARY :
254
+ wuffs_base__poke_u32le__no_bounds_check (
255
+ row + (4 * ((size_t )x )), (color >> 31 ) ? (color | 0xFF000000 ) : 0 );
256
+ break ;
253
257
254
258
case WUFFS_BASE__PIXEL_FORMAT__RGB :
255
259
wuffs_base__poke_u24le__no_bounds_check (
@@ -5693,6 +5697,100 @@ wuffs_private_impl__pixel_swizzler__prepare__bgra_premul(
5693
5697
return NULL ;
5694
5698
}
5695
5699
5700
+ static inline WUFFS_BASE__FORCE_INLINE wuffs_base__pixel_swizzler__func //
5701
+ wuffs_private_impl__pixel_swizzler__prepare__bgra_binary (
5702
+ wuffs_base__pixel_swizzler * p ,
5703
+ wuffs_base__pixel_format dst_pixfmt ,
5704
+ wuffs_base__slice_u8 dst_palette ,
5705
+ wuffs_base__slice_u8 src_palette ,
5706
+ wuffs_base__pixel_blend blend ) {
5707
+ switch (dst_pixfmt .repr ) {
5708
+ case WUFFS_BASE__PIXEL_FORMAT__BGR_565 :
5709
+ switch (blend ) {
5710
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5711
+ return wuffs_private_impl__swizzle_bgr_565__bgra_premul__src ;
5712
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5713
+ return wuffs_private_impl__swizzle_bgr_565__bgra_premul__src_over ;
5714
+ }
5715
+ return NULL ;
5716
+
5717
+ case WUFFS_BASE__PIXEL_FORMAT__BGR :
5718
+ switch (blend ) {
5719
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5720
+ return wuffs_private_impl__swizzle_bgr__bgra_premul__src ;
5721
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5722
+ return wuffs_private_impl__swizzle_bgr__bgra_premul__src_over ;
5723
+ }
5724
+ return NULL ;
5725
+
5726
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_NONPREMUL :
5727
+ switch (blend ) {
5728
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5729
+ return wuffs_private_impl__swizzle_copy_4_4 ;
5730
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5731
+ return wuffs_private_impl__swizzle_bgra_nonpremul__bgra_premul__src_over ;
5732
+ }
5733
+ return NULL ;
5734
+
5735
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_NONPREMUL_4X16LE :
5736
+ switch (blend ) {
5737
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5738
+ return wuffs_private_impl__swizzle_bgra_nonpremul_4x16le__bgra_premul__src ;
5739
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5740
+ return wuffs_private_impl__swizzle_bgra_nonpremul_4x16le__bgra_premul__src_over ;
5741
+ }
5742
+ return NULL ;
5743
+
5744
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_PREMUL :
5745
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_BINARY :
5746
+ switch (blend ) {
5747
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5748
+ return wuffs_private_impl__swizzle_copy_4_4 ;
5749
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5750
+ return wuffs_private_impl__swizzle_bgra_premul__bgra_premul__src_over ;
5751
+ }
5752
+ return NULL ;
5753
+
5754
+ case WUFFS_BASE__PIXEL_FORMAT__RGB :
5755
+ switch (blend ) {
5756
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5757
+ return wuffs_private_impl__swizzle_bgr__rgba_premul__src ;
5758
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5759
+ return wuffs_private_impl__swizzle_bgr__rgba_premul__src_over ;
5760
+ }
5761
+ return NULL ;
5762
+
5763
+ case WUFFS_BASE__PIXEL_FORMAT__RGBA_NONPREMUL :
5764
+ switch (blend ) {
5765
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5766
+ #if defined(WUFFS_PRIVATE_IMPL__CPU_ARCH__X86_64_V2 )
5767
+ if (wuffs_base__cpu_arch__have_x86_sse42 ()) {
5768
+ return wuffs_private_impl__swizzle_swap_rgbx_bgrx__x86_sse42 ;
5769
+ }
5770
+ #endif
5771
+ return wuffs_private_impl__swizzle_swap_rgbx_bgrx ;
5772
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5773
+ return wuffs_private_impl__swizzle_bgra_nonpremul__rgba_premul__src_over ;
5774
+ }
5775
+ return NULL ;
5776
+
5777
+ case WUFFS_BASE__PIXEL_FORMAT__RGBA_PREMUL :
5778
+ switch (blend ) {
5779
+ case WUFFS_BASE__PIXEL_BLEND__SRC :
5780
+ #if defined(WUFFS_PRIVATE_IMPL__CPU_ARCH__X86_64_V2 )
5781
+ if (wuffs_base__cpu_arch__have_x86_sse42 ()) {
5782
+ return wuffs_private_impl__swizzle_swap_rgbx_bgrx__x86_sse42 ;
5783
+ }
5784
+ #endif
5785
+ return wuffs_private_impl__swizzle_swap_rgbx_bgrx ;
5786
+ case WUFFS_BASE__PIXEL_BLEND__SRC_OVER :
5787
+ return wuffs_private_impl__swizzle_bgra_premul__rgba_premul__src_over ;
5788
+ }
5789
+ return NULL ;
5790
+ }
5791
+ return NULL ;
5792
+ }
5793
+
5696
5794
static inline WUFFS_BASE__FORCE_INLINE wuffs_base__pixel_swizzler__func //
5697
5795
wuffs_private_impl__pixel_swizzler__prepare__bgrx (
5698
5796
wuffs_base__pixel_swizzler * p ,
@@ -6111,6 +6209,11 @@ wuffs_base__pixel_swizzler__prepare(wuffs_base__pixel_swizzler* p,
6111
6209
p , dst_pixfmt , dst_palette , src_palette , blend );
6112
6210
break ;
6113
6211
6212
+ case WUFFS_BASE__PIXEL_FORMAT__BGRA_BINARY :
6213
+ func = wuffs_private_impl__pixel_swizzler__prepare__bgra_binary (
6214
+ p , dst_pixfmt , dst_palette , src_palette , blend );
6215
+ break ;
6216
+
6114
6217
case WUFFS_BASE__PIXEL_FORMAT__BGRX :
6115
6218
func = wuffs_private_impl__pixel_swizzler__prepare__bgrx (
6116
6219
p , dst_pixfmt , dst_palette , src_palette , blend );
0 commit comments