]> granicus.if.org Git - libass/log
libass
9 years agoAdd another helper-macro for array allocation
wm4 [Fri, 14 Nov 2014 19:19:14 +0000 (20:19 +0100)]
Add another helper-macro for array allocation

9 years agoFix recently introduced overflow check (again)
wm4 [Fri, 14 Nov 2014 18:03:04 +0000 (19:03 +0100)]
Fix recently introduced overflow check (again)

9 years agoFix the bug
wm4 [Fri, 14 Nov 2014 00:45:09 +0000 (01:45 +0100)]
Fix the bug

Commit 8536eaa was slightly broken: for some incomprehensible reason,
(w + 1) memory instead of w is needed. The missing space could lead to
memory corruption and crashes.

9 years agoSimplify ass_utils.c code
Youka [Sun, 9 Nov 2014 19:11:57 +0000 (20:11 +0100)]
Simplify ass_utils.c code

Mainly cosmetic, but maybe some optimizations the compiler misses.

9 years agoClean up and improve .gitignore
Youka [Fri, 7 Nov 2014 16:03:22 +0000 (17:03 +0100)]
Clean up and improve .gitignore

Add * suffix to executable names for the sake of Windows,
where they get .exe extension automatically appended.

9 years agoUse stdbool.h in another place
wm4 [Thu, 13 Nov 2014 20:27:23 +0000 (21:27 +0100)]
Use stdbool.h in another place

Also fix that ass_synth_init() could deref NULL.

9 years agoCheck for another overflow in blur code
wm4 [Thu, 13 Nov 2014 20:06:10 +0000 (21:06 +0100)]
Check for another overflow in blur code

9 years agoMove apply_blur() to ass_bitmap.c
wm4 [Thu, 13 Nov 2014 19:51:51 +0000 (20:51 +0100)]
Move apply_blur() to ass_bitmap.c

Put all code into one place, which makes it easier to follow.

10 years agoCheck against some overflows and allocation failures on blur
wm4 [Tue, 11 Nov 2014 10:45:37 +0000 (11:45 +0100)]
Check against some overflows and allocation failures on blur

This still doesn't catch all cases.

10 years agoAdd ass_realloc_array()
wm4 [Tue, 11 Nov 2014 10:44:54 +0000 (11:44 +0100)]
Add ass_realloc_array()

Helps with overflow and allocation failure checking.

10 years agoCheck more mallocs
wm4 [Sun, 9 Nov 2014 09:41:54 +0000 (10:41 +0100)]
Check more mallocs

This is just a start and gets most easy ones.

10 years agoProvide SIZE_MAX fallback
wm4 [Sun, 9 Nov 2014 09:40:59 +0000 (10:40 +0100)]
Provide SIZE_MAX fallback

SIZE_MAX is in C99, but not in C89. It is in <stdint.h>, and is always a
macro, so this fallback should be pretty portable and cause no issues.

10 years agoCheck more allocations
Rodger Combs [Fri, 7 Nov 2014 18:49:18 +0000 (14:49 -0400)]
Check more allocations

Part of #146

10 years agoFix UB at left shifts of negative integers
Dr.Smile [Fri, 7 Nov 2014 14:14:40 +0000 (17:14 +0300)]
Fix UB at left shifts of negative integers

10 years agoFix subpixel shadow shift
Dr.Smile [Wed, 5 Nov 2014 23:57:03 +0000 (02:57 +0300)]
Fix subpixel shadow shift

10 years agoOnly use the subpixel value when shifting bitmaps. Fixes #142
Rodger Combs [Wed, 5 Nov 2014 18:52:07 +0000 (14:52 -0400)]
Only use the subpixel value when shifting bitmaps. Fixes #142

10 years agoLoad embedded fonts from memory correctly
wm4 [Tue, 4 Nov 2014 20:08:58 +0000 (21:08 +0100)]
Load embedded fonts from memory correctly

10 years agoUse LT_INIT for better autoreconf compatibility
Rodger Combs [Sun, 26 Oct 2014 00:47:23 +0000 (19:47 -0500)]
Use LT_INIT for better autoreconf compatibility

10 years agoUpdate version and changelog 0.12.0
Grigori Goronzy [Wed, 22 Oct 2014 22:37:33 +0000 (00:37 +0200)]
Update version and changelog

10 years agoProvide slightly more fine-grained control over style overrides
wm4 [Thu, 16 Oct 2014 23:55:16 +0000 (01:55 +0200)]
Provide slightly more fine-grained control over style overrides

