- Make SKFont glyph-only
- hide the SKFont members that take strings/bytes
- hide the overloads that return arrays (promote the use of the "out span")
- expose string/byte members on SKPaint, and only expose the returning array (for consistency)
- use a single instance of SKFont for SKTypeface glyph members
- Add glyph-based MeasureText
* Improve the Vulkan APIs
- removed the context argument as this is unused as well as an older C/C++ feature
- added a SharpVk version of the GetProc property.
* Removed the context argument (this is more an older C/C++ feature/requirement)
* Expose the WebGL APIs
* Improve the GRGlInterface and GPU delegates
- removing the object context for the GPU construction
- obsoleted GRGlGetProcDelegate in favour of the better named GRGlGetProcedureAddressDelegate
- renamed GRVkGetProcDelegate to GRVkGetProcedureAddressDelegate
- use "ProcedureAddress" instead of "Proc" to show that it is the "address" not the actual procedure
- reworked the GRGlInterface
- use the new non-context delegates
- use better naming: Create*
- adding WebGL
- created a SharpVk-specific delegate GRSharpVkGetProcedureAddressDelegate
- use actual types instead of IntPtr
* Reduce the using obsolete warnings
- still a few left, mainly the colorspace and text blob
* Switch the way GRGlInterface.Create() works
- first try OpenGL as that is actually what is expected
- don't explode on an error, return null, like the rest
* Update API usages
Google deleted `DrawTextOnPath` so this PR adds it back along with other text-related APIs.
- Added an overload for `SKCanvas.DrawTextOnPath` that disables glyph warping
- Wrapped the `ArrayPool<T>.Shared` logic into a disposable util method
- Renamed `SKFont.GetPath` to `SKFont.GetTextPath` so that it makes more sense
- Added `SKFont.GetTextPathOnPath` to get the text path, but following another path instance (warps glyphs)
- Removed/obsoleted the non-glyph overloads for `SKTextBlobBuilder.Add*Run`
- Added a set of `SKTextBlob.Create` overloads that are used to make "string" runs
- A few other small changes to make the API better
- Fixes#1183
* Correct company name
* Fix targets file
* Hide native files from project tree
* Add benchmark project
* Add a feature to skip the object registration
- ISKSkipObjectRegistration
- objects implementing this interface will not be registered in the global dictionary
- major perf boos (2.84x) due to not having to look up in a dictionary
- use direct constructor instead of object factory
* Throw an exception in "debug" builds
Several iterations of development to come to this:
* [UWP] Fix the ARM build and add ARM64
* [Win32] GDI is optional - and we don't want it
* Update harfbuzz to v2.6.2
* Use Docker
* Use a later version of the linux tools
* Use VS 2019
* Use Xcode 11
* Go all in with MSVC 14.2
* Disable the Tizen builds for now
* Add support for manually specifying VS (This can be done in a few ways, but the common way would be: --vsinstall='C:\PF\MVS\XXX\YYY')
* Update OpenJDK and Tizen Studio
* Using C++ 17
* Also added a THROW_ON_TEST_FAILURE env var to allow previews to be put out when tests are still failing
* Support basic text alignment
* Implement breakText in native code.
* Expose a generic, writable span for the pixels
* Fixes#1240
* "Cache" the info object in size so we don' have to hop the interop.
* Raw pixels depend on the CPU endianness
* Fixed crash bug where id was incorrectly passed instead pointer to evt.GetToolType().
* Added stylus pressure for Android
* Added eraser handling - to map to middle button.