Skip to content

HarfBuzzSharp 2.6.1 - #929

Merged
mattleibow merged 14 commits into
mono:masterfrom
Gillibald:harfbuzz26
Sep 28, 2019
Merged

HarfBuzzSharp 2.6.1#929
mattleibow merged 14 commits into
mono:masterfrom
Gillibald:harfbuzz26

Conversation

@Gillibald

@Gillibald Gillibald commented Aug 14, 2019

Copy link
Copy Markdown
Contributor

Description of Change

This updates HarfBuzzSharp to version 2.6.1 and has added bindings for introduces OpenType Metrics API
This also adds some overloads to Buffer.cs that take an integer as codepoint to make the life easier when working with codepoints.

API Changes

List all API changes here (or just put None), example:

Added:

  • Definitions.cs
    -- public enum OpenTypeMetricsTag : uint
    -- public readonly structs OpenTypeMetrics
  • Font.cs
    -- public OpenTypeMetrics OpenTypeMetrics { get; }
    --- public bool TryGetPosition (OpenTypeMetricsTag metricsTag, out int position)
    --- public float GetVariation (OpenTypeMetricsTag metricsTag)
    --- public int GetXVariation (OpenTypeMetricsTag metricsTag)
    --- public int GetYVariation (OpenTypeMetricsTag metricsTag)

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of master at time of PR
  • Changes adhere to coding standard
  • Updated documentation

Use some code generation for OpenTypeMetricsTag
@mattleibow

Copy link
Copy Markdown
Contributor

Hehe, more updates to harfbuzz. Seems every week there is a new version 😆

@Gillibald

Gillibald commented Aug 15, 2019

Copy link
Copy Markdown
Contributor Author

@mattleibow Could you update the XCode projects for me? I think when the mac part is done, this is ready for review. Should OpenTypeMetrics be a nested struct within Font.cs?

@Gillibald Gillibald changed the title WIP: HarfBuzzSharp 2.6.0 HarfBuzzSharp 2.6.0 Aug 15, 2019
@Gillibald Gillibald changed the title HarfBuzzSharp 2.6.0 HarfBuzzSharp 2.6.1 Sep 3, 2019
@mattleibow

Copy link
Copy Markdown
Contributor

Having a look now. Thanks for the PR.

mattleibow
mattleibow previously approved these changes Sep 27, 2019

@mattleibow mattleibow left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good.

It appears that the update of harfbuzz resulted in a 0.125 to the left
var clusters = new uint[] { 4, 2, 0 };
var codepoints = new uint[] { 629, 668, 891 };
var points = new SKPoint[] { new SKPoint(0, 0), new SKPoint(28.375f, 0), new SKPoint(42.125f, 0) };
var points = new SKPoint[] { new SKPoint(0, 0), new SKPoint(28.25f, 0), new SKPoint(42, 0) };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is interesting. It appears that the characters have shifted a tiny bit to the left by 0.125.

@mattleibow

Copy link
Copy Markdown
Contributor

@Gillibald Before I merge this, I see you changed the enum from the Value = ('a' | 'b') format into the int value. Was there a specific reason? Enums are constants, so they would be compiled to the integer value anyway. But, at we could see the string values.

@Gillibald

Gillibald commented Sep 28, 2019

Copy link
Copy Markdown
Contributor Author

@mattleibow Not sure why I did it that way. To produce these values I wrote some routine that reads the HarfBuzz headers and creates enums out of it. Will change this shortly to the bit shifting format that is more readable.

@Gillibald

Copy link
Copy Markdown
Contributor Author

I have changed the enum definition to use the bit shifting representation

@mattleibow
mattleibow merged commit 9d3d4f5 into mono:master Sep 28, 2019
@mattleibow

Copy link
Copy Markdown
Contributor

Merged!
I want to get a release out before Christmas. Gonna try!

@Gillibald
Gillibald deleted the harfbuzz26 branch September 28, 2019 14:19
@mattleibow mattleibow added this to the v1.68.1 milestone Nov 21, 2019
mattleibow added a commit that referenced this pull request Jun 16, 2026
…ttribution)

A full Opus 4.8 review pass over all 61 regenerated pages (one reviewer per
batch, cross-checking each page against TEMPLATE.md and its own raw PR data)
found and fixed real quality problems the first polish pass introduced:

  * Hallucinated content on 0-PR pages — several historical pages with no PR
    data (1.49.0, 1.53.2, 1.54.0, 1.58.0, 1.58.1.1, 1.60.2, 1.60.3) had
    invented Skia milestones, APIs, code samples, and bug fixes citing issue
    numbers absent from the raw data. Replaced with honest servicing notes.
  * Fabricated PR references — e.g. 2.88.0 cited #1733 (belongs to 3.0.0) and
    2.88.5/2.88.8 invented features/contributors not in their raw data.
  * Bot credits in prose — github-actions[bot]/dependabot[bot]/@github/@Copilot
    backport credits were stripped from Highlights, feature bullets, and
    Bug Fixes on 2.88.9, 3.116.1, 3.119.1, 3.119.2, 2.88.0 (the no-bots rule
    only the visible prose had leaked, the tables were already clean).
  * Misc accuracy — duplicate PR listings (1.68.1 #929), a miscategorized
    breaking change (2.80.0 enum restore is additive), wrong platform emoji
    (Tizen 🤖→📦), a typo (macioS), and an overstated "community drove
    everything" claim (3.119.2).

One verified handle correction landed too: 2.80.3 @jerome.laban →
@jeromelaban (confirmed via gh). Raw PR-data blocks were preserved verbatim
throughout; only the polished prose below each block changed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants