Skia4delphi Versions Save

Skia4Delphi is a cross-platform 2D graphics API for Delphi platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

v6.1.0

1 month ago

v6.1.0

  • Added support for RAD Studio 12.1; Library
  • Added example using IFMXFontManagerService on RAD Studio 12; Documentation
  • Added GlobalUseSkiaFilters to be able to disable optionally the Skia filters engine; FMX Render
  • Added v7-lts branch (the future major version) CI
  • Improved the TStrokeBrush lookup for resource brush; FMX Render
  • Updated banners to 2024; Library
  • Fixed wrong size of TSkLabel with AutoSize and Align=None; #273 Controls
  • Fixed TSkLabel AutoSize when MaxLines=0; Controls
  • Fixed SVG load from stream on Vcl; #282 Controls
  • Fixed warning introduced on 7f45095; FMX Render
  • Fixed workflow errors and warnings; CI

Skia version: 107.3.2

RAD Studio 12 Athens

Embarcadero has integrated Skia4Delphi into RAD Studio in its new release RAD Studio 12 Athens introducing the version of Skia4Delphi v6.0.0 on RAD Studio 12.0 and v6.1.0 on RAD Studio 12.1, and adding some extra units with exclusive Embarcadero features.

Installation

Just download and run the Skia4Delphi_6.1.0_Setup.exe attached.

v6.0.0

6 months ago

v6.0.0

  • Added official support for RAD 12 Athens; Library

From Beta 5

  • Updated to latest libwebp (v1.3.2); API
  • Improved performance of FMX texts; FMX Render
  • Fixed memory leak using Skia Metal; FMX Render
  • Fixed tab character as a square on Skia render and on TSkLabel control; #270 FMX Render Controls
  • Fixed TSkSvgBrush.WrapMode=Stretch; #228 Controls
  • Fixed autosize of TSkLabel and improve draw quality using default FMX render; #229 Controls
  • Fixed TSkImage.MakeFromPicture; #226 API
  • Fixed property editor of text/caption of TSkLabel; Controls
  • Fixed macOS warning using Skia Metal; FMX Render
  • Fixed code of documentation; Documentation
  • Replaced assets of demo with similar ones with permissive licenses; Samples
  • Replaced DisposeOf by Free to ensure compatibility with RAD 12; Library

From Beta 4

  • Added "GlobalSkiaBitmapsInParallel" as experimental for RAD Studio 12 Beta; FMX Render
  • Fixed vulnerability on libwebp (CVE-2023-4863); Library
  • Fixed startup exception with OpenGL on VirtualBox and Hyper-V; Library
  • Fixed Linux pixel format (thanks to @eugenekryukov); FMX Render
  • Fixed trailing horizontal align; FMX Render
  • Fixed TSkImage.MakeFromRaster, TSkImage.MakeFromTexture and TSkSurface.MakeRasterDirect (thanks to Dmitry Arefiev); #252 API
  • Fixed TSkLabel.TCustomWordsItem.OnClick; #262 Controls
  • Fixed lines performance on Windows raster; FMX Render
  • Fixed compatibility with RAD Studio 12 Beta; Library

From Beta 3

  • Added workflows on Github Actions to compile and test each commit and to build the production setup; CI
  • Added basic support for FPC (thanks to Mattias Gaertner); Library
  • Improved iOS/iOSSimulator static linkage; API
  • Fixed SkPath.IsLine; API
  • Fixed TSkSamplingOptions consts; API
  • Fixed SkUnicode.GetBreaks; API
  • Fixed TSkImageInfo.IsValid; API
  • Fixed FMX support for RAD 10 Seattle and older; FMX Render
  • Fixed unit tests on RAD 10.3 Rio and older; Tests
  • Minor fixes and improvements on API side; API

From Beta 2

  • Fixed AV at app startup with metal on iOS and macOS; #242 FMX Render
  • Fixed Android crash when restored from background; #225 FMX Render
  • Fixed macOS universal binary; Library
  • Added Mac App Store manual signature instructions; #233 Documentation

