New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Harffbuzz freetype to render Khmer Burmese and hindi #1439
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1439 +/- ##
===========================================
+ Coverage 59.94% 85.78% +25.84%
===========================================
Files 580 566 -14
Lines 28529 28188 -341
Branches 11093 0 -11093
===========================================
+ Hits 17102 24182 +7080
+ Misses 4137 4006 -131
+ Partials 7290 0 -7290 ☔ View full report in Codecov by Sentry. |
for more information, see https://pre-commit.ci
…l-native into harffbuzzFreetype
for more information, see https://pre-commit.ci
…l-native into harffbuzzFreetype
for more information, see https://pre-commit.ci
Swipe out macos end is such a pain for me, I have to use my personal computer to fix unit tests |
I wonder if we want to make this an optional feature? This would allow us to fix Qt later for example. Also what is the binary size increase? (@louwers, didn't we have a CI test for that in the past? I guess the rest of the actions need to pass.) |
for more information, see https://pre-commit.ci
https://github.com/maplibre/maplibre-native/actions/runs/5747452827/job/15578480347 does anybody known what is the reason for this failure? |
I didn't have linux end, will fix linux CI in next weeks. |
@alanchenboy That means the iOS render tests are failing. Did you run them locally? |
Hey @louwers What is the acceptable limit for increase in binary size? Would pulling in data during runtime be an acceptable solution if it helps reduce binary size? |
@ramSeraph We don't really have a policy for it at the moment, but if we don't make a feature that has a large binary size increase opt-in or opt-out then we risk losing contributions from large corporations for whom binary size is important. They might decide to maintain an internal fork. Each binary size increate should always be looked at in the context of the value the contribution brings. Personally I think we should release the 'kitchen sink' with all features enabled, users that care about binary size need to make their own builds. Although we can also consider making minimal builds in adition to full builds.
No that is not acceptable, at least not for iOS because Apple forbids it. |
The problem with this argument is that you are indeed encouraging the people who need this feature to fork maplibre( as Grab has probably already done ). Anyway, I do understand where you are coming from.
I am thinking a modular architecture with feature flags would be more appropriate, but in the end that will cause a test matrix overload.
This is surprising.. I do mean pulling in data, not code. I was asking this because a lot of harfbuzz binary size might be coming from unicode data it loads, which can be pulled in lazily. |
Actually ignore this.. I can see how the build flag would be good enough, without the need for a fork.
Doesn't maplibre-native already have a plugin architecture? Can this particular feature be moved to a plugin? |
Pipelines fixed, lucky me. let me add some complex text render tests to finish this PR. |
That is an interesting idea.
Not for the C++ Core at the moment. @alanchenboy Congrats! 💯 Can you merge main in? |
If this is ready for review then I would propose to have a discussion in the style spec repo about the changes needed to the style spec. |
@alanchenboy Thank you so much for the effort you are putting in. I was hoping to try it out, but whenever I am trying to build from the code for Android, it's failing. Can you please help me build from the code? |
Hi @robinhood245 the pipeline is passed so I think the CMake change is correct, I roll back cmake upgrade, and I can compile the branch in my Android studio (it failed last time because of VPN setting) |
https://app.codecov.io/gh/maplibre/maplibre-native/commit/2f76cee32dff34d10f43f8abc4985f77a9578680 How can I fix this pipeline, is it a requirement for approve? |
It means there are some code paths that are not reached during testing. It's not a hard requirement at the moment. |
# Conflicts: # WORKSPACE # metrics/cache-style.db # platform/macos/macos.xcodeproj/project.pbxproj
for more information, see https://pre-commit.ci
refactor for #1289
This is a demo of how to use harfbuzz to render complex text.
Example style:
https://alanchenboy.github.io/harfbuzzResource/hindi.json.
Screenshots:
.
https://github.com/maplibre/maplibre-native/assets/5135389/f8f294ec-1d20-4106-b745-51d5f4a1af1d.
https://github.com/maplibre/maplibre-native/assets/5135389/7e3857e9-74c4-405e-b12c-e5722cf76919.