summaryrefslogtreecommitdiffstats
path: root/libass/ass_bitmap.h
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2022-08-09 03:56:44 +0300
committerDr.Smile <vabnick@gmail.com>2022-12-04 02:17:38 +0300
commit3fdf7e58e810855ac5ea26dd6ee0d958553d6af5 (patch)
tree7bb63c91eec8b73b0aee09ac0d9d341fff7f16e5 /libass/ass_bitmap.h
parent4b10baeecd33be785e09a11e7cbcb48662ed1af9 (diff)
downloadlibass-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.h65
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;