From Beta 1

  • Renamed units (Skia.pas -> System.Skia, Skia.FMX.* -> FMX.Skia.*, Skia.Vcl.pas -> Vcl.Skia.pas); Library
  • Added skia render to FMXLinux (only raster) (thanks @eugenekryukov); #221 FMX Render
  • Rewritted the SkRuntimeEffects to have the same structure as the original API, with the new classes SkRuntimeShaderBuilder and SkRuntimeBlenderBuilder; API
  • Fixed bitmap draws; FMX Render #217
  • Fixed performance issue with bitmaps in TBrush; FMX Render
  • Fixed Linux compilation; #216 #238 Library
  • Fixed crash deleting text of TEdit or TMemo; #214 FMX Render
  • Fixed text decoration color using TTextAttribute; FMX Render
  • Fixed linear gradient; #224 FMX Render
  • Fixed SkRuntimeEffect.GetUniformName; API
  • Fixed path tests; Tests
  • Minor improvements.

Skia version: 107.3.2

RAD Studio 12.0 Athens

Embarcadero has integrated Skia4Delphi into RAD Studio in its new release RAD Studio 12.0 Athens introducing this version of Skia4Delphi, v6.0.0, and adding some extra units with exclusive Embarcadero features.

Compatibility break

  1. Units renamed Embarcadero integrated Skia4Delphi into RAD Studio 12 Athens and to improve the integration of the opensource project with the integrated version of the RAD Studio 12 Athens, we decided to keep the new unit names adopted by Embarcadero:

    • Skia.pas ➜ System.Skia.pas
    • Skia.API.pas ➜ System.Skia.API.pas
    • Skia.FMX.pas ➜ FMX.Skia.pas
    • Skia.FMX.Graphics.pas ➜ FMX.Skia.Canvas.pas
    • Skia.FMX.Canvas.GL.pas ➜ FMX.Skia.Canvas.GL.pas
    • Skia.FMX.Canvas.Metal.pas ➜ FMX.Skia.Canvas.Metal.pas
    • Skia.Vcl.pas ➜ Vcl.Skia.pas
  2. SkRuntimeEffect rewritted The SkRuntimeEffect structure was rewritten following the same structure as the original Google Skia API, to facilitate future updates and allow better integration with other APIs (such as SkImageFilter for example). Now the SkRuntimeEffect just loads the SKSL code, then the SkRuntimeShaderBuilder must be used to allocate and change the uniforms and then create the shader. See examples of the new functionality in our demos.

Installation

Just download and run the Skia4Delphi_6.0.0_Setup.exe attached.

v6.0.0-beta5

7 months ago

v6.0.0 Beta 5

  • Updated to latest libwebp (v1.3.2); API
  • Improved performance of FMX texts; FMX Render
  • Fixed memory leak using Skia Metal; FMX Render
  • Fixed tab character as a square on Skia render and on TSkLabel control; #270 FMX Render Controls
  • Fixed TSkSvgBrush.WrapMode=Stretch; #228 Controls
  • Fixed autosize of TSkLabel and improve draw quality using default FMX render; #229 Controls
  • Fixed TSkImage.MakeFromPicture; #226 API
  • Fixed property editor of text/caption of TSkLabel; Controls
  • Fixed macOS warning using Skia Metal; FMX Render
  • Fixed code of documentation; Documentation
  • Replaced assets of demo with similar ones with permissive licenses; Samples
  • Replaced DisposeOf by Free to ensure compatibility with RAD 12; Library

Skia version: 107.3.2

Installation

Just download and run the Skia4Delphi_6.0.0-beta5_Setup.exe attached.

v6.0.0-beta4

7 months ago

