This will improve font matching in SkParagraph for fonts that are bundled as
assets within the app. Libtxt was using Minikin's FontFamily class to select
the closest matching font, but SkParagraph will rely on the matchStyle
implementation in the asset font manager.
* Add shadows to Engine classes
* add text shadow test
* update golden locks file, update ui.ParagraphStyle, fix issues
* Change maxDiffRate for mac clients
* Add Helvetica and sans-serif as fallback font families
This prevents us from using an ugly serif default font when the
requested font isn't available.
* Use Arial when not on iOS
This exposes the line boundary information a line by adding getLineBoundary to return the indices corresponding to a line around a TextPosition. The information is already calculated when calculating line metrics, so that we can enable moving the selection/cursor to the beginning/end of a line in a text field.
Converting the argument to Paragraph.wordBoundary to dynamic temporarily until the framework code is converted to send a TextPosition instead of an int.
I'll submit this, then update the framework side to send a TextPosition, and expect a TextRange
or a List<int>, and then submit that, then I'll change this code to send a TextRange and take a TextPostion only, removing the dynamic here. Once that's done, I'll remove the code in the framework that expects a TextRange or a List<int>, and have it just expect a TextRange.
This is so that we can change the API without breaking the builds.
Landing on red to kick the engine builds.
This removes TextRange from the framework and moves it to the engine, in preparation for using it to return text ranges from the text extent APIs, like Paragraph.getWordBoundary instead of a List<int>.
Also added new tests for TextRange.
* Add Firefox installing functionality to test platform. For Linux only. Refactor test platform code
* remove download.dart. Not complete for now
* uncomment firefox.dart. Adding new CL parameters.
* Licence headers added.
* adding more comments to firefox_installer
* adding test for firefox download
* address pr comments. change directory for test in .cirrus.yml
* change directory for test_web_engine_firefox_script
* removing the system test.
* Flesh out the CanvasKit backend some more
- Implement `drawOval` and `addOval`
- Use the Canvas's own `getSaveCount`
- Implement `skew`
- Implement `saveLayerWithoutBounds`
- Document things which we don't plan to implement in the Skia backend
* Remove `rasterCache` fake support
* Remove saveCount setter
Obtaining the SkiaUnrefQueue through the IOManager is unsafe because
UIDartState has a weak pointer to the IOManager that can not be dereferenced
on the UI thread.
* Update CanvasKit to 0.7.0 and flesh out painting
This allows us to fix some bugs in the CanvasKit backend.
- Implement RRect where the radii are different
- Implement drawDRRect
- Implement ColorFilter
- Implement the correct `arcTo` for `arcToPoint`
* update licenses
* Respond to review comments
- Add TODO to avoid unnecessary conversions
- Don't set CanvasKit to default
- Fix licenses file
* Add ==, hashCode, and toString back to ColorFilter API
* Draw vertices to shared offscreen canvas on browsers that support OffscreenCanvas.
* Move gl rendering code to render_vertices.dart.
* Reuse shaders and program across calls.