All notable changes to this project will be documented in this file.
SkCanvas.saveLayercan now be called with 1 argument (the paint). In this case the current effective clip will be used, as the current rect is assumed to be null.
no_codecsto compile.sh to remove all codec encoding and decoded code. This can save over 100 kb compressed if codecs are not needed.
MakeSkDashPathEffectwill be removed soon. Calls can be replaced with
MakeLinearGradientShaderwill be removed soon. Calls can be replaced with
MakeRadialGradientShaderwill be removed soon. Calls can be replaced with
MakeTwoPointConicalGradientShaderwill be removed soon. Calls can be replaced with
MakeSkCornerPathEffectwill be removed soon. Calls can be replaced with
MakeSkDiscretePathEffectwill be removed soon. Calls can be replaced with
SkSurface.drawOncefor drawing a single frame (in addition to already existing
SkSurface.requestAnimationFramefor animation logic).
CanvasKit.parseColorStringwhich processes color strings like “#2288FF”
SkRuntimeEffect.makeShaderWithChildren, which can take in other shaders as fragmentProcessors.
GrContext.releaseResourcesAndAbandonContextto free up WebGL contexts.
SkMatrix.multiplycan now accept any number of matrix arguments, multiplying them left-to-right.
SkFontMgr.getFamilyNameto expose the parsed font names.
CanvasKit.MakeSkPictureis now exposed. SKP support is not shipped to npm builds.
force_serialize_skphas been removed since it opt-out, not opt-in.
bin/core/. It is about half the size of the “CoreWithFonts” build.
SkAnimatedImage.getCurrentFramewhich returns an SkImage.
bin/there is the “CoreWithFonts” build that contains most functionality from 0.10.0. However, we no longer ship the Skottie animation player, nor the Particles demo. Further, PathOps are removed from this build
SkPath.simplify. Clients who need any of those features are encouraged to create a custom build using
SkPicture.DEBUGONLY_saveAsFilewas accidentally included in release builds. It has been removed. Clients who need this in a release build (e.g. to file a bug report that only reproduces in release) should do a custom build with the
SkCanvas.drawAnimatedImagewill be renamed soon. Calls can be replaced with
SkContourMeasureas an alternative to
SkParagraph.getRectsForRangenow have direction with value
MakeImageproperly in the externs file and can work with
CanvasKit.Malloc, which can be used to create a TypedArray backed by the C++ WASM memory. This can save a copy in some cases (e.g. SkColorFilter.MakeMatrix). This is an advanced feature, so use it with care.
SkCanvas.saveLayernow takes 3 or 4 params to include up to bounds, paint, SkImageFilter, flags.
SkPath.rQuadTo. Like their non-relative siblings, these are chainable.
getWordBoundary, and others.
CanvasKit.MakeBlurMaskFilterwill be renamed/moved soon to
CanvasKit.SkFontMgr.FromDatawhich takes several ArrayBuffers of font data, parses them, reading the metadata (e.g. family names) and stores them into a SkFontMgr.
no_fontcompile option should strip out more dead code related to fonts.
no_embedded_fontoption now allows creating a
SkFontMgr.FromDatainstead of always having an empty one.
CanvasKit.RRectXY). Advanced users can specify the 8 individual radii, if needed.
CanvasKit.computeTonalColors(), which returns TonalColors, which has an ambient SkColor and a spot SkColor.
CanvasKit.SkColorFilterand a variety of factories.
SkPaint.setColorFilteris the only consumer of these at the moment.
.concat()and others. Primarily for use with
MakeSkVerticesuses a builder to save a copy.
SkPath.arcTois given seven arguments, it no longer turns the first four into a
SkRectautomatically, and instead uses them as
arcTo(rx, ry, xAxisRotate, useSmallArc, isCCW, x, y)(see SkPath.h for more).
GrContexthas new methods for monitoring/setting the cache limits; tweaking these may lead to better performance in some cases.
SkCanvas.drawAtlasfor efficiently drawing multiple sprites from a sprite sheet with a set of transforms, color blends, etc.
SkRectBuilderwhich increase performance by reducing the amount of malloc/free calls per frame, given that the array size is fixed.
SkSurface.captureFrameAsSkPictureis a helper function to capture an
SkPicture, which can be dumped to disk (for debugging) with
SkImage.readPixels, which returns a TypedArray of pixel values (safe to use anywhere, doesn't need a delete()).
GrGLCapssupport for WebGL - this shouldn't have any impacts on APIs or correctness, except by perhaps fixing a few bugs in various surface types.
SkImage.makeShader- removed clampUnpremul as argument.
SkTextBlob.MakeFromRSXformwhich were needed to add the helper function
SkSurface.requestAnimationFrame- wrapper around window.requestAnimationFrame that takes care of the setup/tear down required to use CanvasKit optimally. The callback has an
SkCanvasas the first parameter - callers should draw on that.
SkCanvas.flushwill be removed soon - client should only call
CanvasKit.MakeSkVertices. The previous (and current default) behavior was for this to be true; some applications may go faster if set to false.
SkCanvas.restoreToCount(int)which can be used with the output of .save() and .saveLayer().
SkCanvas.getSurface()for making compatible surfaces (typically used as a workspace and then “saved” with
CanvasKit.MakeWebGLCanvasSurfaceno longer takes a webgl context as a first arg, only a canvas or an id of a canvas. If users want to manage their own GL contexts, they should build the
MakeManagedAnimationfor supplying external assets (like images, fonts).
SkCanvas.SkTextBlob.MakeFromText()to draw text to a canvas.
CanvasKit.TextEncodingenum. For use with
SkCanvas.drawText. At compile time, one can choose between using Harfbuzz/ICU (default) or a primitive one (“primitive_shaper”) which just does line breaking. Using Harfbuzz/ICU substantially increases code size (4.3 MB to 6.4 MB).
SkCanvas.drawText()now requires an
SkFontobject for raw strings.
SkPaint.setTypeface()which should be replaced by using
CanvasKitInit().then()interface (see 0.3.1 notes)
ready()if already loaded.
MakeCanvasSurfacecan now take a canvas element directly.
MakeWebGLCanvasSurfacecan now take a WebGL context as an integer and use it directly.
CanvasKitInit(...).then()is no longer the recommended way to initialize things. It will be removed in 0.4.0. Use
CanvasKitInit(...).ready(), which returns a real Promise.
fontmgr.MakeTypefaceFromDatato load fonts.
SkPath.setVolatile. Some animations see performance improvements by setting their paths' volatility to true.
SkPath.addRectnow correctly draws counter-clockwise vs clockwise.
CanvasKit.MakeImageShaderno longer takes encoded bytes, but an
SkImage, created from
CanvasKit.MakeImageFromEncoded. Additionally, the optional parameters
localMatrixhave been exposed.
forceMoveToas additional parameters.
SkPath.strokehas a new option
precisionIt defaults to 1.0.
fontmgr.MakeTypefaceFromDatafor more font variety.
CanvasKit.initFonts()- no longer needed.
Beginning of Changelog history