summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Rename pango_fc_shape to pango_hb_shapesubpixelMatthias Clasen2019-07-125-24/+57
| | | | | | There is no more fontconfig in it, and we use it unconditionally everywhere. T#
* Drop unneeded includesMatthias Clasen2019-07-121-3/+0
| | | | pangofc-shape.c does not use any fc parts anymore.
* shape: Stop rounding glyph positionsMatthias Clasen2019-07-121-56/+0
| | | | | | | As we move towards subpixel positioning and unhinted rendering, rounding the glyph positions and widths between shaping and rendering is counterproductive. So stop doing that.
* layout: Don't zero the width of visible spaceMatthias Clasen2019-07-121-0/+5
| | | | | | | | | | | | Don't zero out a line separator at the end of line if we are showing space or ignorables. And if we zero out whitespace at the end of the line, make sure we don't draw anything there by setting the glyph to EMPTY. Without this, we are getting the [LS] hex box rendered on top of the last character in a line, when the line separator ends up being visible.
* cairo: render visible space differentlyMatthias Clasen2019-07-122-3/+78
| | | | | | | | | Instead of a [SPC] hex box, just render a centered dot, as is commonly used to indicate space. Also render synthetic glyphs for tabs and newlines. This makes single-paragraph mode prettier.
* layout: Make tab visible tooMatthias Clasen2019-07-121-1/+4
| | | | | | When the 'visible space' option is set, also arrange for tab characters to be passed on to the rendering layer as non-empty.
* fc: Implement showing spaceMatthias Clasen2019-07-121-0/+17
| | | | | | | When told to make space visible, we use the glyph for 0x2324 instead of 0x20. We have to do some post-processing to counteract harfbuzz using space glyphs for its own purposes.
* pango-view: Add an option to show spaceMatthias Clasen2019-07-121-0/+5
|
* Add a shape flag for showing spaceMatthias Clasen2019-07-121-0/+1
|
* fc: Implement showing ignorablesMatthias Clasen2019-07-121-1/+39
| | | | | | | We tell harfbuzz to preserve the ignorables in shaping output, and use our glyph lookup to turn them into unknown glyphs that we can shape into custom hex boxes.
* pango-view: Add an option to show ignorablesMatthias Clasen2019-07-121-0/+9
|
* Add a shape flag for showing ignorablesMatthias Clasen2019-07-121-1/+2
|
* cairo: Better hex boxes for ignorablesMatthias Clasen2019-07-122-9/+32
| | | | | | For ignorable characters such as U+00AD, Soft Hyphen, render a hex box with their 'nickname', which is a 2-6 character short form such as SHY.
* Add a utility function for ignorablesMatthias Clasen2019-07-121-0/+70
| | | | | | | This returns nicknames and formatting information for default ignorable characters. This will be used to render customized hex boxes for these characters.
* Pass shape flags on to font funcsMatthias Clasen2019-07-121-2/+160
| | | | | This is needed to let shape flags influence glyph selection.
* Pass shape flags through to pangofc_shapeMatthias Clasen2019-07-123-8/+10
|
* layout: Add pango_layout_set_shape_flagsMatthias Clasen2019-07-123-2/+28
| | | | | This will let apps opt into shaping options from the high-level api.
* layout: Use pango_shape_with_optionsMatthias Clasen2019-07-121-3/+4
| | | | This will let us pass shaping options in the future.
* Add a way to pass flags to shapingMatthias Clasen2019-07-123-2/+47
| | | | | | We want to influence shaping in some ways, e.g. make spaces visible, so add a variant of pango_shape() that takes flags.
* Document engines as unusedMatthias Clasen2019-07-121-2/+2
|
* Deprecate pango_font_find_shaperMatthias Clasen2019-07-123-12/+3
| | | | | Deprecate pango_font_find_shaper, make it return NULL, and remove the find_shaper vfunc.
* win32: Stop providing a shape engineMatthias Clasen2019-07-121-44/+0
| | | | It is no longer used.
* coretext: Stop providing a shape engineMatthias Clasen2019-07-121-41/+0
| | | | It is no longer used.
* fc: Stop providing a shape engineMatthias Clasen2019-07-121-45/+0
| | | | It is no longer used.
* itemize: Stop filling analysis->shape_engineMatthias Clasen2019-07-121-88/+36
| | | | This field is unused now.
* Switch to using harfbuzz for shapingMatthias Clasen2019-07-121-61/+73
| | | | | | Drop internal shape engine uses and call _pango_fc_shape directly. This makes us use harfbuzz for shaping, on all backends.
* Drop freetype from pangofc-font.hMatthias Clasen2019-07-126-12/+9
| | | | | Stop using FT_Face here, so we can stop including freetype headers.
* Drop some gratitious use of FT typesMatthias Clasen2019-07-124-15/+3
|
* Deprecate FT_Face gettersMatthias Clasen2019-07-122-2/+4
| | | | | We are moving away from a freetype dependency, so these will be going away at some point.
* fc: Use harfbuzz for glyph extentsMatthias Clasen2019-07-121-63/+28
| | | | Harfbuzz has the api, no need to use freetype.
* fc: Use harfbuzz for font metricsMatthias Clasen2019-07-121-111/+28
| | | | | | Note that some of the harfbuzz api we use here has not landed yet. See https://github.com/harfbuzz/harfbuzz/pull/1432
* fc: Drop the cmap cacheMatthias Clasen2019-07-123-78/+0
| | | | This is now unused.
* fc: Use harfbuzz for glyph lookupMatthias Clasen2019-07-121-42/+4
| | | | We don't need our own caching here.
* fc: Make pangofc_shape backend-neutralMatthias Clasen2019-07-121-44/+47
| | | | | Use typechecks for the two remaining bits of code that use PangoFcFont.
* fc: Move font setup code from the shaperMatthias Clasen2019-07-123-332/+147
| | | | | | | | | | | | Move all the code that sets up the hb_font_t to pango_fc_font_create_hb_font, and use it from the shaper. This is the second step towards taking over font management. Even better, harfbuzz has a ready-made function for this. We can drop a lot of FT_Face-using code this way. We assume unhinted rendering for now, so we can set ppem to 0.
* Add api to get a hb_font_tMatthias Clasen2019-07-127-7/+123
| | | | | Add pango_font_get_hb_font, which will make it easier access harfbuzz features.
* Merge branch 'no-kerning' into 'master'Matthias Clasen2019-07-125-89/+11
|\ | | | | | | | | Drop kerning function See merge request GNOME/pango!83
| * Add freetype includes where they belongMatthias Clasen2019-07-122-0/+6
| | | | | | | | | | Include freetype.h in headers where freetype types are used.
| * Drop an unused functionMatthias Clasen2019-07-122-32/+0
| | | | | | | | | | We don't use _pango_cairo_fc_font_map_get_library anymore.
| * fc: Make pango_fc_font_kern_glyphs emptyMatthias Clasen2019-07-121-57/+5
|/ | | | | | This function has long been deprecated; and it is is using freetype. So drop the implementation.
* Merge branch 'font-features-getter' into 'master'Matthias Clasen2019-07-126-58/+111
|\ | | | | | | | | Font features getter See merge request GNOME/pango!82
| * Use pango_font_get_featuresMatthias Clasen2019-07-111-56/+45
| |
| * fc: Implement get_features for fc fontsMatthias Clasen2019-07-111-1/+30
| | | | | | | | | | We take features out of the FcPattern and translate them into harfbuzz features.
| * Add an api to get features of a fontMatthias Clasen2019-07-114-1/+36
|/
* Merge branch 'coverage-redo' into 'master'Matthias Clasen2019-07-1210-392/+258
|\ | | | | | | | | Redo coverage See merge request GNOME/pango!81
| * Turn PangoCoverage into an objectMatthias Clasen2019-07-113-86/+215
| | | | | | | | | | | | Make PangoCoverage a GObject, and subclass it in pangofcfontmap.c. This lets us use the FcCharSet without copying the data.
| * Reimplement PangoCoverage on top of hb_set_tMatthias Clasen2019-07-113-320/+35
| | | | | | | | | | | | This drops the language dependency and coverage levels, both of which are not used in pango.
| * Use pango_font_coversMatthias Clasen2019-07-112-6/+4
| | | | | | | | This replaces all uses of _pango_engine_shape_covers.
| * Add pango_font_coversMatthias Clasen2019-07-114-1/+25
|/ | | | | | | | | | | Add a pango_font_covers function, which is like pango_shape_engine_covers, without the engine. This api is simpler than PangoCoverage in that it does not take a language as input, and only returns a boolean. This matches the harfbuzz api.
* Merge branch 'non-breaking-attrs' into 'master'Matthias Clasen2019-07-116-40/+150
|\ | | | | | | | | | | | | itemize: Don't break runs for font_features Closes #242 See merge request GNOME/pango!79