diff options
author | Dr.Smile <vabnick@gmail.com> | 2022-08-09 03:56:44 +0300 |
---|---|---|
committer | Dr.Smile <vabnick@gmail.com> | 2022-12-04 02:17:38 +0300 |
commit | 3fdf7e58e810855ac5ea26dd6ee0d958553d6af5 (patch) | |
tree | 7bb63c91eec8b73b0aee09ac0d9d341fff7f16e5 /libass/ass_bitmap.h | |
parent | 4b10baeecd33be785e09a11e7cbcb48662ed1af9 (diff) | |
download | libass-3fdf7e58e810855ac5ea26dd6ee0d958553d6af5.tar.bz2 libass-3fdf7e58e810855ac5ea26dd6ee0d958553d6af5.tar.xz |
Move BitmapEngine infrastructure into separate file
Diffstat (limited to 'libass/ass_bitmap.h')
-rw-r--r-- | libass/ass_bitmap.h | 65 |
1 files changed, 1 insertions, 64 deletions
diff --git a/libass/ass_bitmap.h b/libass/ass_bitmap.h index 9f425cc..c337bf1 100644 --- a/libass/ass_bitmap.h +++ b/libass/ass_bitmap.h @@ -25,70 +25,7 @@ #include "ass.h" #include "ass_outline.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 (*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); - -// 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); - -#define C_ALIGN_ORDER 5 - -typedef struct { - int align_order; // log2(alignment) - - // rasterizer functions - int tile_order; // log2(tile_size) - FillSolidTileFunc fill_solid; - FillHalfplaneTileFunc fill_halfplane; - FillGenericTileFunc fill_generic; - MergeTileFunc merge_tile; - - // blend functions - BitmapBlendFunc add_bitmaps, imul_bitmaps; - BitmapMulFunc mul_bitmaps; - - // be blur function - 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]; -} BitmapEngine; - -extern const BitmapEngine ass_bitmap_engine_c; -extern const BitmapEngine ass_bitmap_engine_sse2; -extern const BitmapEngine ass_bitmap_engine_avx2; - +#include "ass_bitmap_engine.h" typedef struct { int32_t left, top; |