Skip to content

Releases: kyamagu/skia-python

v138.0

09 Jun 13:06
v138.0
9ffb045
Compare
Choose a tag to compare

More than 4 years since v87. Many additions. See README.m116 all the way to README.m138 in the release notes directory for detailed changes.

IMPORTANT: Linux users: libEGL.so (from mesa-libEGL, libglvnd, or your graphic card's vendor e.g. NVidia) is required to be present on Linux hosts.

There is a small Migration Guide for upgrading from v87.

What's Changed

Full Changelog: v138.0rc1...v138.0

v87.9

08 Jun 00:39
v87.9
Compare
Choose a tag to compare

Since m87.8, added GrGLInterface.MakeEGL and GrGLInterface.MakeGLX for explicitly choosing GLX or EGL opengl initialization, and native build for both Aarch64 Linux and Arm64 Windows. Numpy 2.3.0 is required for Arm64 windows.

IMPORTANT: Starting v138rc1/v87.9rc1, libEGL.so (from mesa-libEGL, libglvnd, or your graphic card's vendor e.g. NVidia) is required to be present on Linux hosts.

Since v879rc1, updated Numpy dependency from 2.3.0rc1 to Numpy 2.3.0 , and documentation-related changes.

Full Changelog: v87.8...v87.9

v138.0 rc1 release

04 Jun 20:49
v138.0rc1
dc2981f
Compare
Choose a tag to compare
v138.0 rc1 release Pre-release
Pre-release

m138 includes a lot of changes in the CI build machinery, OpenGL,
shader effects, and API coverage closer to other Skia bindings
(Skia4Delphi and SkiaSharp). We now offers arm64 window wheels for windows 11. On Linux, we now offer OpenGL initializaion with EGL as an option (in addition to the GLX default). IMPORTANT: The presence of libEGL.so (part of mesa-libEGL / libglvnd-egl) is now a requirement on Linux.

arm64 windows requires Numpy 2.3.0rc1 .

There are examples of using OpenGL with skia-python in
GLFW, SDL2, SDL3, WX, GTK3, GTK4, QT5, QT6 at
https://github.com/HinTak/skia-python-examples/ .

README.m138 contains a longer description.

There is a v87.9 rc1 which contains only the arm64 window wheels for windows 11 and linux EGL addition.

What's Changed

Full Changelog: v136.b13...v138.0rc1

v87.9 rc1

04 Jun 16:28
v87.9rc1
Compare
Choose a tag to compare
v87.9 rc1 Pre-release
Pre-release

Since m87.8, added GrGLInterface.MakeEGL and GrGLInterface.MakeGLX for explicitly choosing GLX or EGL opengl initialization, and
native build for both Aarch64 Linux and Arm64 Windows. Numpy 2.3.0rc1 is required for Arm64 windows.

IMPORTANT: Starting v138rc1/v87.9rc1, libEGL.so (from mesa-libEGL, libglvnd, or your graphic card's vendor e.g. NVidia) is required to be present on Linux hosts.

Full Changelog: v87.8...v87.9rc1

v87.8

08 Apr 05:12
v87.8
Compare
Choose a tag to compare

manylinux_2_28, newer compiler update and speeding up aarch64 builds; no functionality change.

Full Changelog: v87.7...v87.8

v136 beta 13 Release

06 Apr 21:17
v136.b13
ac01599
Compare
Choose a tag to compare
v136 beta 13 Release Pre-release
Pre-release
  • skia.PDF.MakeDocument() is rewritten to give old behavior.
    Upstream's SkPDFMetdata has added 2 required fields jpegDecoder and jpegEncoder.
    SkPDF::MakeDocument(SkWStream*) now requires them supplied to make a reasonable PDF.
    skia.PDF.Metadata() (without arguments) is now initialized with Skia's built-in jpeg
    encoder and decoder. The bare SkPDF::Metadata constructor without jpeg
    encoder/decoder set is not exposed to Python code at the moment. REVISIT when
    there is valid usage of alternative jpeg encoder/decoder to the built-in.

  • Removing a few @pytest.mark.skip's before @pytest.fixture.
    They have no effect and now generates warning. Mistakenly added a while ago.

What's Changed

Full Changelog: v134.b12...v136.b13

v87.7

15 Mar 08:43
v87.7
Compare
Choose a tag to compare

Identical to v87.6, with python 3.13 support (and fix to #295), and misc necessary CI build machinery updates since v87.6.

Full Changelog: v87.6...v87.7

v134 beta 12 Release

05 Feb 21:52
v134.b12
de658a4
Compare
Choose a tag to compare
v134 beta 12 Release Pre-release
Pre-release

Wheel building:

  • Upgrading to manylinux_2_28 (from manylinux2014)

Bug fixes:

  • Adding a iter method to skia.Iter (compatibility with python 3.13.1)

  • Avoid intermittent segfault in Typeface.getKerningPairAdjustments()

Additions / Enhancements:

  • Binding SkFontMgr_New_Custom_Directory as FontMgr.New_Custom_Directory()

  • Binding skia::textlayout::TypefaceFontProvider as skia.textlayout.TypefaceFontProvider()

  • Binding skia::textlayout::StrutStyle as skia.textlayout.StrutStyle() class,
    adding textlayout.ParagraphStyle.setStrutStyle() method,
    and textlayout.TextStyle.setLetterSpacing / setWordSpacing methods.

What's Changed

  • M134 public by @HinTak in #308
  • cibuildwheel will default to manylinux_2_28 on 6th May 2025 - Let's d… by @HinTak in #285
  • Binding SkFontMgr_New_Custom_Directory by @HinTak in #292
  • Binding TypefaceFontProvider by @HinTak in #293
  • Adding a iter method to skia.Iter by @HinTak in #296
  • StrutStyle for leading/lineheight adjustment on ParagraphStyle + TextStyle.setLetterSpacing and TextStyle.setWordSpacing by @stenson in #299
  • M133 public by @HinTak in #302

New Contributors

Full Changelog: v132.b11...v134.b12

v132.0 beta 11 Release

14 Nov 11:05
db7d7fc
Compare
Choose a tag to compare
Pre-release

Since m131:

  • PathEffect.{DashType, DashInfo, asADash} withdrawn.
    Upstream removed them from public API in m132.

  • We now bundle a icudtl.dat for windows. This fixes windows-specific problems
    with SkUnicode, libSkShaper, and SkParagraph. Thanks @MeetWq for the change.
    Relevant CI tests re-enabled and added.

  • Upstream's SkNamedTransferFn::* now available as cms.NamedTransferFn.*,
    and SkNamedGamut::* as cms.NamedGamut.*. These are used in RuntimeEffect-related
    code.

  • More overloads of SkImage::makeShader added, and SkImage::makeRawShader added
    as Image.makeRawShader.

  • We binds SkRuntimeEffect as skia.RuntimeEffect. Added some helper classes:
    SkV3 as skia.V3, SkV4 as skia.V4,
    SkRuntimeEffect::Result as RuntimeEffectResult,
    SkRuntimeEffect::ChildPtr as RuntimeEffectChildPtr,
    SkRuntimeEffectBuilder as RuntimeEffectBuilder,
    std::vector<SkRuntimeEffect::ChildPtr> as VectorRuntimeEffectChildPtr,
    SkSpan<const SkRuntimeEffect::ChildPtr> as SpanRuntimeEffectChildPtr,
    SkRuntimeEffectBuilder::BuilderUniform as RuntimeEffectBuilderUniform,
    SkRuntimeEffectBuilder::BuilderChild as RuntimeEffectBuilderChild.
    Details are subjected to change. We ported all 9 of current upstream SkSL c++ examples,
    hosted elsewhere.

Since m130:

  • We now build for Mac OS 13 (12 deprecated at github), and support python 3.13

  • GL examples and tests updated, to restrict "Mac OS friendly" GL settings to Mac only.
    Some Linux installations - specifically, inside github CI - are sensitive to those;
    typical desktop linux boxes with real graphic cards seem not to be affected.

  • PDF.StructureElementNode.fAdditionalNodeIds withdrawn.
    SkPDF::StructureElementNode::fAdditionalNodeIds removed upstream.

What's Changed

Full Changelog: v130.b10...v132.b11

v130.0 beta 10 Release

20 Sep 21:44
57e705c
Compare
Choose a tag to compare
Pre-release

Since m129:

  • Upstream removed SkColorFilter::filterColor, so ColorFilter.filterColor is now emulated.

Since m128 (last beta release):

  • We now build for Mac OS 11.0 (instead of 10.13; github CI warning)

  • We now bind uptream's experimental skparagraph module and the SkParagraph class,
    to provide multi-line text paragraph layout.
    The functionality is under the skia.textlayout namespace, as Paragraph, etc.

    • There is a FontMgr.OneFontMgr() method which takes a font file or data, which returns
      a font manager having knowledge of exactly one font. FontMgr.New_Custom_Empty() has been
      overloaded as an alias to this, too.

    • The SkUnicode class is now available under python as skia.Unicode.
      The constructor is known to fail on windows - It is likely that downloading
      a icudtl.dat file, renaming from the versioned data-bin-{l,b}.zip in
      https://github.com/unicode-org/icu/releases, is needed. Windows users please report
      success/failure on this.

    • There are two examples shape_text.py (a python port of upstream's example), and
      skparagraph-example.py hosted elsewhere.

    • Note that the entire skparagraph module is still experimental and subjected to change.
      Font choices on Linux are sensitive to LANG and FC_LANG, and you may need to set/unset
      them for desired outcome.
      See filed issue upstream for details and updates.

  • Improved preview of default arguments in function signatures

  • Some parametric tests involving skia.SurfaceProps removed during the m87->m116 changes
    are re-added.

What's Changed

Full Changelog: v128.0b9...v130.b10