0921c10404
Change-Id: I4c408a8b711421856a14d67cee121512f7e06900 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/212190 Reviewed-by: Kevin Lubick <kjlubick@google.com>
6.4 KiB
6.4 KiB
CanvasKit Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.6.0] - 2019-05-06
Added
SkSurface.grContext
now exposed.GrContext
has new methods for monitoring/setting the cache limits; tweaking these may lead to better performance in some cases.getResourceCacheLimitBytes
,setResourceCacheLimitBytes
,getResourceCacheUsageBytes
SkCanvas.drawAtlas
for efficiently drawing multiple sprites from a sprite sheet with a set of transforms, color blends, etc.SkColorBuilder
,RSXFormBuilder
,SkRectBuilder
which increase performance by reducing the amount of malloc/free calls per frame, given that the array size is fixed.- Basic
SkPicture
support.SkSurface.captureFrameAsSkPicture
is a helper function to capture anSkPicture
, which can be dumped to disk (for debugging) withSkPicture.DEBUGONLY_saveAsFile
. SkImage.readPixels
, which returns a TypedArray of pixel values (safe to use anywhere, doesn't need a delete()).
Changed
- Better
GrGLCaps
support for WebGL - this shouldn't have any impacts on APIs or correctness, except by perhaps fixing a few bugs in various surface types. - Use unsigned ints for SkColor on the JS side - this shouldn't have any impacts unless clients have pre-computed colors, in which case, they will need to re-compute them.
- [breaking] Moved
CanvasKit.MakeImageShader
toSkImage.makeShader
- removed clampUnpremul as argument.
[0.5.1] - 2019-03-21
Added
SkPathMeasure
,RSXFormBuilder
,SkFont.getWidths
,SkTextBlob.MakeFromRSXform
which were needed to add the helper functionSkTextBlob.MakeOnPath
.SkSurface.requestAnimationFrame
- wrapper around window.requestAnimationFrame that takes care of the setup/tear down required to use CanvasKit optimally. The callback has anSkCanvas
as the first parameter - callers should draw on that.
Changed
- Location in Skia Git repo now
modules/canvaskit
(wasexperimental/canvaskit
)
Fixed
- Extern bug in
CanvasKit.SkMatrix.invert
- Fallback to CPU now properly refreshes the canvas to get access to the CanvasRenderingContext2D.
- Compile flags for better WebGL1 support for some graphics cards.
- Antialias bug on large oval paths https://crbug.com/skia/8873
Deprecated
SkCanvas.flush
will be removed soon - client should only callSkSurface.flush
[0.5.0] - 2019-03-08
Added
- isVolitile option to
CanvasKit.MakeSkVertices
. The previous (and current default) behavior was for this to be true; some applications may go faster if set to false. SkCanvas.saveLayer(rect, paint)
SkCanvas.restoreToCount(int)
which can be used with the output of .save() and .saveLayer().- Optional particles library from modules/particles.
See CanvasKit.MakeParticles(json)
; - More public APIs for working with Surfaces/Contexts
GetWebGLContext
,MakeGrContext
,MakeOnScreenGLSurface
,MakeRenderTarget
. SkSurface.getSurface()
andSkCanvas.getSurface()
for making compatible surfaces (typically used as a workspace and then "saved" withsurface.makeImageSnapshot()
)
Breaking
CanvasKit.MakeWebGLCanvasSurface
no 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 theSkSurface
themselves withGetWebGLContext
->MakeGrContext
->MakeOnScreenGLSurface
.
[0.4.1] - 2019-03-01
Added
- Optional arguments to
MakeManagedAnimation
for supplying external assets (like images, fonts).
[0.4.0] - 2019-02-25
Added
SkPath.addRoundRect
,SkPath.reset
,SkPath.rewind
exposed.SkCanvas.drawArc
,SkCanvas.drawLine
,SkCanvas.drawOval
,SkCanvas.drawRoundRect
exposed.- Can import/export a SkPath to an array of commands. See
CanvasKit.MakePathFromCmds
andSkPath.toCmds
. SkCanvas.drawTextBlob()
andSkCanvas.SkTextBlob.MakeFromText()
to draw text to a canvas.CanvasKit.TextEncoding
enum. For use withSkTextBlob
.- Text shaping with
ShapedText
object andSkCanvas.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).
Changed
SkCanvas.drawText()
now requires anSkFont
object for raw strings.
Removed
SkPaint.setTextSize()
,SkPaint.getTextSize()
,SkPaint.setTypeface()
which should be replaced by usingSkFont
.- Deprecated
CanvasKitInit().then()
interface (see 0.3.1 notes)
Fixed
- Potential bug in
ready()
if already loaded.
[0.3.1] - 2019-01-04
Added
SkFont
now exposed.MakeCanvasSurface
can now take a canvas element directly.MakeWebGLCanvasSurface
can now take a WebGL context as an integer and use it directly.
Changed
CanvasKitInit(...).then()
is no longer the recommended way to initialize things. It will be removed in 0.4.0. UseCanvasKitInit(...).ready()
, which returns a real Promise.
Removed
SkPaint.measureText
- useSkFont.measureText
instead.
[0.3.0] - 2018-12-18
Added
- Add Canvas2D JS layer. This mirrors the HTML Canvas API. This may be omitted at compile time
it by adding
no_canvas
to thecompile.sh
invocation. CanvasKit.FontMgr.DefaultRef()
andfontmgr.MakeTypefaceFromData
to load fonts.- Exposed
SkPath.setVolatile
. Some animations see performance improvements by setting their paths' volatility to true.
Fixed
SkPath.addRect
now correctly draws counter-clockwise vs clockwise.
Changed
CanvasKit.MakeImageShader
no longer takes encoded bytes, but anSkImage
, created fromCanvasKit.MakeImageFromEncoded
. Additionally, the optional parametersclampIfUnpremul
andlocalMatrix
have been exposed.SkPath.arcTo
now takesstartAngle
,sweepAngle
,forceMoveTo
as additional parameters.SkPath.stroke
has a new optionprecision
It defaults to 1.0.- CanvasKit comes with one font (NotoMono) instead of the Skia TestTypeface. Clients are encouraged
to use the new
fontmgr.MakeTypefaceFromData
for more font variety.
Removed
CanvasKit.initFonts()
- no longer needed.
[0.2.1] - 2018-11-20
Beginning of Changelog history