summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
Commit message (Collapse)AuthorAgeFilesLines
* A meaningless cosmetic change.eugeni2007-04-201-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23033 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add perspective projection.eugeni2007-04-201-0/+12
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23032 b3059339-0415-0410-9bf9-f77b7e298cf2
* Applying transformation matrix to the glyph and the shift vector separately iseugeni2007-04-201-26/+20
| | | | | | | incorrect. Instead, it should be applied to translated glyph. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23031 b3059339-0415-0410-9bf9-f77b7e298cf2
* Cosmetics: reindentation.eugeni2007-04-201-7/+7
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23030 b3059339-0415-0410-9bf9-f77b7e298cf2
* Disable caching of rotated glyphs.eugeni2007-04-201-0/+4
| | | | | | | | | The following commits will add perspective distortion to the glyphs rotated with \frx and \fry. Somewhere along the way correct caching of such glyphs will become impossible, but in the end everything will be fine. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23029 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix a stupid bug in r22473: bbox is zero-filled everytime when a glypheugeni2007-04-131-5/+1
| | | | | | | | is found in the cache. This leads to broken karaoke (some glyphs are not highlighted at all), and, probably, slightly incorrect linebreaks. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22986 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix lost hard linebreaks in libass by repeating the loop when both soft andeugeni2007-04-071-0/+5
| | | | | | | | | | | | | hard linebreaks are about to be added. Original message: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/050876.html Patch by Jindrich Makovicka /makovick gmail com/ git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22931 b3059339-0415-0410-9bf9-f77b7e298cf2
* "()" to "(void)" function param list fixesuau2007-04-011-2/+2
| | | | | | | patch from Stefan Huehner, stefan huehner org git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22904 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use FT_Glyph_StrokeBorder to render only the outside border.iive2007-03-311-1/+1
| | | | | | | Workarounds gaps between glyph and glyph border when rendering some fonts with freetype below 2.1.10 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22863 b3059339-0415-0410-9bf9-f77b7e298cf2
* A function always returning 0 could as well return void.eugeni2007-03-061-11/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22475 b3059339-0415-0410-9bf9-f77b7e298cf2
* Text alignment should not use bounding boxes of individual glyphs.eugeni2007-03-061-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22474 b3059339-0415-0410-9bf9-f77b7e298cf2
* Reset advance vector and glyph bounding box if glyph could not be found.eugeni2007-03-061-0/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22473 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix incorrect spacing introduced in r22231:eugeni2007-03-031-2/+2
| | | | | | | these two lines were supposed to perform truncation, not rounding. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22419 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10l: x2scr used twice instead of y2scr.eugeni2007-03-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22415 b3059339-0415-0410-9bf9-f77b7e298cf2
* Bugfix: transform origin to screen coordinates.eugeni2007-03-021-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22414 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix \a parsing broken in r22291uau2007-02-231-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22321 b3059339-0415-0410-9bf9-f77b7e298cf2
* Oops, forgot {} before "else".eugeni2007-02-211-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22300 b3059339-0415-0410-9bf9-f77b7e298cf2
* Cosmetics: fix indentation.eugeni2007-02-201-15/+15
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22294 b3059339-0415-0410-9bf9-f77b7e298cf2
* With \t(\b) text becomes bold at the middle of time interval, not at the endeugeni2007-02-201-1/+2
| | | | | | | of it like before. The same for \t(\i). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22293 b3059339-0415-0410-9bf9-f77b7e298cf2
* Any style modifier followed by no recognizable parameter resets to the default.eugeni2007-02-201-7/+17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22291 b3059339-0415-0410-9bf9-f77b7e298cf2
* \fn without an argument resets font family to the value from style.eugeni2007-02-201-3/+6
| | | | | | | Fixes bugzilla #762. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22287 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix display order of events.eugeni2007-02-201-4/+0
| | | | | | | Starting time does not matter, it depends on Layer and ReadOrder only. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22286 b3059339-0415-0410-9bf9-f77b7e298cf2
* Both (-1) and 1 mean bold font in SSA/ASS styles.eugeni2007-02-191-4/+4
| | | | | | | The same for italics and some other fields. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22281 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add \t(\b) support.eugeni2007-02-191-3/+4
| | | | | | | Contradicts the specification, but supported by all other renderers. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22280 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix bounding box calculation with \fscx/\fscy.eugeni2007-02-191-2/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22279 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix \fscx/\fscy animation.eugeni2007-02-191-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22278 b3059339-0415-0410-9bf9-f77b7e298cf2
* Correct implementation of text spacing.eugeni2007-02-191-7/+7
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22277 b3059339-0415-0410-9bf9-f77b7e298cf2
* Reallocate event_images_t, removing limit on simultanious events count.eugeni2007-02-191-23/+25
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22276 b3059339-0415-0410-9bf9-f77b7e298cf2
* Restore a minus sign that was lost in r22231.eugeni2007-02-161-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22239 b3059339-0415-0410-9bf9-f77b7e298cf2
* Implement \frx and \fry (and reimplement \frz) as 3d rotations.eugeni2007-02-161-22/+104
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22233 b3059339-0415-0410-9bf9-f77b7e298cf2
* Consistently name z-axis rotation angle "frz".eugeni2007-02-161-5/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22232 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move conversions between 16.16, 26.6 fixed point and int, double to separateeugeni2007-02-161-17/+17
| | | | | | | functions. Some rounding errors are fixed along the way. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22231 b3059339-0415-0410-9bf9-f77b7e298cf2
* \r resets \frz to style value.eugeni2007-02-151-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22227 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix \t(\frz) handling.eugeni2007-02-151-4/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22226 b3059339-0415-0410-9bf9-f77b7e298cf2
* \org(0,0) is different from no \org at all.eugeni2007-02-151-1/+4
| | | | | | | Use render_context.have_origin to tell them apart. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22225 b3059339-0415-0410-9bf9-f77b7e298cf2
* Bugfix: glyph and bitmap pointers could be left uninitialized aftereugeni2007-01-291-4/+3
| | | | | | | | get_glyph(). Based on a patch by Stanislav Maslovski (stanislav d maslovski a gmail d com). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22063 b3059339-0415-0410-9bf9-f77b7e298cf2
* Keep reselected fonts in an array, adding new ones to the end. Glypheugeni2006-12-161-1/+1
| | | | | | | | | | | | lookup prefers earlier opened fonts. This way glyph lookup is stable, which means that: - cache cleanup is never required after font reselecting; - a single unrecognized char won't change the appearance of all the others. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21635 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove a mistakenly committed debug printf.eugeni2006-12-161-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21633 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move ascender, descender, and kerning computation to ass_font.c.eugeni2006-12-161-33/+9
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21630 b3059339-0415-0410-9bf9-f77b7e298cf2
* Speed up ASS subtitles display by detecting changes between two consecutiveeugeni2006-12-061-10/+84
| | | | | | | rendering results. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21522 b3059339-0415-0410-9bf9-f77b7e298cf2
* Open embedded fonts directly from memory.eugeni2006-12-031-2/+2
| | | | | | | | | FontConfig 2.4.2 (released yesterday) supports scanning fonts with FcFreeTypeQueryFace without writing them to disk. With earlier FontConfig versions, the old mechanism is used. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21476 b3059339-0415-0410-9bf9-f77b7e298cf2
* Keep embedded fonts in ass_library_t and perform actual disk writeeugeni2006-12-031-1/+1
| | | | | | | | in fontconfig initialization. This is required for some fontconfig-related improvements. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21474 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use (ass_font_t, char code) instead of (FT_Face, glyph index) to identifyeugeni2006-11-281-4/+4
| | | | | | | glyphs in cache. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21364 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix compilation broken in previous commit.eugeni2006-11-271-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21338 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move ass_font_t allocation to ass_font.h.eugeni2006-11-271-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21333 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove obsolete "no_more_font_messages" hack.eugeni2006-11-261-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21295 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move fonts-related code to a separate file.eugeni2006-11-261-28/+9
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21293 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make ass_new_font return ass_font_t struct (instead of just FT_Face).eugeni2006-11-261-24/+20
| | | | | | | Use it to access the font face. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21283 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename:eugeni2006-11-261-4/+4
| | | | | | | | | face_desc_t -> ass_font_desc_t face_cache_item_t -> ass_font_t *face* -> *font* git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21281 b3059339-0415-0410-9bf9-f77b7e298cf2
* Cosmetics: remove unneeded curly brackets.eugeni2006-11-201-3/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21114 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix collision detection. The old method tried to avoid gaps between subtitleseugeni2006-11-201-21/+12
| | | | | | | | by moving the upper subtitle down. This is wrong. With this fix, a subtitle will be moved only if it overlaps with another one. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21113 b3059339-0415-0410-9bf9-f77b7e298cf2
* MSGTRs for libasskraymer2006-11-191-16/+16
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21082 b3059339-0415-0410-9bf9-f77b7e298cf2
* Collect all includes of mplayer headers in libass in a single file (mputils.h).eugeni2006-11-191-4/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21042 b3059339-0415-0410-9bf9-f77b7e298cf2
* Support \t with acceleration.eugeni2006-11-131-1/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20891 b3059339-0415-0410-9bf9-f77b7e298cf2
* s/break/continue/. A crazy mistake, somehow unnoticed for more that 2 months.eugeni2006-11-081-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20795 b3059339-0415-0410-9bf9-f77b7e298cf2
* Calculate text bounding box in a way that does not depend on actual glypheugeni2006-11-061-36/+15
| | | | | | | | bitmaps. Each glyph is considered to be bounded by (origin, origin + advance) horizontally, and (max font ascender, max font descender) vertically. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20734 b3059339-0415-0410-9bf9-f77b7e298cf2
* More precise bounding box calculation for karaoke effects.eugeni2006-11-041-2/+7
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20669 b3059339-0415-0410-9bf9-f77b7e298cf2
* Introduce MSGT_ASS, use it for all libass messages.eugeni2006-11-031-42/+42
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20645 b3059339-0415-0410-9bf9-f77b7e298cf2
* Revert r20517.eugeni2006-10-291-1/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20519 b3059339-0415-0410-9bf9-f77b7e298cf2
* Copy the following functions to libass to avoid dependency on the rest of ↵eugeni2006-10-291-3/+1
| | | | | | | | | | | | mplayer: guess_buffer_cp utf8_get_char blur git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20517 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix width -> orig_width typo.eugeni2006-10-291-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20513 b3059339-0415-0410-9bf9-f77b7e298cf2
* Libass interface reworked:eugeni2006-10-281-33/+33
| | | | | | | | | - ass_instance_t renamed to ass_renderer_t - ass_library_t introduced - use of mplayer-specific global variables limited to ass_mp.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20493 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing fontconfig_done() call.eugeni2006-10-271-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20467 b3059339-0415-0410-9bf9-f77b7e298cf2
* Split ass_configure() into several smaller functions.eugeni2006-10-261-44/+83
| | | | | | | FontConfig initialization moved from ass_init() to ass_set_fonts(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20462 b3059339-0415-0410-9bf9-f77b7e298cf2
* Don't forget to apply scaling coefficients to kerning values.eugeni2006-10-201-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20326 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix center of rotation calculation. It was overly complex andeugeni2006-10-191-9/+3
| | | | | | | incorrect for right- and center-aligned text. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20308 b3059339-0415-0410-9bf9-f77b7e298cf2
* Center of rotation depends on alignment.eugeni2006-10-181-2/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20302 b3059339-0415-0410-9bf9-f77b7e298cf2
* Support separate rotation angle for each glyph.eugeni2006-10-181-10/+17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20301 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move base point calculation to a separate function. Will be reused soon.eugeni2006-10-181-26/+41
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20300 b3059339-0415-0410-9bf9-f77b7e298cf2
* Cosmetics: remove commented code.eugeni2006-10-181-5/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20299 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix a typo in collision detection code.eugeni2006-10-181-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20297 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove an outdated debug message.eugeni2006-10-161-1/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20275 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix crash because of last_glyph < first_glyph, probably caused by first linereimar2006-10-151-1/+1
| | | | | | | only consisting of '\n' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20232 b3059339-0415-0410-9bf9-f77b7e298cf2
* Zerofill libass static variables during initialization.eugeni2006-10-141-0/+4
| | | | | | | Patch by Jindrich Makovicka <makovick a gmail d com>. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20208 b3059339-0415-0410-9bf9-f77b7e298cf2
* Free FT_Stroker during libass deinitialization.eugeni2006-10-141-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20207 b3059339-0415-0410-9bf9