10 years agoSilence compilation warning
wm4 [Thu, 16 Oct 2014 23:26:30 +0000 (01:26 +0200)]
Silence compilation warning

This fixes the following warnings:

In file included from ass_cache.c:34:0:
ass_cache_template.h:52:0: warning: "BINSTRING" redefined
 #define BINSTRING(member) \
 ^
In file included from ass_cache.h:59:0,
                 from ass_font.h:58,
                 from ass_cache.c:28:
ass_cache_template.h:9:0: note: this is the location of the previous definition
 #define BINSTRING(member) \
 ^
In file included from ass_cache.c:36:0:
ass_cache_template.h:30:0: warning: "BINSTRING" redefined
 #define BINSTRING(member) \
 ^
In file included from ass_cache.c:34:0:
ass_cache_template.h:52:0: note: this is the location of the previous definition
 #define BINSTRING(member) \
 ^

10 years agoFix caching of combined bitmaps after complex shaping
Oleg Oshmyan [Thu, 4 Sep 2014 20:02:21 +0000 (22:02 +0200)]
Fix caching of combined bitmaps after complex shaping

10 years agoCheck FT_Outline_New return value
wm4 [Sun, 31 Aug 2014 18:22:24 +0000 (20:22 +0200)]
Check FT_Outline_New return value

Makes #131 not crash. The function likely fails because the number of
points exceeds SHRT_MAX.

10 years agoCorrectly close last contour in case of overflow
Dr.Smile [Mon, 25 Aug 2014 23:05:42 +0000 (03:05 +0400)]
Correctly close last contour in case of overflow

10 years agoCheck for 0-point contours in rasterizer_set_outline()
Dr.Smile [Mon, 25 Aug 2014 23:02:15 +0000 (03:02 +0400)]
Check for 0-point contours in rasterizer_set_outline()

Fixes libass#129.

10 years agoFix \fade(7-argument version) parse
Maks Naumov [Fri, 22 Aug 2014 22:54:23 +0000 (01:54 +0300)]
Fix \fade(7-argument version) parse

10 years agoMerge pull request #119 from MrSmile/fix-drawing-overflow
Rodger Combs [Sat, 19 Jul 2014 05:17:41 +0000 (00:17 -0500)]
Merge pull request #119 from MrSmile/fix-drawing-overflow

Fix integer overflow in FT_Outline

10 years agoMerge pull request #116 from hadvaid/dragonfly
Rodger Combs [Sat, 19 Jul 2014 05:17:17 +0000 (00:17 -0500)]
Merge pull request #116 from hadvaid/dragonfly

configure.ac: Treat DragonFly as the rest of BSDs

10 years agoFix integer overflow in FT_Outline
Dr.Smile [Fri, 18 Jul 2014 15:25:57 +0000 (19:25 +0400)]
Fix integer overflow in FT_Outline

10 years agoconfigure.ac: Treat DragonFly as the rest of BSDs
Jan Beich [Tue, 15 Jul 2014 12:21:33 +0000 (12:21 +0000)]
configure.ac: Treat DragonFly as the rest of BSDs

10 years agoass_parse: remove 2 unused variables
wm4 [Sun, 8 Jun 2014 23:56:22 +0000 (01:56 +0200)]
ass_parse: remove 2 unused variables

Fallout from the previous commits.

10 years agoSimplify drawing text assignment
Oleg Oshmyan [Thu, 29 May 2014 23:15:03 +0000 (00:15 +0100)]
Simplify drawing text assignment

10 years agoUse ass_drawing_add_chars for vector drawings
Oleg Oshmyan [Thu, 29 May 2014 23:01:41 +0000 (00:01 +0100)]
Use ass_drawing_add_chars for vector drawings

This not only provides a performance improvement but also
conveniently fixes the following issue: we used to interpret
backslash-escapes in vector drawings, but we shouldn't.

10 years agoparse_tag: remove unnecessary malloc
Oleg Oshmyan [Thu, 29 May 2014 22:38:45 +0000 (23:38 +0100)]
parse_tag: remove unnecessary malloc

10 years agoRequire closing '}' for override tags
Oleg Oshmyan [Thu, 29 May 2014 22:10:30 +0000 (23:10 +0100)]
Require closing '}' for override tags

Like VSFilter. '{' without a following '}' is just text, though
in vector drawing mode it still delimits individual drawings.

