summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2021-12-05 08:51:46 +0300
committerDr.Smile <vabnick@gmail.com>2022-12-04 02:17:38 +0300
commit7477ab2b12b443a0b880de89bfb32780b04c31bb (patch)
tree0d8f3a1f186858e84cde11737613672a4ce03687 /libass
parent3fdf7e58e810855ac5ea26dd6ee0d958553d6af5 (diff)
downloadlibass-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.h74
-rw-r--r--libass/ass_func_template.h88
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) = {