Milestone Release Notes

This page includes a list of high level updates for each milestone release.


Milestone 82

  • Removed drawBitmap and related functions from SkDevice; all public drawBitmap functions on SkCanvas automatically wrap the bitmap in an SkImage and call the equivalent drawImage function. Drawing mutable SkBitmaps will now incur a mandatory copy. Switch to using SkImage directly or mark the bitmap as immutable before drawing.

  • Removed “volatile” flag from SkVertices. All SkVertices objects are assumed to be volatile (the previous default behavior).

  • Removed exotic legacy bitmap functions from SkCanvas (drawBitmapLattic, drawBitmapNine); the exotic SkImage functions still exist.

  • Make it possible to selectively turn on/off individual encoders/decoders, using skia_use_(libpng/libjpeg_turbo/libwebp)(decode/encode).

  • Removed GrGpuResource, GrSurface, and GrTexture from public api. These were not meant to be public, and we now can move them into src. Also removed getTexture function from SkImage.h

  • Removed Bones from SkVertices

  • Added a field to GrContextOptions that controls whether GL errors are checked after GL calls that allocate textures, etc. It also controls checking for shader compile success, and program linking success.

  • Made SkDeferredDisplayList.h officially part of the public API (i.e., moved it to include/core). Also added a ProgramIterator to SkDeferredDisplayList which allows clients to pre-compile some of the shaders the DDL requires.

  • Added two new helper methods to SkSurfaceCharacterization: createBackendFormat and createFBO0. These make it easier for clients to create new surface characterizations that differ only a little from an existing surface characterization.

  • Removed SkTMax and SkTMin.

  • Removed SkTClamp and SkClampMax.

  • Removed SkScalarClampMax and SkScalarPin.

  • Removed SkMax32 and SkMin32.

  • Removed SkMaxScalar and SkMinScalar.

  • SkColorSetA now warns if the result is unused.

  • An SkImageInfo with a null SkColorSpace passed to SkCodec::getPixels() and related calls is treated as a request to do no color correction at decode time.

  • Add new APIs to add attributes to document structure node when creating a tagged PDF.

  • Remove CGFontRef parameter from SkCreateTypefaceFromCTFont. Use CTFontManagerCreateFontDescriptorFromData instead of CGFontCreateWithDataProvider to create CTFonts to avoid memory use issues.

  • Added SkCodec:: and SkAndroidCodec::getICCProfile for reporting the native ICC profile of an encoded image, even if it doesn't map to an SkColorSpace.

  • SkSurface::ReplaceBackendTexture takes ContentChangeMode as a parameter, which allow callers to specify whether retain a copy of the current content.

  • Enforce the existing documentation in SkCanvas::saveLayer that it ignores any mask filter on the restore SkPaint. The ‘coverage’ of a layer is ill-defined, and masking should be handled by pre-clipping or using the auxiliary clip mask image of the SaveLayerRec.

Milestone 81

  • Added support for GL_NV_fence extension.

  • Make SkImageInfo::validRowBytes require rowBytes to be pixel aligned. This makes SkBitmap match the behavior of raster SkSurfaces in rejecting non-aligned rowBytes.

  • Added an SkImage::MakeRasterFromCompressed entry point. Also updated SkImage::MakeFromCompressed to decompress the compressed image data if the GPU doesn‘t support the specified compression type (i.e., macOS Metal doesn’t support BC1_RGB8_UNORM so such compressed images will always be decompressed on that platform).

  • Added support for BC1 RGBA compressed textures

  • Added CachingHint to SkImage::makeRasterImage

  • Added SkAnimatedImage::getCurrentFrame()

  • Add support to create an SkSurface from an MTKView, with delayed acquisition of the MTLDrawable. Entry point: SkSurface::MakeFromMTKView

  • Removed SkIRect::EmptyIRect(). Use SkIRect::MakeEmpty() instead. https://review.skia.org/262382/

  • Moved SkRuntimeEffect to public API. This is the new (experimental) interface to custom SkSL shaders and color filters.

  • Added BC1 compressed format support. Metal and Vulkan seem to only support the BC formats on desktop machines.

  • Added compressed format support for backend texture creation API. This adds the following new entry points: GrContext::compressedBackendFormat GrContext::createCompressedBackendTexture The latter method comes in variants that allow color-initialized and compressed texture data initialized.

  • Added SkMatrix::MakeTrans(SkIVector) https://review.skia.org/259804


Milestone 80


Milestone 79


Milestone 78