This also lets us nicely avoid '\0' hacks
in the \t override tag handler in parse_tag.

10 years agoIntroduce ass_drawing_add_chars for adding a whole string at once
Oleg Oshmyan [Sat, 17 May 2014 23:31:14 +0000 (00:31 +0100)]
Introduce ass_drawing_add_chars for adding a whole string at once

10 years agoParse override tag arguments exactly like VSFilter 2.38
Oleg Oshmyan [Sat, 17 May 2014 21:47:45 +0000 (22:47 +0100)]
Parse override tag arguments exactly like VSFilter 2.38

Also replace strtocolor in ass_utils with string2color
from ass.c, because that is more useful everywhere now.

10 years agoMove (r)skip_spaces to ass_utils
Oleg Oshmyan [Sat, 17 May 2014 21:39:33 +0000 (22:39 +0100)]
Move (r)skip_spaces to ass_utils

10 years agoparse_tag: merge \fs+, \fs-, \fs
Oleg Oshmyan [Thu, 1 May 2014 01:47:43 +0000 (02:47 +0100)]
parse_tag: merge \fs+, \fs-, \fs

10 years agoparse_tag: split \fscx, \fscy, \fsc
Oleg Oshmyan [Thu, 1 May 2014 01:47:43 +0000 (02:47 +0100)]
parse_tag: split \fscx, \fscy, \fsc

10 years agoAdd a mechanism for selective style overrides
wm4 [Wed, 4 Jun 2014 22:55:13 +0000 (00:55 +0200)]
Add a mechanism for selective style overrides

This adds 2 new API functions:

  ass_set_selective_style_override()
  ass_set_selective_style_override_enabled()

They can be used to force dialog text to use a specific ASS_Style. It
uses a fuzzy heuristic for that, and the quality of results may vary.
It does style overriding selectively and tries not to override things
that need explicit styling. The heuristic for that isn't set in stone
either, and can change with future libass versions.

Closes libass#88.

10 years agoMerge pull request #100 from astiob/stroke
Grigori Goronzy [Sun, 1 Jun 2014 22:16:28 +0000 (00:16 +0200)]
Merge pull request #100 from astiob/stroke

Use FT_Outline_EmboldenXY

10 years agoAdd BorderStyle=4, background color for text
wm4 [Sat, 31 May 2014 21:56:24 +0000 (23:56 +0200)]
Add BorderStyle=4, background color for text

This is somewhat similar to BorderStyle=3, but with a number of
differences. Mainly, this new BorderStyle doesn't create overlaps
within an event.

Closes #105.

10 years agoFix change detection when text is clipped to screen
wm4 [Sat, 31 May 2014 21:19:45 +0000 (23:19 +0200)]
Fix change detection when text is clipped to screen

The glyphs are clipped before combining, so the combined bitmap can
always have the same position, size, and address. This breaks the
change detection. Or at least I think that's what happens.

10 years agoRemove bitmap restriding
wm4 [Sun, 1 Jun 2014 02:35:24 +0000 (04:35 +0200)]
Remove bitmap restriding

It turns out we don't need this.

10 years agoUse FT_Outline_EmboldenXY if available
Oleg Oshmyan [Sun, 18 May 2014 02:50:12 +0000 (03:50 +0100)]
Use FT_Outline_EmboldenXY if available

10 years agoMerge pull request #102 from grigorig/fribidi-errorhandle
Grigori Goronzy [Thu, 29 May 2014 23:12:49 +0000 (01:12 +0200)]
Merge pull request #102 from grigorig/fribidi-errorhandle

shaper: add FriBidi error handling

10 years agoshaper: add FriBidi error handling
Grigori Goronzy [Thu, 29 May 2014 01:59:08 +0000 (03:59 +0200)]
shaper: add FriBidi error handling

It is unlikely, but FriBidi might not process a string correctly,
and we should handle that. Tested by making it fail always. This
should also fix some compiler warnings.

10 years agoSkip useless memset() when copying a bitmap
Rodger Combs [Sun, 25 May 2014 17:47:18 +0000 (12:47 -0500)]
Skip useless memset() when copying a bitmap

10 years agoFix \1a, \2a, \3a, \4a with invalid argument
Oleg Oshmyan [Fri, 2 May 2014 21:47:50 +0000 (22:47 +0100)]
Fix \1a, \2a, \3a, \4a with invalid argument

Reset to the initial color's alpha component, not red.

