summaryrefslogtreecommitdiffstats
path: root/libass/ass_outline.c
Commit message (Collapse)AuthorAgeFilesLines
* outline: eliminate use of VLADr.Smile2019-05-201-2/+2
| | | | Fixes https://github.com/libass/libass/pull/321.
* outline: rearrange allocationsDr.Smile2019-05-201-4/+6
|
* Move outline transformations to ass_outline.cDr.Smile2019-05-201-6/+58
| | | | | | | | | This also potentially improves performance by copying and transforming in a single operation rather than copying first and then transforming the result. Also transformation function is specialized for case where expensive perspective division is not necessary.
* Consolidate and quantize all transformationsDr.Smile2019-05-201-36/+8
| | | | | | | | | | | | | | This commit defers all outline transformations until rasterization stage. Combined transformation is then quantized and used as bitmap key. That should improve performance of slow animations. Also caching of initial and stroked outlines and bitmaps is now separate in preparation to proper error estimation for stroker stage. Note that Z-clipping for perspective transformations is now done differently compared to VSFilter. That clipping is mostly safety feature to protect from overflows and divisions by zero and is almost never triggered in real-world subtitles.
* drawing: separate drawing text reading from outline constructionDr.Smile2019-05-191-0/+11
| | | | Purpose of this commit is to simplify logic behind drawing handling.
* stroker: correctly handle case of many small segmentsDr.Smile2019-01-111-45/+49
| | | | Fixes: https://github.com/libass/libass/issues/326.
* Reorganize outline transformation functionsDr.Smile2017-09-171-7/+9
|
* Switch to more efficient representation of outlinesDr.Smile2017-09-171-248/+262
|
* Switch to native coordinate system for outlinesDr.Smile2017-09-171-33/+18
|
* Replace FreeType types with libass native typesDr.Smile2017-09-171-91/+73
| | | | | | FT_Vector and FT_BBox types are based on FT_Pos, which is alias of long. FreeType treats it as 32-bit integer, but on some platforms long can be 64-bit. That leads to wasted memory and suboptimal performance.
* stroker: fix wording of algorithm descriptionDr.Smile2017-09-171-6/+6
|
* stroker: add algorithm descriptionDr.Smile2017-08-011-6/+215
|
* stroker: skip degenerate 2-point contours from broken fontsDr.Smile2017-07-311-6/+14
|
* cosmetic: fix codestyleDr.Smile2017-07-311-5/+5
|
* renderer: switch to using two border outlines instead of oneDr.Smile2017-07-311-52/+55
|
* stroker: implement fast two-outline strokerDr.Smile2017-07-311-133/+1037
|
* cosmetic: extract most of the outline-related functions into separate fileDr.Smile2017-07-311-0/+275