v6.0.0 Beta 4

  • Added "GlobalSkiaBitmapsInParallel" as experimental for RAD Studio 12 Beta; FMX Render
  • Fixed vulnerability on libwebp (CVE-2023-4863); Library
  • Fixed startup exception with OpenGL on VirtualBox and Hyper-V; Library
  • Fixed Linux pixel format (thanks to @eugenekryukov); FMX Render
  • Fixed trailing horizontal align; FMX Render
  • Fixed TSkImage.MakeFromRaster, TSkImage.MakeFromTexture and TSkSurface.MakeRasterDirect (thanks to Dmitry Arefiev); #252 API
  • Fixed TSkLabel.TCustomWordsItem.OnClick; #262 Controls
  • Fixed lines performance on Windows raster; FMX Render
  • Fixed compatibility with RAD Studio 12 Beta; Library

Skia version: 107.3.1

Installation

Just download and run the Skia4Delphi_6.0.0-beta4_Setup.exe attached.

v6.0.0-beta3

9 months ago

v6.0.0 Beta 3

  • Added workflows on Github Actions to compile and test each commit and to build the production setup; CI
  • Added basic support for FPC (thanks to Mattias Gaertner); Library
  • Improved iOS/iOSSimulator static linkage; API
  • Fixed SkPath.IsLine; API
  • Fixed TSkSamplingOptions consts; API
  • Fixed SkUnicode.GetBreaks; API
  • Fixed TSkImageInfo.IsValid; API
  • Fixed FMX support for RAD 10 Seattle and older; FMX Render
  • Fixed unit tests on RAD 10.3 Rio and older; Tests
  • Minor fixes and improvements on API side; API

Skia version: 107.3.0

Installation

Just download and run the Skia4Delphi_6.0.0-beta3_Setup.exe attached.

v6.0.0-beta2

10 months ago

v6.0.0 Beta 2

  • Fixed AV at app startup with metal on iOS and macOS; #242 FMX Render
  • Fixed Android crash when restored from background; #225 FMX Render
  • Fixed macOS universal binary; Library
  • Added Mac App Store manual signature instructions; #233 Documentation

Skia version: 107.3.0

Installation

Just download and run the Skia4Delphi_6.0.0-beta2_Setup.exe attached.

v6.0.0-beta1

11 months ago

v6.0.0 Beta 1

  • Renamed units (Skia.pas -> System.Skia, Skia.FMX.* -> FMX.Skia.*, Skia.Vcl.pas -> Vcl.Skia.pas); Library
  • Added skia render to FMXLinux (only raster) (thanks @eugenekryukov); #221 FMX Render
  • Rewritted the SkRuntimeEffects to have the same structure as the original API, with the new classes SkRuntimeShaderBuilder and SkRuntimeBlenderBuilder; API
  • Fixed bitmap draws; FMX Render #217
  • Fixed performance issue with bitmaps in TBrush; FMX Render
  • Fixed Linux compilation; #216 #238 Library
  • Fixed crash deleting text of TEdit or TMemo; #214 FMX Render
  • Fixed text decoration color using TTextAttribute; FMX Render
  • Fixed linear gradient; #224 FMX Render
  • Fixed SkRuntimeEffect.GetUniformName; API
  • Fixed path tests; Tests
  • Minor improvements.

Skia version: 107.3.0

Compatibility break

  1. Units renamed As announced by Embarcadero, Skia4Delphi will be integrated into RAD Studio starting with RAD Studio 12.0, which is under development and, to improve the integration of the opensource project with the integrated version of the next RAD Studio, we decided to keep the new unit names:

    • Skia.pas ➜ System.Skia.pas
    • Skia.API.pas ➜ System.Skia.API.pas
    • Skia.FMX.pas ➜ FMX.Skia.pas
    • Skia.FMX.Graphics.pas ➜ FMX.Skia.Canvas.pas
    • Skia.FMX.Canvas.GL.pas ➜ FMX.Skia.Canvas.GL.pas
    • Skia.FMX.Canvas.Metal.pas ➜ FMX.Skia.Canvas.Metal.pas
    • Skia.Vcl.pas ➜ Vcl.Skia.pas
  2. SkRuntimeEffect rewritted The SkRuntimeEffect structure was rewritten following the same structure as the original Google Skia API, to facilitate future updates and allow better integration with other APIs (such as SkImageFilter for example). Now the SkRuntimeEffect just loads the SKSL code, then the SkRuntimeShaderBuilder must be used to allocate and change the uniforms and then create the shader. See examples of the new functionality in our demos.