10 years agoReset clipping mode on every rectangle \clip
Oleg Oshmyan [Thu, 1 May 2014 01:38:33 +0000 (02:38 +0100)]
Reset clipping mode on every rectangle \clip

Prior to this fix, both of the following:
    \iclip(0,0,9999,9999)\clip(0,0,9999,9999)
    \iclip(0,0,0,0)\clip(0,0,9999,9999)
hid the whole picture in libass. The correct behavior
in both cases is to display the whole picture.

10 years agoMake \be animatable
Oleg Oshmyan [Wed, 30 Apr 2014 23:32:50 +0000 (00:32 +0100)]
Make \be animatable

VSFilter has supported this since version 2.39.

Use the raw floating-point value of the \be argument in the animation
formula, like xy-VSFilter has done since version 3.0.0.45 (404301a3).

10 years agomystrtoll: don't truncate to int
Oleg Oshmyan [Wed, 30 Apr 2014 23:17:23 +0000 (00:17 +0100)]
mystrtoll: don't truncate to int

10 years agoFix corner case: \move with identical start and end times
Oleg Oshmyan [Wed, 30 Apr 2014 23:06:28 +0000 (00:06 +0100)]
Fix corner case: \move with identical start and end times

10 years agoImplement fast quad-tree rasterizer in C and x86/SSE2/AVX2
Dr.Smile [Fri, 28 Mar 2014 18:17:46 +0000 (22:17 +0400)]
Implement fast quad-tree rasterizer in C and x86/SSE2/AVX2

Signed-off-by: Rodger Combs <rodger.combs@gmail.com>
10 years agoFix premature parser exit on }{ in drawing mode
Oleg Oshmyan [Sun, 27 Apr 2014 21:26:16 +0000 (22:26 +0100)]
Fix premature parser exit on }{ in drawing mode

Fixes #75.

10 years agoFixed headers in profile and test
Rodger Combs [Sun, 27 Apr 2014 04:07:09 +0000 (23:07 -0500)]
Fixed headers in profile and test

10 years agoUpdate README
Grigori Goronzy [Fri, 25 Apr 2014 17:38:52 +0000 (19:38 +0200)]
Update README

10 years agoUpdate version info and changelog 0.11.2
Grigori Goronzy [Fri, 25 Apr 2014 17:28:17 +0000 (19:28 +0200)]
Update version info and changelog

10 years agoInitialize \pbo for each event
Oleg Oshmyan [Thu, 10 Apr 2014 15:41:57 +0000 (18:41 +0300)]
Initialize \pbo for each event

Regression in commit 1f5eb5eb.
Fixes issue #74.

10 years agoDon't crash on \fscx0 with non-zero \blur
Oleg Oshmyan [Thu, 27 Mar 2014 22:19:56 +0000 (00:19 +0200)]
Don't crash on \fscx0 with non-zero \blur

Regression in commit 98707694.

10 years agoshaper: fix nasty sign bug in font functions
Grigori Goronzy [Mon, 17 Mar 2014 00:40:49 +0000 (01:40 +0100)]
shaper: fix nasty sign bug in font functions

Fixes issue #68.

10 years agoMerge pull request #66 from grigorig/drawing-floats
Grigori Goronzy [Sun, 16 Mar 2014 13:55:49 +0000 (14:55 +0100)]
Merge pull request #66 from grigorig/drawing-floats

drawing: parse numbers as floats

10 years agodrawing: parse numbers as floats
Grigori Goronzy [Sat, 15 Mar 2014 11:11:50 +0000 (12:11 +0100)]
drawing: parse numbers as floats

Parse values as float and convert into 26.6 fixed point. This actually
simplifies scaling a bit.

Fixes #63.

10 years agoRemove dirty pixels from ASM be_blur output
Oleg Oshmyan [Thu, 13 Mar 2014 01:07:47 +0000 (01:07 +0000)]
Remove dirty pixels from ASM be_blur output

A loop initializer was missing, so output started one row too early.
A loop condition check was missing, so output sometimes stopped
one column too late.

Also remove a couple of dead assignments.

10 years agoFix handling of top two pixel rows in be_blur_c
Oleg Oshmyan [Wed, 12 Mar 2014 22:06:28 +0000 (22:06 +0000)]
Fix handling of top two pixel rows in be_blur_c

5dd56af2 replaced our implementation of \be with xy-VSFilter's.
This error is not present in the xy-VSFilter code; it was introduced
by accident in a merge that was later squashed as part of 5dd56af2.

Note: the new \be reads in but does not write out
the first and last row and column of pixels.

10 years agoRemove incorrect declaration of HAVE_ALIGNED_STACK
11rcombs [Mon, 10 Mar 2014 00:33:30 +0000 (19:33 -0500)]
Remove incorrect declaration of HAVE_ALIGNED_STACK

10 years agoBetter fix for zero area outlines
Dr.Smile [Mon, 3 Mar 2014 22:24:34 +0000 (02:24 +0400)]
Better fix for zero area outlines

Signed-off-by: wm4 <wm4@nowhere>
Commit 04b51c2d broke BorderStyle=3 with text that had spaces.

10 years agoFix API documentation of change detection
Grigori Goronzy [Thu, 6 Mar 2014 22:16:41 +0000 (23:16 +0100)]
Fix API documentation of change detection

10 years agoMerge pull request #61 from wm4/fix2
Grigori Goronzy [Thu, 6 Mar 2014 22:16:11 +0000 (23:16 +0100)]
Merge pull request #61 from wm4/fix2

Fix change detection in presence of vector clips

10 years agoFix change detection in presence of vector clips
wm4 [Thu, 6 Mar 2014 21:23:01 +0000 (22:23 +0100)]
Fix change detection in presence of vector clips

Fixes this test case:

Dialogue: 0,0:00:00.00,0:00:02.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 220 l0 220)}Hello
Dialogue: 0,0:00:02.00,0:10:00.00,,,0,0,0,,{\fs50\pos(250,250)\iclip(m 0 0 l 400 0 l 400 230 l0 230)}Hello

