diff options
author | Dr.Smile <vabnick@gmail.com> | 2021-12-05 08:51:46 +0300 |
---|---|---|
committer | Dr.Smile <vabnick@gmail.com> | 2022-12-04 02:17:38 +0300 |
commit | 7477ab2b12b443a0b880de89bfb32780b04c31bb (patch) | |
tree | 0d8f3a1f186858e84cde11737613672a4ce03687 /libass | |
parent | 3fdf7e58e810855ac5ea26dd6ee0d958553d6af5 (diff) | |
download | libass-7477ab2b12b443a0b880de89bfb32780b04c31bb.tar.bz2 libass-7477ab2b12b443a0b880de89bfb32780b04c31bb.tar.xz |
bitmap_engine: reduce copy-paste for prototypes
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_bitmap_engine.h | 74 | ||||
-rw-r--r-- | libass/ass_func_template.h | 88 |
2 files changed, 57 insertions, 105 deletions
diff --git a/libass/ass_bitmap_engine.h b/libass/ass_bitmap_engine.h index 7198947..8628bd9 100644 --- a/libass/ass_bitmap_engine.h +++ b/libass/ass_bitmap_engine.h @@ -23,35 +23,35 @@ #include <stdint.h> struct segment; -typedef void (*FillSolidTileFunc)(uint8_t *buf, ptrdiff_t stride, int set); -typedef void (*FillHalfplaneTileFunc)(uint8_t *buf, ptrdiff_t stride, - int32_t a, int32_t b, int64_t c, int32_t scale); -typedef void (*FillGenericTileFunc)(uint8_t *buf, ptrdiff_t stride, - const struct segment *line, size_t n_lines, - int winding); -typedef void (*MergeTileFunc)(uint8_t *buf, ptrdiff_t stride, const uint8_t *tile); +typedef void FillSolidTileFunc(uint8_t *buf, ptrdiff_t stride, int set); +typedef void FillHalfplaneTileFunc(uint8_t *buf, ptrdiff_t stride, + int32_t a, int32_t b, int64_t c, int32_t scale); +typedef void FillGenericTileFunc(uint8_t *buf, ptrdiff_t stride, + const struct segment *line, size_t n_lines, + int winding); +typedef void MergeTileFunc(uint8_t *buf, ptrdiff_t stride, const uint8_t *tile); -typedef void (*BitmapBlendFunc)(uint8_t *dst, intptr_t dst_stride, - uint8_t *src, intptr_t src_stride, - intptr_t width, intptr_t height); -typedef void (*BitmapMulFunc)(uint8_t *dst, intptr_t dst_stride, - uint8_t *src1, intptr_t src1_stride, - uint8_t *src2, intptr_t src2_stride, - intptr_t width, intptr_t height); +typedef void BitmapBlendFunc(uint8_t *dst, intptr_t dst_stride, + uint8_t *src, intptr_t src_stride, + intptr_t width, intptr_t height); +typedef void BitmapMulFunc(uint8_t *dst, intptr_t dst_stride, + uint8_t *src1, intptr_t src1_stride, + uint8_t *src2, intptr_t src2_stride, + intptr_t width, intptr_t height); -typedef void (*BeBlurFunc)(uint8_t *buf, intptr_t stride, - intptr_t width, intptr_t height, uint16_t *tmp); +typedef void BeBlurFunc(uint8_t *buf, intptr_t stride, + intptr_t width, intptr_t height, uint16_t *tmp); // intermediate bitmaps represented as sets of verical stripes of int16_t[alignment / 2] -typedef void (*Convert8to16Func)(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, - uintptr_t width, uintptr_t height); -typedef void (*Convert16to8Func)(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src, - uintptr_t width, uintptr_t height); -typedef void (*FilterFunc)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height); -typedef void (*ParamFilterFunc)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); +typedef void Convert8to16Func(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, + uintptr_t width, uintptr_t height); +typedef void Convert16to8Func(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src, + uintptr_t width, uintptr_t height); +typedef void FilterFunc(int16_t *dst, const int16_t *src, + uintptr_t src_width, uintptr_t src_height); +typedef void ParamFilterFunc(int16_t *dst, const int16_t *src, + uintptr_t src_width, uintptr_t src_height, + const int16_t *param); #define C_ALIGN_ORDER 5 @@ -60,24 +60,24 @@ typedef struct { // rasterizer functions int tile_order; // log2(tile_size) - FillSolidTileFunc fill_solid; - FillHalfplaneTileFunc fill_halfplane; - FillGenericTileFunc fill_generic; - MergeTileFunc merge_tile; + FillSolidTileFunc *fill_solid; + FillHalfplaneTileFunc *fill_halfplane; + FillGenericTileFunc *fill_generic; + MergeTileFunc *merge_tile; // blend functions - BitmapBlendFunc add_bitmaps, imul_bitmaps; - BitmapMulFunc mul_bitmaps; + BitmapBlendFunc *add_bitmaps, *imul_bitmaps; + BitmapMulFunc *mul_bitmaps; // be blur function - BeBlurFunc be_blur; + BeBlurFunc *be_blur; // gaussian blur functions - Convert8to16Func stripe_unpack; - Convert16to8Func stripe_pack; - FilterFunc shrink_horz, shrink_vert; - FilterFunc expand_horz, expand_vert; - ParamFilterFunc blur_horz[5], blur_vert[5]; + Convert8to16Func *stripe_unpack; + Convert16to8Func *stripe_pack; + FilterFunc *shrink_horz, *shrink_vert; + FilterFunc *expand_horz, *expand_vert; + ParamFilterFunc *blur_horz[5], *blur_vert[5]; } BitmapEngine; extern const BitmapEngine ass_bitmap_engine_c; diff --git a/libass/ass_func_template.h b/libass/ass_func_template.h index c1ea12a..892e498 100644 --- a/libass/ass_func_template.h +++ b/libass/ass_func_template.h @@ -17,78 +17,30 @@ */ +FillSolidTileFunc DECORATE(fill_solid_tile16); +FillHalfplaneTileFunc DECORATE(fill_halfplane_tile16); +FillGenericTileFunc DECORATE(fill_generic_tile16); +MergeTileFunc DECORATE(merge_tile16); -void DECORATE(fill_solid_tile16)(uint8_t *buf, ptrdiff_t stride, int set); -void DECORATE(fill_solid_tile32)(uint8_t *buf, ptrdiff_t stride, int set); -void DECORATE(fill_halfplane_tile16)(uint8_t *buf, ptrdiff_t stride, - int32_t a, int32_t b, int64_t c, int32_t scale); -void DECORATE(fill_halfplane_tile32)(uint8_t *buf, ptrdiff_t stride, - int32_t a, int32_t b, int64_t c, int32_t scale); -void DECORATE(fill_generic_tile16)(uint8_t *buf, ptrdiff_t stride, - const struct segment *line, size_t n_lines, - int winding); -void DECORATE(fill_generic_tile32)(uint8_t *buf, ptrdiff_t stride, - const struct segment *line, size_t n_lines, - int winding); -void DECORATE(merge_tile16)(uint8_t *buf, ptrdiff_t stride, const uint8_t *tile); -void DECORATE(merge_tile32)(uint8_t *buf, ptrdiff_t stride, const uint8_t *tile); +FillSolidTileFunc DECORATE(fill_solid_tile32); +FillHalfplaneTileFunc DECORATE(fill_halfplane_tile32); +FillGenericTileFunc DECORATE(fill_generic_tile32); +MergeTileFunc DECORATE(merge_tile32); -void DECORATE(add_bitmaps)(uint8_t *dst, intptr_t dst_stride, - uint8_t *src, intptr_t src_stride, - intptr_t width, intptr_t height); -void DECORATE(imul_bitmaps)(uint8_t *dst, intptr_t dst_stride, - uint8_t *src, intptr_t src_stride, - intptr_t width, intptr_t height); -void DECORATE(mul_bitmaps)(uint8_t *dst, intptr_t dst_stride, - uint8_t *src1, intptr_t src1_stride, - uint8_t *src2, intptr_t src2_stride, - intptr_t width, intptr_t height); +BitmapBlendFunc DECORATE(add_bitmaps), DECORATE(imul_bitmaps); +BitmapMulFunc DECORATE(mul_bitmaps); -void DECORATE(be_blur)(uint8_t *buf, intptr_t stride, - intptr_t width, intptr_t height, uint16_t *tmp); +BeBlurFunc DECORATE(be_blur); -void DECORATE(stripe_unpack)(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, - uintptr_t width, uintptr_t height); -void DECORATE(stripe_pack)(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src, - uintptr_t width, uintptr_t height); -void DECORATE(shrink_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height); -void DECORATE(shrink_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height); -void DECORATE(expand_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height); -void DECORATE(expand_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height); -void DECORATE(blur4_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur4_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur5_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur5_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur6_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur6_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur7_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur7_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur8_horz)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); -void DECORATE(blur8_vert)(int16_t *dst, const int16_t *src, - uintptr_t src_width, uintptr_t src_height, - const int16_t *param); +Convert8to16Func DECORATE(stripe_unpack); +Convert16to8Func DECORATE(stripe_pack); +FilterFunc DECORATE(shrink_horz), DECORATE(shrink_vert); +FilterFunc DECORATE(expand_horz), DECORATE(expand_vert); +ParamFilterFunc DECORATE(blur4_horz), DECORATE(blur4_vert); +ParamFilterFunc DECORATE(blur5_horz), DECORATE(blur5_vert); +ParamFilterFunc DECORATE(blur6_horz), DECORATE(blur6_vert); +ParamFilterFunc DECORATE(blur7_horz), DECORATE(blur7_vert); +ParamFilterFunc DECORATE(blur8_horz), DECORATE(blur8_vert); const BitmapEngine DECORATE(bitmap_engine) = { |