About beta versions

This version is relatively stable, it has included a lot of fixes and few new features. However, from now on we will adopt several beta versions until the launch of the new RAD Studio, to guarantee the highest possible quality. New beta versions will only be available here on GitHub, while GetIt will only receive stable versions.

Installation

Just download and run the Skia4Delphi_6.0.0-beta1_Setup.exe attached.

v5.0.0

1 year ago

v5.0.0

  • Added GPU backend render to TSkAnimatedPaintBox in Vcl; #108 Controls
  • Rewritten Canvas, addressing all pending issues and further enhancing performance; #201 #40 FMX Render
  • Improved performance of TSkAnimatedImage in Vcl; Controls
  • Improved anti-aliasing through multi-sampling; FMX Render
  • Improved library reliability through more unit tests; Tests
  • Fixed numerous minor issues and improved the wrapper as well as the C++ code; API
  • Fixed compilation to Android on RAD Studio Rio; #206 API
  • Fixed issues related to transparency and addressed problems with OpenGL in fullscreen mode on Windows #127; FMX Render
  • Fixed deployment for custom build config; #208 Library
  • Fixed custom font in TSkAnimatedImage; #203 Controls
  • Fixed support for Android 5 and Android 6 broken in last version; Library
  • Deprecated SkParticles since Skia stopped maintaining it at Milestone 112; API
  • Minor improvements.

Skia version: 107.2.0

Compatibility break

We changed very specific APIs, which are unlikely to generate incompatibilities for developers, but a new major was necessary because we faithfully follow the semantic version.

Installation

Just download and run the Skia4Delphi_5.0.0_Setup.exe attached.

v4.1.1

1 year ago

v4.1.1

  • Improved Android binaries; Library
  • Improved iOS/iOSSimARM static linking, allowing others frameworks like FGX; Library
  • Improved TSkLabel style on FMX; Controls
  • Changed TSkPaintBox's DrawCacheKind property from protected to public; Controls
  • Fixed support for iOSSimARM64; #199 Library
  • Fixed brush resource draw; Render
  • Fixed TImage.BitmapMargins issue; Render
  • Fixed design borders when locked; Controls
  • Fixed SkRoundRect radii; API

Skia version: 107.1.1

Installation

Just download and run the Skia4Delphi_4.1.1_Setup.exe attached.

v4.1.0

1 year ago

v4.1.0

  • Added new parameters to SkCanvas.SaveLayer; API
  • Added functions ComputeFastBounds and CanComputeFastBounds to SkImageFilter; API
  • Added the properties ApproximateOpCount and ApproximateBytesUsed to SkPicture; API
  • Added ShaderButton demo in VCL & FMX (presented at the Embarcadero Brazil Conference 2022); Samples
  • Added virtual methods to TSkLabel; #182 Controls
  • Added support for beta versions of RAD Studio; Setup
  • Improved codecs load; Render
  • Fixed support for iOS Simulator ARM64; #186 Library
  • Fixed invalid float point operation in texts; Render
  • Fixed trimming issue in TTextLayout; #192 Render
  • Fixed Skia's codecs color type on mobile with Skia's render disabled; #197 Render
  • Fixed ISkPath.IsRect results; API
  • Fixed read of Metal view; Render
  • Fixed cursor in TSkLabel of VCL; Controls
  • Fixed text attributes; Render
  • Fixed controls inside TSkCustomAnimatedControl in VCL; Controls
  • Fixed TextLayout before 10.2 Tokyo; Render
  • Fixed iOS certificate issues in main demo; Samples
  • Fixed NavigationBar color on Android12+ in main demo; Samples
  • Fixed and improved unit tests; Tests
  • Minor improvements.

Skia version: 107.1.0

New ShaderButton demo (VCL & FMX)

https://user-images.githubusercontent.com/11139086/214973033-026aecd5-6835-4c05-8ba5-6b2c2929897f.MP4

Installation

Just download and run the Skia4Delphi_4.1.0_Setup.exe attached.