The problem here is that the rendered output bitmap list itself does
not change, only its contents (due to the different vector clip).
ass_render_frame() will not set *detect_change correctly, and an
application using this flag (like mplayer or mpv) will not update
the screen as needed.

Fix this with a very cheap hack: always report a full change if
there's a vector clip. This is basically an emergency fix until
we have a proper way to detect the change.

10 years agoActually export ass_library_version symbol
wm4 [Mon, 3 Mar 2014 23:36:21 +0000 (00:36 +0100)]
Actually export ass_library_version symbol

Patch by chadr...@gmail.com.

Fixes libass#58, GC#117.

10 years agoDon't crash on \fscx0
wm4 [Mon, 3 Mar 2014 14:52:54 +0000 (15:52 +0100)]
Don't crash on \fscx0

Freetype can return a bounding box with all fields set to INT_MIN if an
outline with all points set to 0 is used. This can happen e.g. with
\fscx0, but also in more complicated cases. (In the original crashing
sample, this was probably caused in combination with an embedded font.)

Such a bounding box causes libass to crash, because it will enlarge the
combined bitmap bounding box to a ridiculous size.

Just skip outlines that have en empty bounding box. This is probably
the correct thing to do, and won't pass INT_MAX down to other parts
of libass.

10 years agoDon't use an unsigned it to check for <0 :|
11rcombs [Sat, 1 Mar 2014 01:54:39 +0000 (19:54 -0600)]
Don't use an unsigned it to check for <0 :|

10 years agoAssume SSE2 on x86_64
11rcombs [Sat, 1 Mar 2014 01:54:03 +0000 (19:54 -0600)]
Assume SSE2 on x86_64

10 years agoRedesigned configure/Makefile setup
11rcombs [Mon, 24 Feb 2014 01:39:45 +0000 (19:39 -0600)]
Redesigned configure/Makefile setup

Adds yasm version check and handles Free/OpenBSD/win32 correctly.

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
10 years agoFormat README.md
Rodger Combs [Wed, 19 Feb 2014 14:59:41 +0000 (08:59 -0600)]
Format README.md

10 years agoCreate README.md
Rodger Combs [Wed, 19 Feb 2014 14:48:14 +0000 (08:48 -0600)]
Create README.md

10 years agoUpdate version info and changelog 0.11.1
Grigori Goronzy [Wed, 19 Feb 2014 14:10:25 +0000 (15:10 +0100)]
Update version info and changelog

10 years agoAdd missing distfiles
Grigori Goronzy [Wed, 19 Feb 2014 13:52:48 +0000 (14:52 +0100)]
Add missing distfiles

10 years agoUpdate changelog 0.11.0
Grigori Goronzy [Tue, 18 Feb 2014 23:37:50 +0000 (00:37 +0100)]
Update changelog

10 years agoUpdate version info
Grigori Goronzy [Tue, 18 Feb 2014 21:02:48 +0000 (22:02 +0100)]
Update version info

10 years agoUpdate changelog
Grigori Goronzy [Tue, 18 Feb 2014 20:58:30 +0000 (21:58 +0100)]
Update changelog

10 years agoWe have aligned stack on Win64
11rcombs [Mon, 17 Feb 2014 16:08:22 +0000 (10:08 -0600)]
We have aligned stack on Win64

10 years agoDefine HAVE_ALIGNED_STACK; should wrap up #48
11rcombs [Mon, 17 Feb 2014 07:21:41 +0000 (01:21 -0600)]
Define HAVE_ALIGNED_STACK; should wrap up #48

10 years agoFix limits.h includes
Grigori Goronzy [Sun, 16 Feb 2014 23:13:37 +0000 (00:13 +0100)]
Fix limits.h includes

These were missing in several places. Fixes #50.

10 years agoRemove unnecessary instruction
11rcombs [Sun, 16 Feb 2014 19:32:54 +0000 (13:32 -0600)]
Remove unnecessary instruction

10 years agoAdded XMM register count in be_blur; should help #48
11rcombs [Sun, 16 Feb 2014 19:28:47 +0000 (13:28 -0600)]
Added XMM register count in be_blur; should help #48

10 years agoUse lower mm registers in be_blur.asm
11rcombs [Sun, 16 Feb 2014 19:29:40 +0000 (13:29 -0600)]
Use lower mm registers in be_blur.asm

10 years agoAdded license headers in ASM files
11rcombs [Sun, 16 Feb 2014 19:26:34 +0000 (13:26 -0600)]
Added license headers in ASM files

10 years agoDon't include skipped glyphs in combined bitmaps
Oleg Oshmyan [Wed, 12 Feb 2014 16:24:39 +0000 (16:24 +0000)]
Don't include skipped glyphs in combined bitmaps

Make sure to correctly handle situations where glyphs
have info->linebreak and info->skip set at the same time.

Fixes libass#44.

10 years agoDon't reset wrap_style on \r
Grigori Goronzy [Tue, 11 Feb 2014 22:47:18 +0000 (23:47 +0100)]
Don't reset wrap_style on \r

This isn't part of a style. Fixes libass#45, GC#116.

10 years agoFont metrics: FreeType falls back to sTypoAscender/Descender
Oleg Oshmyan [Tue, 11 Feb 2014 15:58:14 +0000 (15:58 +0000)]
Font metrics: FreeType falls back to sTypoAscender/Descender

Fixes libass#8.

10 years agoUse cluster advance in compute_string_bbox to account for \fsp
Oleg Oshmyan [Sun, 9 Feb 2014 03:18:39 +0000 (03:18 +0000)]
Use cluster advance in compute_string_bbox to account for \fsp

Fixes libass#16 (the remaining sub-issue).

10 years agoUse a function for aligned memory allocations
wm4 [Wed, 29 Jan 2014 17:11:13 +0000 (18:11 +0100)]
Use a function for aligned memory allocations

...instead of doing this manually.

10 years agoFix subpixel jumping of rotated glyph runs
Oleg Oshmyan [Wed, 29 Jan 2014 20:54:45 +0000 (20:54 +0000)]
Fix subpixel jumping of rotated glyph runs

Rotation origin was not taken into account
when caching glyph run bitmaps.

10 years agoMerge pull request #39 from grigorig/shaper-hash-opt
Grigori Goronzy [Wed, 29 Jan 2014 20:13:09 +0000 (12:13 -0800)]
Merge pull request #39 from grigorig/shaper-hash-opt

Shaper and hash function optimizations

10 years agoFixed incorrect spelling in copyright notice
11rcombs [Wed, 29 Jan 2014 18:05:41 +0000 (12:05 -0600)]
Fixed incorrect spelling in copyright notice

10 years agoUnroll FNV-1A hash function
Grigori Goronzy [Wed, 29 Jan 2014 04:25:40 +0000 (05:25 +0100)]
Unroll FNV-1A hash function

Unroll the hash function with Duff's device for improved performance.

10 years agoshaper: use global features correctly
Grigori Goronzy [Wed, 29 Jan 2014 04:23:55 +0000 (05:23 +0100)]
shaper: use global features correctly

start/end of feature tags is unsigned, so use the proper constant
to signal to HarfBuzz that these features are global. This allows
HarfBuzz to cache shape plans, and that can considerably speed up
shaping, especially if many small runs need to be shaped.