1cb93a386Sopenharmony_ci 2cb93a386Sopenharmony_ci--- 3cb93a386Sopenharmony_cititle: "Milestone Release Notes" 4cb93a386Sopenharmony_cilinkTitle: "Milestone Release Notes" 5cb93a386Sopenharmony_ci 6cb93a386Sopenharmony_ci--- 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ciThis page includes a list of high level updates for each milestone release. 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci* * * 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ciMilestone 93 14cb93a386Sopenharmony_ci------------ 15cb93a386Sopenharmony_ci * Removed SkPaint::getHash 16cb93a386Sopenharmony_ci https://review.skia.org/419336 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci * Removed SkShaders::Lerp. It was unused (and easy to replicate with SkRuntimeEffect). 19cb93a386Sopenharmony_ci https://review.skia.org/419796 20cb93a386Sopenharmony_ci 21cb93a386Sopenharmony_ci * The default value of GrContextOptions::fReduceOpsTaskSplitting is now enabled. 22cb93a386Sopenharmony_ci https://review.skia.org/419836 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_ci * Removed SkMatrix44 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci* * * 27cb93a386Sopenharmony_ci 28cb93a386Sopenharmony_ciMilestone 92 29cb93a386Sopenharmony_ci------------ 30cb93a386Sopenharmony_ci * Hides SkPathEffect::computeFastBounds() from public API; external subclasses of SkPathEffect 31cb93a386Sopenharmony_ci must implement onComputeFastBounds() but can return false to signal it's not computable. 32cb93a386Sopenharmony_ci https://review.skia.org/406140 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ci * Add SkM44::RectToRect constructor (SkM44's equivalent to SkMatrix::RectToRect) 35cb93a386Sopenharmony_ci https://review.skia.org/402957 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci * Metal support has been removed for versions of iOS older than 10.0 and MacOS older than 10.14. 38cb93a386Sopenharmony_ci https://review.skia.org/401816 39cb93a386Sopenharmony_ci 40cb93a386Sopenharmony_ci * Removed custom attributes from SkVertices and the corresponding `varying` feature from 41cb93a386Sopenharmony_ci SkRuntimeEffect. 42cb93a386Sopenharmony_ci https://review.skia.org/398222 43cb93a386Sopenharmony_ci 44cb93a386Sopenharmony_ci * Dropped support for mixed samples. Mixed samples is no longer relevant for Ganesh. DMSAA and the 45cb93a386Sopenharmony_ci new Ganesh architecture both rely on full MSAA, and any platform where mixed samples is 46cb93a386Sopenharmony_ci supported will ultimately not use the old architecture. 47cb93a386Sopenharmony_ci 48cb93a386Sopenharmony_ci * SkRuntimeEffect::Make has been removed. It is replaced by MakeForShader and MakeForColorFilter. 49cb93a386Sopenharmony_ci These functions do stricter error checking on the SkSL, to ensure it is valid for a particular 50cb93a386Sopenharmony_ci stage of the Skia pipeline. 51cb93a386Sopenharmony_ci https://review.skia.org/402156 52cb93a386Sopenharmony_ci 53cb93a386Sopenharmony_ci* * * 54cb93a386Sopenharmony_ci 55cb93a386Sopenharmony_ciMilestone 91 56cb93a386Sopenharmony_ci------------ 57cb93a386Sopenharmony_ci * The SkSL DSL API has been moved into public headers, although it is still under active 58cb93a386Sopenharmony_ci development and isn't quite ready for prime time yet. 59cb93a386Sopenharmony_ci https://review.skia.org/378496 60cb93a386Sopenharmony_ci 61cb93a386Sopenharmony_ci * Skia's GPU backend no longer supports NVPR. Our more recent path renderers are more 62cb93a386Sopenharmony_ci performant and are not limited to nVidia hardware. 63cb93a386Sopenharmony_ci 64cb93a386Sopenharmony_ci * SkRuntimeEffect now supports uniforms of type int, int2, int3, and int4. Per the OpenGL ES 65cb93a386Sopenharmony_ci Shading Language Version 1.00 specification, there are few guarantees about the representation 66cb93a386Sopenharmony_ci or range of integral types, and operations that assume integral representation (eg, bitwise), 67cb93a386Sopenharmony_ci are not supported. 68cb93a386Sopenharmony_ci https://review.skia.org/391856 69cb93a386Sopenharmony_ci 70cb93a386Sopenharmony_ci * SkRuntimeEffect requires that 'shader' variables be declared as 'uniform'. The deprecated 71cb93a386Sopenharmony_ci syntax of 'in shader' is no longer supported. 72cb93a386Sopenharmony_ci https://review.skia.org/393081 73cb93a386Sopenharmony_ci 74cb93a386Sopenharmony_ci * SkRuntimeEffect now enforces stricter rules on the signature of main, and arguments to sample(). 75cb93a386Sopenharmony_ci main must be declared to return a color ('half4', 'float4', or 'vec4'). The first argument must 76cb93a386Sopenharmony_ci be coordinates ('float2' or 'vec2'). The second argument is optional, but if present, it must 77cb93a386Sopenharmony_ci be the incoming color ('half4', 'float4', or 'vec4'). 78cb93a386Sopenharmony_ci Calls to sample a shader must be of the form 'sample(child, coords)', where 'child' is a uniform 79cb93a386Sopenharmony_ci shader, and 'coords' is of type 'float2' or 'vec2'. 80cb93a386Sopenharmony_ci https://review.skia.org/399077 81cb93a386Sopenharmony_ci 82cb93a386Sopenharmony_ci* * * 83cb93a386Sopenharmony_ci 84cb93a386Sopenharmony_ciMilestone 90 85cb93a386Sopenharmony_ci------------ 86cb93a386Sopenharmony_ci * Renamed use of sk_cf_obj in external Metal types to sk_cfp. 87cb93a386Sopenharmony_ci https://review.skia.org/372556 88cb93a386Sopenharmony_ci 89cb93a386Sopenharmony_ci * GrDirectContext::ComputeImageSize() is removed. Use SkImage::textureSize() instead. 90cb93a386Sopenharmony_ci https://review.skia.org/368621 91cb93a386Sopenharmony_ci https://review.skia.org/369317 92cb93a386Sopenharmony_ci https://review.skia.org/371958 93cb93a386Sopenharmony_ci 94cb93a386Sopenharmony_ci * Remove SkImageFilter::MakeMatrixFilter as it was unused and replaced with 95cb93a386Sopenharmony_ci SkImageFilters::MatrixTransform. 96cb93a386Sopenharmony_ci https://review.skia.org/366318 97cb93a386Sopenharmony_ci 98cb93a386Sopenharmony_ci * Refactored particle system to use a single code string containing both Effect and Particle code. 99cb93a386Sopenharmony_ci Uniform APIs are now shared for all program entry points, and no longer prefixed with 'Effect' 100cb93a386Sopenharmony_ci or 'Particle'. For example, instead of `SkParticleEffect::effectUniformInfo` and 101cb93a386Sopenharmony_ci `SkParticleEffect::particleUniformInfo`, there is just `SkParticleEffect::uniformInfo`. 102cb93a386Sopenharmony_ci 103cb93a386Sopenharmony_ci * Remove SkImageFilter::CropRect from the public API as it's no longer usable. All factories 104cb93a386Sopenharmony_ci work with 'SkRect', 'SkIRect', or nullable pointers to 'Sk[I]Rect'. 105cb93a386Sopenharmony_ci https://review.skia.org/361496 106cb93a386Sopenharmony_ci 107cb93a386Sopenharmony_ci * Remove deprecated SkImageFilter factory functions and supporting types. All default-provided 108cb93a386Sopenharmony_ci SkImageFilters are now only constructed via 'include/effects/SkImageFilters.h' 109cb93a386Sopenharmony_ci https://review.skia.org/357285 110cb93a386Sopenharmony_ci 111cb93a386Sopenharmony_ci * Added SkRuntimeEffect::makeImage() to capture the output of an SkRuntimeEffect in an SkImage. 112cb93a386Sopenharmony_ci https://review.skia.org/357284 113cb93a386Sopenharmony_ci 114cb93a386Sopenharmony_ci * Updated SkRuntimeEffect::Make() to take an Options struct. It also now returns a Results struct 115cb93a386Sopenharmony_ci instead of a tuple. 116cb93a386Sopenharmony_ci https://review.skia.org/363785 117cb93a386Sopenharmony_ci https://review.skia.org/367060 118cb93a386Sopenharmony_ci 119cb93a386Sopenharmony_ci * Changed SkRuntimeEffect::Varying to have lower-case member names, with no 'f' prefix. 120cb93a386Sopenharmony_ci https://review.skia.org/365656 121cb93a386Sopenharmony_ci 122cb93a386Sopenharmony_ci * Changed SkRuntimeEffect::Uniform to have lower-case member names, with no 'f' prefix. 123cb93a386Sopenharmony_ci https://review.skia.org/365696 124cb93a386Sopenharmony_ci 125cb93a386Sopenharmony_ci * Deprecate (and ignore) SkAndroidCodec::ExifOrientation 126cb93a386Sopenharmony_ci https://review.skia.org/344763 127cb93a386Sopenharmony_ci 128cb93a386Sopenharmony_ci * Fix several minor issues in lighting image filters: 129cb93a386Sopenharmony_ci - The spotlight falloff exponent is no longer clamped to [1, 128]. SVG 1.1 requires the specular 130cb93a386Sopenharmony_ci lighting effect's exponent (shininess) to be clamped; not the spotlight's falloff. Any such 131cb93a386Sopenharmony_ci parameter clamping is the client's responisibility, which makes Skia's lighting effect easily 132cb93a386Sopenharmony_ci adaptable to SVG 1.1 (clamp exponent) or SVG 2 (no clamp). 133cb93a386Sopenharmony_ci - Fix spotlight incorrectly scaling light within the cone angle. 134cb93a386Sopenharmony_ci - Move saturation of RGBA to after multiplying lighting intensity with the lighting color, which 135cb93a386Sopenharmony_ci improves rendering when diffuse and specular constants are greater than 1. 136cb93a386Sopenharmony_ci https://review.skia.org/355496 137cb93a386Sopenharmony_ci 138cb93a386Sopenharmony_ci * SkDeferredDisplayListRecorder::makePromiseTexture has moved to SkImage::MakePromiseTexture. 139cb93a386Sopenharmony_ci New code should use the new entry point – migration CLs will be coming soon. 140cb93a386Sopenharmony_ci https://review.skia.org/373716 141cb93a386Sopenharmony_ci 142cb93a386Sopenharmony_ci* * * 143cb93a386Sopenharmony_ci 144cb93a386Sopenharmony_ciMilestone 89 145cb93a386Sopenharmony_ci------------ 146cb93a386Sopenharmony_ci 147cb93a386Sopenharmony_ci * Removed SkYUVAIndex and SkYUVASizeInfo. These were no longer used in any 148cb93a386Sopenharmony_ci public APIs. 149cb93a386Sopenharmony_ci https://review.skia.org/352497 150cb93a386Sopenharmony_ci 151cb93a386Sopenharmony_ci * Numerous changes to SkRuntimeEffect, aligning the capabilities and restrictions with 152cb93a386Sopenharmony_ci The OpenGL ES Shading Language 1.00 (aka, the shading language of OpenGL ES2 and WebGL 1.0). 153cb93a386Sopenharmony_ci All built-in functions from sections 8.1 through 8.6 implemented & tested on all backends. 154cb93a386Sopenharmony_ci Removed types and features that require newer versions of GLSL: 155cb93a386Sopenharmony_ci https://review.skia.org/346657 [Non-square matrices] 156cb93a386Sopenharmony_ci https://review.skia.org/347046 [uint, short, ushort, byte, ubyte] 157cb93a386Sopenharmony_ci https://review.skia.org/349056 [while and do-while loops] 158cb93a386Sopenharmony_ci https://review.skia.org/350030 [Bitwise operators and integer remainder] 159cb93a386Sopenharmony_ci 160cb93a386Sopenharmony_ci * Add SkShadowUtils::GetLocalBounds. Generates bounding box for shadows 161cb93a386Sopenharmony_ci relative to path. 162cb93a386Sopenharmony_ci https://review.skia.org/351922 163cb93a386Sopenharmony_ci 164cb93a386Sopenharmony_ci * Removed SkPerlinNoiseShader::MakeImprovedNoise. 165cb93a386Sopenharmony_ci https://review.skia.org/352057 166cb93a386Sopenharmony_ci 167cb93a386Sopenharmony_ci * Removed deprecated version of MakeFromYUVATextures. Use the version 168cb93a386Sopenharmony_ci that takes GrYUVABackendTextures instead. 169cb93a386Sopenharmony_ci https://review.skia.org/345174 170cb93a386Sopenharmony_ci 171cb93a386Sopenharmony_ci * SkAnimatedImage: Always respect exif orientation 172cb93a386Sopenharmony_ci Replace SkPixmapPriv::ShouldSwapWidthHeight with 173cb93a386Sopenharmony_ci SkEncodedOriginSwapsWidthHeight. 174cb93a386Sopenharmony_ci https://review.skia.org/344762 175cb93a386Sopenharmony_ci 176cb93a386Sopenharmony_ci * Add kDirectionalLight_ShadowFlag support. If enabled, light position represents 177cb93a386Sopenharmony_ci a vector pointing towards the light, and light radius is blur radius at elevation 1. 178cb93a386Sopenharmony_ci https://review.skia.org/321792 179cb93a386Sopenharmony_ci 180cb93a386Sopenharmony_ci * Support GL_LUMINANCE8_ALPHA8 textures. These can be used with GrBackendTexture APIs 181cb93a386Sopenharmony_ci on GrDirectContext and as planes of YUVA images via GrYUVABackendTextures. 182cb93a386Sopenharmony_ci https://review.skia.org/344761 183cb93a386Sopenharmony_ci 184cb93a386Sopenharmony_ci * Removed previously deprecated SkImage::MakeFromYUVATexturesCopyToExternal. 185cb93a386Sopenharmony_ci https://review.skia.org/342077 186cb93a386Sopenharmony_ci 187cb93a386Sopenharmony_ci * Add versions of GrDirectContext::createBackendTexture and updateBackendTexture 188cb93a386Sopenharmony_ci that take a GrSurfaceOrigin. The previous versions are deprecated. 189cb93a386Sopenharmony_ci https://review.skia.org/341005 190cb93a386Sopenharmony_ci 191cb93a386Sopenharmony_ci * Remove support for deprecated kDontClipToLayer_SaveLayerFlag in SkCanvas::SaveLayerRec 192cb93a386Sopenharmony_ci https://review.skia.org/339988 193cb93a386Sopenharmony_ci 194cb93a386Sopenharmony_ci * Expose more info in SkCodec::FrameInfo 195cb93a386Sopenharmony_ci https://review.skia.org/339857 196cb93a386Sopenharmony_ci 197cb93a386Sopenharmony_ci * Added dither control to the SkImageFilters::Shader factory. 198cb93a386Sopenharmony_ci https://review.skia.org/338156 199cb93a386Sopenharmony_ci 200cb93a386Sopenharmony_ci * Add MTLBinaryArchive parameter to GrMtlBackendContext. This allows 201cb93a386Sopenharmony_ci Skia to cache PipelineStates in the given archive for faster 202cb93a386Sopenharmony_ci shader compiles on future runs. The client must handle loading and 203cb93a386Sopenharmony_ci saving of the archive. 204cb93a386Sopenharmony_ci https://review.skia.org/333758 205cb93a386Sopenharmony_ci 206cb93a386Sopenharmony_ci * Deprecated enum SkYUVAInfo::PlanarConfig has been removed. 207cb93a386Sopenharmony_ci https://review.skia.org/334161 208cb93a386Sopenharmony_ci 209cb93a386Sopenharmony_ci * Deprecated SkImage factories have been removed from 210cb93a386Sopenharmony_ci SkDeferredDisplayListRecorder. 211cb93a386Sopenharmony_ci 212cb93a386Sopenharmony_ci * The following YUV image factories have been removed: 213cb93a386Sopenharmony_ci SkImage::MakeFromYUVTexturesCopyWithExternalBackend 214cb93a386Sopenharmony_ci SkImage::MakeFromNV12TexturesCopyWithExternalBackend 215cb93a386Sopenharmony_ci Replacement pattern outlined below. 216cb93a386Sopenharmony_ci 1) Make image using MakeFromYUVATextures 217cb93a386Sopenharmony_ci 2) Make a SkSurface around result texture using SkSurface::MakeFromBackendTexture 218cb93a386Sopenharmony_ci 3) surface->getCanvas()->drawImage(image, 0, 0); 219cb93a386Sopenharmony_ci 4) surface->flushAndSubmit() 220cb93a386Sopenharmony_ci 5) Optional: SkImage::MakeFromBackendTexture() to use as SkImage. 221cb93a386Sopenharmony_ci https://review.skia.org/334596 222cb93a386Sopenharmony_ci 223cb93a386Sopenharmony_ci * Added a new interface for GrDirectContext creation in Metal, using 224cb93a386Sopenharmony_ci a new struct called GrMtlBackendContext. The previous interface taking 225cb93a386Sopenharmony_ci a MTLDevice and MTLCommandQueue is deprecated. 226cb93a386Sopenharmony_ci https://review.skia.org/334426 227cb93a386Sopenharmony_ci 228cb93a386Sopenharmony_ci * SkCanvas::flush has been deprecated. 229cb93a386Sopenharmony_ci 230cb93a386Sopenharmony_ci* * * 231cb93a386Sopenharmony_ci 232cb93a386Sopenharmony_ciMilestone 88 233cb93a386Sopenharmony_ci------------ 234cb93a386Sopenharmony_ci 235cb93a386Sopenharmony_ci * SkYUVAInfo now has separate enums for division of channels among planes and 236cb93a386Sopenharmony_ci the subsampling. The previous combined enum, PlanarConfig, is deprecated. 237cb93a386Sopenharmony_ci https://review.skia.org/334102 238cb93a386Sopenharmony_ci 239cb93a386Sopenharmony_ci * Simplified SkDeferredDisplayListRecorder promise image API. Removed "release" 240cb93a386Sopenharmony_ci callback and renamed "done" callback to "release". The new "release" proc can 241cb93a386Sopenharmony_ci be null. Added a new SkYUVAInfo-based factory for YUVA promise texture images 242cb93a386Sopenharmony_ci and deprecated the old SkYUVAIndex-based one. 243cb93a386Sopenharmony_ci https://review.skia.org/331836 244cb93a386Sopenharmony_ci https://review.skia.org/333519 245cb93a386Sopenharmony_ci 246cb93a386Sopenharmony_ci * Limit the types and intrinsics supported in SkRuntimeEffect to GLSL ES 1.00 247cb93a386Sopenharmony_ci https://review.skia.org/332597 248cb93a386Sopenharmony_ci 249cb93a386Sopenharmony_ci * Add AVIF support to SkHeifCodec. 250cb93a386Sopenharmony_ci 251cb93a386Sopenharmony_ci * Add support for creating SkSurfaceCharacterizations directly for use by a 252cb93a386Sopenharmony_ci GrVkSecondaryCBDrawContext. 253cb93a386Sopenharmony_ci https://review.skia.org/331877 254cb93a386Sopenharmony_ci 255cb93a386Sopenharmony_ci * Removed SkSurfaceProps::kLegacyFontHost_InitType, SkFontLCDConfig, and related code. 256cb93a386Sopenharmony_ci The default pixel geometry for SkSurfaceProps is now kUnknown instead of kRGB_H. 257cb93a386Sopenharmony_ci The removal was guarded by the SK_LEGACY_SURFACE_PROPS build flag which was later removed. 258cb93a386Sopenharmony_ci https://review.skia.org/322490 259cb93a386Sopenharmony_ci https://review.skia.org/329364 260cb93a386Sopenharmony_ci 261cb93a386Sopenharmony_ci * Legacy 8-bit YUV interface removed from SkImageGenerator. Use more flexible SkYUVAPixmaps- 262cb93a386Sopenharmony_ci based interface instead. 263cb93a386Sopenharmony_ci https://review.skia.org/327917 264cb93a386Sopenharmony_ci 265cb93a386Sopenharmony_ci * New variant of SkImage::MakeFromYUVATextures. Takes a new type GrYUVATextures 266cb93a386Sopenharmony_ci which wraps an SkYUVAInfo and compatible set of GrBackendTextures. The provides 267cb93a386Sopenharmony_ci a more complete and structured specification of the planar configuration. Previous 268cb93a386Sopenharmony_ci version is deprecated. 269cb93a386Sopenharmony_ci Already deprecated MakeFromYUVATexturesCopyToExternal added to replace other deprecated 270cb93a386Sopenharmony_ci APIs. It's not recommended that clients use this and instead use the pattern described 271cb93a386Sopenharmony_ci in the API comment. 272cb93a386Sopenharmony_ci https://review.skia.org/317762 273cb93a386Sopenharmony_ci https://review.skia.org/329956 274cb93a386Sopenharmony_ci 275cb93a386Sopenharmony_ci * Add field to GrContextOptions to disable mipmap support even if the backend 276cb93a386Sopenharmony_ci supports it. 277cb93a386Sopenharmony_ci 278cb93a386Sopenharmony_ci * SkTPin() removed from public API. 279cb93a386Sopenharmony_ci 280cb93a386Sopenharmony_ci* * * 281cb93a386Sopenharmony_ci 282cb93a386Sopenharmony_ciMilestone 87 283cb93a386Sopenharmony_ci------------ 284cb93a386Sopenharmony_ci 285cb93a386Sopenharmony_ci * GrVkImageInfo now has a field for sample count. GrBackendRenderTarget constructor 286cb93a386Sopenharmony_ci that took both a GrVkImageInfo and separate sample count is deprecated. Use the 287cb93a386Sopenharmony_ci version without sample count instead. Similarly, GrD3DTextureResourceInfo now 288cb93a386Sopenharmony_ci has a sample count field and GrBackendRenderTarget no longer takes a separate 289cb93a386Sopenharmony_ci sample count for Direct3D. The sample count for GrBackendRenderTarget is now 290cb93a386Sopenharmony_ci directly queried from MtlTexture rather than passed separately. The version that 291cb93a386Sopenharmony_ci takes a separate sample count is deprecated and the parameter is ignored. 292cb93a386Sopenharmony_ci https://review.skia.org/320262 293cb93a386Sopenharmony_ci https://review.skia.org/320757 294cb93a386Sopenharmony_ci https://review.skia.org/320956 295cb93a386Sopenharmony_ci 296cb93a386Sopenharmony_ci * Added deprecation warning for Metal support on MacOS 10.13, iOS 8.3, and older. 297cb93a386Sopenharmony_ci https://review.skia.org/320260 298cb93a386Sopenharmony_ci 299cb93a386Sopenharmony_ci * GrVkImageInfo now has a field for sample count. GrBackendRenderTarget constructor 300cb93a386Sopenharmony_ci that took both a GrVkImageInfo and separate sample count is deprecated. Use the 301cb93a386Sopenharmony_ci version without sample count instead. 302cb93a386Sopenharmony_ci 303cb93a386Sopenharmony_ci * Update SkClipOp::kMax_EnumValue to include only intersect and difference when 304cb93a386Sopenharmony_ci SK_SUPPORT_DEPRECATED_CLIPOPS is not defined. 305cb93a386Sopenharmony_ci https://review.skia.org/320064 306cb93a386Sopenharmony_ci 307cb93a386Sopenharmony_ci * Add support for external allocator for Direct3D 12 backend. 308cb93a386Sopenharmony_ci Defines base classes for an allocation associated with a backend texture and a 309cb93a386Sopenharmony_ci a memory allocator to create such allocations. 310cb93a386Sopenharmony_ci Adds memory allocator to backend context. 311cb93a386Sopenharmony_ci https://review.skia.org/317243 312cb93a386Sopenharmony_ci 313cb93a386Sopenharmony_ci * Add new optional parameter to GrContext::setBackend[Texture/RenderTarget]State which can 314cb93a386Sopenharmony_ci be used to return the previous GrBackendSurfaceMutableState before the requested change. 315cb93a386Sopenharmony_ci https://review.skia.org/318698 316cb93a386Sopenharmony_ci 317cb93a386Sopenharmony_ci * New optimized clip stack for GPU backends. Enabled by default but old behavior based on 318cb93a386Sopenharmony_ci SkClipStack can be restored by defining SK_DISABLE_NEW_GR_CLIP_STACK when building. It is not 319cb93a386Sopenharmony_ci compatible with SK_SUPPORT_DEPRECATED_CLIPOPS and we are targeting the removal of support for 320cb93a386Sopenharmony_ci the deprecated, expanding clip ops. 321cb93a386Sopenharmony_ci https://review.skia.org/317209 322cb93a386Sopenharmony_ci 323cb93a386Sopenharmony_ci * GPU backends now properly honor the SkFilterQuality when calling drawAtlas. 324cb93a386Sopenharmony_ci https://review.skia.org/313081 325cb93a386Sopenharmony_ci 326cb93a386Sopenharmony_ci * The signature of 'main' used with SkRuntimeEffect SkSL has changed. There is no longer an 327cb93a386Sopenharmony_ci 'inout half4 color' parameter, effects must return their color instead. 328cb93a386Sopenharmony_ci Valid signatures are now 'half4 main()' or 'half4 main(float2 coord)'. 329cb93a386Sopenharmony_ci https://review.skia.org/310756 330cb93a386Sopenharmony_ci 331cb93a386Sopenharmony_ci * New YUVA planar specifications for SkCodec, SkImageGenerator, SkImage::MakeFromYUVAPixmaps. 332cb93a386Sopenharmony_ci Chroma subsampling is specified in more structured way. SkCodec and SkImageGenerator 333cb93a386Sopenharmony_ci don't assume 3 planes with 8bit planar values. Old APIs are deprecated. 334cb93a386Sopenharmony_ci https://review.skia.org/309658 335cb93a386Sopenharmony_ci https://review.skia.org/312886 336cb93a386Sopenharmony_ci https://review.skia.org/314276 337cb93a386Sopenharmony_ci https://review.skia.org/316837 338cb93a386Sopenharmony_ci https://review.skia.org/317097 339cb93a386Sopenharmony_ci 340cb93a386Sopenharmony_ci * Added VkImageUsageFlags to GrVkImageInfo struct. 341cb93a386Sopenharmony_ci 342cb93a386Sopenharmony_ci* * * 343cb93a386Sopenharmony_ci 344cb93a386Sopenharmony_ciMilestone 86 345cb93a386Sopenharmony_ci------------ 346cb93a386Sopenharmony_ci 347cb93a386Sopenharmony_ci * Remove support for 'in' variables from SkRuntimeEffect. API now exclusively refers to inputs 348cb93a386Sopenharmony_ci as 'uniforms'. 349cb93a386Sopenharmony_ci https://review.skia.org/309050 350cb93a386Sopenharmony_ci 351cb93a386Sopenharmony_ci * Add SkImageGeneratorNDK and SkEncodeImageWithNDK for using Android's NDK APIs to decode and 352cb93a386Sopenharmony_ci encode. 353cb93a386Sopenharmony_ci https://review.skia.org/308185 354cb93a386Sopenharmony_ci https://review.skia.org/308800 355cb93a386Sopenharmony_ci 356cb93a386Sopenharmony_ci * SkImage:remove DecodeToRaster, DecodeToTexture 357cb93a386Sopenharmony_ci https://review.skia.org/306331 358cb93a386Sopenharmony_ci 359cb93a386Sopenharmony_ci * Add GrContext api to update compressed backend textures. 360cb93a386Sopenharmony_ci https://review.skia.org/302265 361cb93a386Sopenharmony_ci 362cb93a386Sopenharmony_ci * Rename GrMipMapped to GrMipmapped for consistency with new APIs. 363cb93a386Sopenharmony_ci Also rename GrBackendTexture::hasMipMaps() to GrBackendTexture::hasMipmaps() 364cb93a386Sopenharmony_ci https://review.skia.org/304576 365cb93a386Sopenharmony_ci https://review.skia.org/304598 366cb93a386Sopenharmony_ci 367cb93a386Sopenharmony_ci * Add option for clients to own semaphores after wait calls. 368cb93a386Sopenharmony_ci https://review.skia.org/301216 369cb93a386Sopenharmony_ci 370cb93a386Sopenharmony_ci * Remove obsolete GrFlushFlags. 371cb93a386Sopenharmony_ci https://review.skia.org/298818 372cb93a386Sopenharmony_ci 373cb93a386Sopenharmony_ci * Adds default flush() calls to SkSurface, SkImage, and GrContext. These calls do 374cb93a386Sopenharmony_ci a basic flush without a submit. If you haven't updated Skia in a couple releases 375cb93a386Sopenharmony_ci and still have flush() calls in your code that you expect to do a flush and 376cb93a386Sopenharmony_ci submit, you should update all those to the previously added flushAndSubmit() calls 377cb93a386Sopenharmony_ci instead. 378cb93a386Sopenharmony_ci https://review.skia.org/299141 379cb93a386Sopenharmony_ci 380cb93a386Sopenharmony_ci * Enable BackendSemaphores for the Direct3D backend. 381cb93a386Sopenharmony_ci https://review.skia.org/298752 382cb93a386Sopenharmony_ci 383cb93a386Sopenharmony_ci * Added SkImage:asyncRescaleAndReadPixels and SkImage::asyncRescaleAndReadPixelsYUV420 384cb93a386Sopenharmony_ci https://review.skia.org/299281 385cb93a386Sopenharmony_ci 386cb93a386Sopenharmony_ci * Ganesh is moving towards replacing GrContext with the GrDirectContext/GrRecordingContext 387cb93a386Sopenharmony_ci pair. GrDirectContexts have _direct_ access to the GPU and are very similar to the old 388cb93a386Sopenharmony_ci GrContext. GrRecordingContexts are less powerful contexts that lack GPU access but provided 389cb93a386Sopenharmony_ci context-like utilities during DDL recording. SkSurfaces and SkCanvas will now only return 390cb93a386Sopenharmony_ci GrRecordingContexts. Clients requiring context features that need GPU access can then 391cb93a386Sopenharmony_ci check (via GrRecordingContext::asDirectContext) if the available recording context is actually 392cb93a386Sopenharmony_ci a direct context. 393cb93a386Sopenharmony_ci 394cb93a386Sopenharmony_ci * Replace #defined values in SkString with equivalent constexprs. 395cb93a386Sopenharmony_ci http://review.skia.org/306160 396cb93a386Sopenharmony_ci 397cb93a386Sopenharmony_ci 398cb93a386Sopenharmony_ci* * * 399cb93a386Sopenharmony_ci 400cb93a386Sopenharmony_ciMilestone 85 401cb93a386Sopenharmony_ci------------ 402cb93a386Sopenharmony_ci 403cb93a386Sopenharmony_ci * Added GrContext::oomed() which reports whether Skia has seen a GL_OUT_OF_MEMORY 404cb93a386Sopenharmony_ci error from Open GL [ES] or VK_ERROR_OUT_OF_*_MEMORY from Vulkan. 405cb93a386Sopenharmony_ci https://review.skia.org/298216 406cb93a386Sopenharmony_ci 407cb93a386Sopenharmony_ci * Add option on SkSurface::flush to pass in a GrBackendSurfaceMutableState which 408cb93a386Sopenharmony_ci we will set the gpu backend surface to be at the end of the flush. 409cb93a386Sopenharmony_ci https://review.skia.org/295567 410cb93a386Sopenharmony_ci 411cb93a386Sopenharmony_ci * Add GrContext function to set mutable state on a backend surface. Currently this 412cb93a386Sopenharmony_ci is only used for setting vulkan VkImage layout and queue family. 413cb93a386Sopenharmony_ci https://review.skia.org/293844 414cb93a386Sopenharmony_ci 415cb93a386Sopenharmony_ci * SkSurface factores that take GrBackendTexture or GrBackendRenderTarget now always 416cb93a386Sopenharmony_ci call the release proc (if provided) on failure. SkSurface::replaceBackendTexture 417cb93a386Sopenharmony_ci also calls the release proc on failure. 418cb93a386Sopenharmony_ci https://review.skia.org/293762 419cb93a386Sopenharmony_ci 420cb93a386Sopenharmony_ci * SkSurface::asyncRescaleAndReadPixels and SkSurfaceasyncRescaleAndReadPixelsYUV420 421cb93a386Sopenharmony_ci now require explicit GrContext submit to guarantee finite time before callback 422cb93a386Sopenharmony_ci is invoked. 423cb93a386Sopenharmony_ci https://review.skia.org/292840 424cb93a386Sopenharmony_ci 425cb93a386Sopenharmony_ci * Add VkSharingMode field to GrVkImageInfo. 426cb93a386Sopenharmony_ci https://review.skia.org/293559 427cb93a386Sopenharmony_ci 428cb93a386Sopenharmony_ci * Move SkBitmapRegionDecoder into client_utils/android. 429cb93a386Sopenharmony_ci 430cb93a386Sopenharmony_ci * SkCanvas.clear and SkCanvas.drawColor now accept SkColor4f in addition to SkColor. 431cb93a386Sopenharmony_ci 432cb93a386Sopenharmony_ci * Remove SkSurface::MakeFromBackendTextureAsRenderTarget. 433cb93a386Sopenharmony_ci This factory existed to work around issues with GL_TEXTURE_RECTANGLE that existed 434cb93a386Sopenharmony_ci in Chrome's command buffer. Those issues have since been resolved. Use 435cb93a386Sopenharmony_ci SkSurface::MakeFromBackendTexutre or SkSurface::MakeFromBackendRenderTarget instead. 436cb93a386Sopenharmony_ci https://review.skia.org/292719 437cb93a386Sopenharmony_ci 438cb93a386Sopenharmony_ci * Adds submittedProc callback to GrFlushInfo which will be called when the work 439cb93a386Sopenharmony_ci from the flush call is submitted to the GPU. This is specifically useful for knowing 440cb93a386Sopenharmony_ci when semahpores sent with the flush have been submitted and can be waiting on. 441cb93a386Sopenharmony_ci https://review.skia.org/291078 442cb93a386Sopenharmony_ci 443cb93a386Sopenharmony_ci * GrContext submit is now required to be called in order to send GPU work to the 444cb93a386Sopenharmony_ci actual GPU. The flush calls simply produces 3D API specific objects that are ready 445cb93a386Sopenharmony_ci to be submitted (e.g. command buffers). For the GL backend, the flush will still 446cb93a386Sopenharmony_ci send commands to the driver. However, clients should still assume the must call 447cb93a386Sopenharmony_ci submit which is where any glFlush that is need for sync objects will be called. There, 448cb93a386Sopenharmony_ci are flushAndSubmit() functions of GrContext, SkSurface, and SkImage that will act 449cb93a386Sopenharmony_ci like the previous flush() functions. This will flush the work and immediately call 450cb93a386Sopenharmony_ci submit. 451cb93a386Sopenharmony_ci https://review.skia.org/289033 452cb93a386Sopenharmony_ci 453cb93a386Sopenharmony_ci * Remove deprecated version of flush calls on GrContext and SkSurface. 454cb93a386Sopenharmony_ci https://review.skia.org/2290540 455cb93a386Sopenharmony_ci 456cb93a386Sopenharmony_ci * SkCanvas::drawVertices and drawPatch now support mapping an SkShader without explicit 457cb93a386Sopenharmony_ci texture coordinates. If they're not supplied, the local positions (vertex position or 458cb93a386Sopenharmony_ci patch cubic positions) will be directly used to sample the SkShader. 459cb93a386Sopenharmony_ci https://review.skia.org/290130 460cb93a386Sopenharmony_ci 461cb93a386Sopenharmony_ci* * * 462cb93a386Sopenharmony_ci 463cb93a386Sopenharmony_ciMilestone 84 464cb93a386Sopenharmony_ci------------ 465cb93a386Sopenharmony_ci 466cb93a386Sopenharmony_ci * Add api on GrContext, updateBackendTexture that will upload new data to a 467cb93a386Sopenharmony_ci GrBackendTexture. 468cb93a386Sopenharmony_ci https://review.skia.org/288909 469cb93a386Sopenharmony_ci 470cb93a386Sopenharmony_ci * Add GrContext getter to SkSurface. 471cb93a386Sopenharmony_ci https://review.skia.org/289479 472cb93a386Sopenharmony_ci 473cb93a386Sopenharmony_ci * Deprecate GrContext and SkSurface flush() call and replace ith with flushAndSubmit(). 474cb93a386Sopenharmony_ci This only effects the default flush call that takes no parameters. 475cb93a386Sopenharmony_ci https://review.skia.org/289478 476cb93a386Sopenharmony_ci 477cb93a386Sopenharmony_ci * GrContext::createBackendTexture functions that initialize the texture no longer 478cb93a386Sopenharmony_ci guarantee that all the data has been uploaded and the gpu is done with the texture. 479cb93a386Sopenharmony_ci Instead the client can assume the upload work has been submitted to the gpu and they 480cb93a386Sopenharmony_ci must wait for that work to finish before deleting the texture. This can be done via 481cb93a386Sopenharmony_ci their own synchronization or by passing in a finish proc into the create calls which 482cb93a386Sopenharmony_ci will be called when it is safe to delete the texture (at least in terms of work 483cb93a386Sopenharmony_ci done during the create). 484cb93a386Sopenharmony_ci https://review.skia.org/286517 485cb93a386Sopenharmony_ci 486cb93a386Sopenharmony_ci * Remove unused SkMaskFilter helpers: compbine, compose 487cb93a386Sopenharmony_ci Note: shadermaskfilter will likely be removed next (clipShader should serve) 488cb93a386Sopenharmony_ci 489cb93a386Sopenharmony_ci * Add back SkCanvas::kPreserveLCDText_SaveLayerFlag to indicate that saveLayer() 490cb93a386Sopenharmony_ci will preserve LCD-text. All text in the layer must be drawn on opaque background 491cb93a386Sopenharmony_ci to ensure correct rendering. 492cb93a386Sopenharmony_ci 493cb93a386Sopenharmony_ci * Add the new directory client_utils/ for code that is specific to a single client and 494cb93a386Sopenharmony_ci should be considered separate from Skia proper. Move SkFrontBufferedStream into the 495cb93a386Sopenharmony_ci subdir android/. 496cb93a386Sopenharmony_ci 497cb93a386Sopenharmony_ci * SkBitmap and SkPixmap's erase() methods now treat their color parameters 498cb93a386Sopenharmony_ci consistently with the rest of Skia, with all SkColors and any untagged 499cb93a386Sopenharmony_ci SkColor4fs interpreted as sRGB, not as a color in the bitmap's color space. 500cb93a386Sopenharmony_ci SkPixmap::erase(SkColor4f) now takes an SkColorSpace, so you can pass 501cb93a386Sopenharmony_ci pixmap.colorSpace() if you want the old behavior. 502cb93a386Sopenharmony_ci 503cb93a386Sopenharmony_ci * SkCamera.h and SkMatrix44.h are DEPRECATED. 504cb93a386Sopenharmony_ci Use SkM44 if you want to have 3d transformations. 505cb93a386Sopenharmony_ci 506cb93a386Sopenharmony_ci * Changed Dilate and Erode image filters to take SkScalar for radius instead of int. While 507cb93a386Sopenharmony_ci the image filters themselves are defined in terms of discrete pixels, the radii provided by 508cb93a386Sopenharmony_ci the user are mapped through the CTM so taking ints forced over discretization. After mapping 509cb93a386Sopenharmony_ci through the CTM the radii are now rounded to pixels. 510cb93a386Sopenharmony_ci https://review.skia.org/281731 511cb93a386Sopenharmony_ci https://review.skia.org/282636 512cb93a386Sopenharmony_ci 513cb93a386Sopenharmony_ci * Updated the contract of GrContext and SkSurface flush calls in regards to semaphores. Made it 514cb93a386Sopenharmony_ci clear that the caller is responsible for deleting any initialized semaphores after the flush 515cb93a386Sopenharmony_ci call regardless if we were able to submit them or not. Also, allows skia to only submit a 516cb93a386Sopenharmony_ci subset of the requested semaphores if we failed to create some. 517cb93a386Sopenharmony_ci https://review.skia.org/282265 518cb93a386Sopenharmony_ci 519cb93a386Sopenharmony_ci 520cb93a386Sopenharmony_ci * SkCanvas::drawVertices will now always fill the triangles specified by the vertices. Previously, 521cb93a386Sopenharmony_ci vertices with no colors and no (texture coordinates or shader) would be drawn in wireframe. 522cb93a386Sopenharmony_ci https://review.skia.org/282043 523cb93a386Sopenharmony_ci 524cb93a386Sopenharmony_ci* * * 525cb93a386Sopenharmony_ci 526cb93a386Sopenharmony_ciMilestone 83 527cb93a386Sopenharmony_ci------------ 528cb93a386Sopenharmony_ci 529cb93a386Sopenharmony_ci * Remove localmatrix option from SkShaders::[Blend, Lerp] 530cb93a386Sopenharmony_ci 531cb93a386Sopenharmony_ci * Fill out Direct3D parameters for backend textures and backend rendertargets. 532cb93a386Sopenharmony_ci 533cb93a386Sopenharmony_ci * SkImage::makeTextureImage() takes an optional SkBudgeted param 534cb93a386Sopenharmony_ci 535cb93a386Sopenharmony_ci * Made non-GL builds of GPU backend more robust. 536cb93a386Sopenharmony_ci https://review.skia.org/277456 537cb93a386Sopenharmony_ci 538cb93a386Sopenharmony_ci * MoltenVK support removed. Use Metal backend instead. 539cb93a386Sopenharmony_ci https://review.skia.org/277612 540cb93a386Sopenharmony_ci 541cb93a386Sopenharmony_ci* * * 542cb93a386Sopenharmony_ci 543cb93a386Sopenharmony_ciMilestone 82 544cb93a386Sopenharmony_ci------------ 545cb93a386Sopenharmony_ci 546cb93a386Sopenharmony_ci * Removed drawBitmap and related functions from SkDevice; all public drawBitmap functions on 547cb93a386Sopenharmony_ci SkCanvas automatically wrap the bitmap in an SkImage and call the equivalent drawImage function. 548cb93a386Sopenharmony_ci Drawing mutable SkBitmaps will now incur a mandatory copy. Switch to using SkImage directly or 549cb93a386Sopenharmony_ci mark the bitmap as immutable before drawing. 550cb93a386Sopenharmony_ci 551cb93a386Sopenharmony_ci * Removed "volatile" flag from SkVertices. All SkVertices objects are assumed to be 552cb93a386Sopenharmony_ci volatile (the previous default behavior). 553cb93a386Sopenharmony_ci 554cb93a386Sopenharmony_ci * Removed exotic legacy bitmap functions from SkCanvas (drawBitmapLattic, drawBitmapNine); the 555cb93a386Sopenharmony_ci exotic SkImage functions still exist. 556cb93a386Sopenharmony_ci 557cb93a386Sopenharmony_ci * Make it possible to selectively turn on/off individual encoders/decoders, 558cb93a386Sopenharmony_ci using skia_use_(libpng/libjpeg_turbo/libwebp)(decode/encode). 559cb93a386Sopenharmony_ci 560cb93a386Sopenharmony_ci * Removed GrGpuResource, GrSurface, and GrTexture from public api. These were not 561cb93a386Sopenharmony_ci meant to be public, and we now can move them into src. Also removed getTexture 562cb93a386Sopenharmony_ci function from SkImage.h 563cb93a386Sopenharmony_ci 564cb93a386Sopenharmony_ci * Removed Bones from SkVertices 565cb93a386Sopenharmony_ci 566cb93a386Sopenharmony_ci * Added a field to GrContextOptions that controls whether GL errors are checked after 567cb93a386Sopenharmony_ci GL calls that allocate textures, etc. It also controls checking for shader compile 568cb93a386Sopenharmony_ci success, and program linking success. 569cb93a386Sopenharmony_ci 570cb93a386Sopenharmony_ci * Made SkDeferredDisplayList.h officially part of the public API (i.e., moved it to 571cb93a386Sopenharmony_ci include/core). Also added a ProgramIterator to SkDeferredDisplayList which allows 572cb93a386Sopenharmony_ci clients to pre-compile some of the shaders the DDL requires. 573cb93a386Sopenharmony_ci 574cb93a386Sopenharmony_ci * Added two new helper methods to SkSurfaceCharacterization: createBackendFormat and 575cb93a386Sopenharmony_ci createFBO0. These make it easier for clients to create new surface characterizations that 576cb93a386Sopenharmony_ci differ only a little from an existing surface characterization. 577cb93a386Sopenharmony_ci 578cb93a386Sopenharmony_ci * Removed SkTMax and SkTMin. 579cb93a386Sopenharmony_ci * Removed SkTClamp and SkClampMax. 580cb93a386Sopenharmony_ci * Removed SkScalarClampMax and SkScalarPin. 581cb93a386Sopenharmony_ci * Removed SkMax32 and SkMin32. 582cb93a386Sopenharmony_ci * Removed SkMaxScalar and SkMinScalar. 583cb93a386Sopenharmony_ci 584cb93a386Sopenharmony_ci * SkColorSetA now warns if the result is unused. 585cb93a386Sopenharmony_ci 586cb93a386Sopenharmony_ci * An SkImageInfo with a null SkColorSpace passed to SkCodec::getPixels() and 587cb93a386Sopenharmony_ci related calls is treated as a request to do no color correction at decode 588cb93a386Sopenharmony_ci time. 589cb93a386Sopenharmony_ci 590cb93a386Sopenharmony_ci * Add new APIs to add attributes to document structure node when 591cb93a386Sopenharmony_ci creating a tagged PDF. 592cb93a386Sopenharmony_ci 593cb93a386Sopenharmony_ci * Remove CGFontRef parameter from SkCreateTypefaceFromCTFont. 594cb93a386Sopenharmony_ci Use CTFontManagerCreateFontDescriptorFromData instead of 595cb93a386Sopenharmony_ci CGFontCreateWithDataProvider to create CTFonts to avoid memory use issues. 596cb93a386Sopenharmony_ci 597cb93a386Sopenharmony_ci * Added SkCodec:: and SkAndroidCodec::getICCProfile for reporting the native 598cb93a386Sopenharmony_ci ICC profile of an encoded image, even if it doesn't map to an SkColorSpace. 599cb93a386Sopenharmony_ci 600cb93a386Sopenharmony_ci * SkSurface::ReplaceBackendTexture takes ContentChangeMode as a parameter, 601cb93a386Sopenharmony_ci which allow callers to specify whether retain a copy of the current content. 602cb93a386Sopenharmony_ci 603cb93a386Sopenharmony_ci * Enforce the existing documentation in SkCanvas::saveLayer that it ignores 604cb93a386Sopenharmony_ci any mask filter on the restore SkPaint. The 'coverage' of a layer is 605cb93a386Sopenharmony_ci ill-defined, and masking should be handled by pre-clipping or using the 606cb93a386Sopenharmony_ci auxiliary clip mask image of the SaveLayerRec. 607cb93a386Sopenharmony_ci 608cb93a386Sopenharmony_ciMilestone 81 609cb93a386Sopenharmony_ci------------ 610cb93a386Sopenharmony_ci 611cb93a386Sopenharmony_ci * Added support for GL_NV_fence extension. 612cb93a386Sopenharmony_ci 613cb93a386Sopenharmony_ci * Make SkImageInfo::validRowBytes require rowBytes to be pixel aligned. This 614cb93a386Sopenharmony_ci makes SkBitmap match the behavior of raster SkSurfaces in rejecting 615cb93a386Sopenharmony_ci non-aligned rowBytes. 616cb93a386Sopenharmony_ci 617cb93a386Sopenharmony_ci * Added an SkImage::MakeRasterFromCompressed entry point. Also updated 618cb93a386Sopenharmony_ci SkImage::MakeFromCompressed to decompress the compressed image data if 619cb93a386Sopenharmony_ci the GPU doesn't support the specified compression type (i.e., macOS Metal 620cb93a386Sopenharmony_ci doesn't support BC1_RGB8_UNORM so such compressed images will always be 621cb93a386Sopenharmony_ci decompressed on that platform). 622cb93a386Sopenharmony_ci 623cb93a386Sopenharmony_ci * Added support for BC1 RGBA compressed textures 624cb93a386Sopenharmony_ci 625cb93a386Sopenharmony_ci * Added CachingHint to SkImage::makeRasterImage 626cb93a386Sopenharmony_ci 627cb93a386Sopenharmony_ci * Added SkAnimatedImage::getCurrentFrame() 628cb93a386Sopenharmony_ci 629cb93a386Sopenharmony_ci * Add support to create an SkSurface from an MTKView, with delayed acquisition of 630cb93a386Sopenharmony_ci the MTLDrawable. 631cb93a386Sopenharmony_ci Entry point: SkSurface::MakeFromMTKView 632cb93a386Sopenharmony_ci 633cb93a386Sopenharmony_ci * Removed SkIRect::EmptyIRect(). Use SkIRect::MakeEmpty() instead. 634cb93a386Sopenharmony_ci https://review.skia.org/262382/ 635cb93a386Sopenharmony_ci 636cb93a386Sopenharmony_ci * Moved SkRuntimeEffect to public API. This is the new (experimental) interface to custom SkSL 637cb93a386Sopenharmony_ci shaders and color filters. 638cb93a386Sopenharmony_ci 639cb93a386Sopenharmony_ci * Added BC1 compressed format support. Metal and Vulkan seem to only support the BC 640cb93a386Sopenharmony_ci formats on desktop machines. 641cb93a386Sopenharmony_ci 642cb93a386Sopenharmony_ci * Added compressed format support for backend texture creation API. 643cb93a386Sopenharmony_ci This adds the following new entry points: 644cb93a386Sopenharmony_ci GrContext::compressedBackendFormat 645cb93a386Sopenharmony_ci GrContext::createCompressedBackendTexture 646cb93a386Sopenharmony_ci The latter method comes in variants that allow color-initialized and 647cb93a386Sopenharmony_ci compressed texture data initialized. 648cb93a386Sopenharmony_ci 649cb93a386Sopenharmony_ci * Added SkMatrix::MakeTrans(SkIVector) 650cb93a386Sopenharmony_ci https://review.skia.org/259804 651cb93a386Sopenharmony_ci 652cb93a386Sopenharmony_ci 653cb93a386Sopenharmony_ci* * * 654cb93a386Sopenharmony_ci 655cb93a386Sopenharmony_ciMilestone 80 656cb93a386Sopenharmony_ci------------ 657cb93a386Sopenharmony_ci 658cb93a386Sopenharmony_ci * Removed SkSize& SkSize::operator=(const SkISize&) 659cb93a386Sopenharmony_ci https://review.skia.org/257880 660cb93a386Sopenharmony_ci 661cb93a386Sopenharmony_ci * SkISize width() and height() now constexpr 662cb93a386Sopenharmony_ci https://review.skia.org/257680 663cb93a386Sopenharmony_ci 664cb93a386Sopenharmony_ci * Added SkMatrix::MakeTrans(SkVector) and SkRect::makeOffset(SkVector). 665cb93a386Sopenharmony_ci https://review.skia.org/255782 666cb93a386Sopenharmony_ci 667cb93a386Sopenharmony_ci * Added SkImageInfo::MakeA8(SkISize) and added optional color space parameter to 668cb93a386Sopenharmony_ci SkImageInfo::MakeN32Premul(SkISize). 669cb93a386Sopenharmony_ci 670cb93a386Sopenharmony_ci * Added dimensions() and getFrameCount() to SkAnimatedImage 671cb93a386Sopenharmony_ci https://review.skia.org/253542 672cb93a386Sopenharmony_ci 673cb93a386Sopenharmony_ci * Removed SkMatrix44 version of toXYZD50 from SkColorSpace. Switched to skcms types in 674cb93a386Sopenharmony_ci transferFn, invTrasnferFn, and gamutTransformTo functions. 675cb93a386Sopenharmony_ci https://review.skia.org/252596 676cb93a386Sopenharmony_ci 677cb93a386Sopenharmony_ci * Removed rotation and YUV support from SkColorMatrix 678cb93a386Sopenharmony_ci https://review.skia.org/252188 679cb93a386Sopenharmony_ci 680cb93a386Sopenharmony_ci * Added kBT2020_SkYUVColorSpace. This is BT.2020's YCbCr conversion (non-constant-luminance). 681cb93a386Sopenharmony_ci https://review.skia.org/252160 682cb93a386Sopenharmony_ci 683cb93a386Sopenharmony_ci * Remove old async read pixels APIs 684cb93a386Sopenharmony_ci https://review.skia.org/251198 685cb93a386Sopenharmony_ci 686cb93a386Sopenharmony_ci * Expose SkBlendModeCoeff and SkBlendMode_AsCoeff for Porter-Duff blend modes. 687cb93a386Sopenharmony_ci https://review.skia.org/252600 688cb93a386Sopenharmony_ci 689cb93a386Sopenharmony_ci* * * 690cb93a386Sopenharmony_ci 691cb93a386Sopenharmony_ciMilestone 79 692cb93a386Sopenharmony_ci------------ 693cb93a386Sopenharmony_ci 694cb93a386Sopenharmony_ci * SkTextBlob::Iter to discover the glyph indices and typefaces in each run 695cb93a386Sopenharmony_ci https://review.skia.org/246296 696cb93a386Sopenharmony_ci 697cb93a386Sopenharmony_ci * Added support for PQ and HLG transfer functions to SkColorSpace. 698cb93a386Sopenharmony_ci https://review.skia.org/249000 699cb93a386Sopenharmony_ci 700cb93a386Sopenharmony_ci * Added new api on GrContext ComputeImageSize. This replaces the hold static helper 701cb93a386Sopenharmony_ci ComputeTextureSize. 702cb93a386Sopenharmony_ci https://review.skia.org/247337 703cb93a386Sopenharmony_ci 704cb93a386Sopenharmony_ci * New versions of SkSurface async-rescale-and read APIs that allow client to extend 705cb93a386Sopenharmony_ci the lifetime of the result data. Old versions are deprecated. 706cb93a386Sopenharmony_ci https://review.skia.org/245457 707cb93a386Sopenharmony_ci 708cb93a386Sopenharmony_ci * Add SkColorInfo. It's dimensionless SkImageInfo. 709cb93a386Sopenharmony_ci https://review.skia.org/245261 710cb93a386Sopenharmony_ci 711cb93a386Sopenharmony_ci * Added SkPixmap-based createBackendTexture method to GrContext. This allows clients to create 712cb93a386Sopenharmony_ci backend resources (initialized with texture data) that Skia/Ganesh doesn't know about/track. 713cb93a386Sopenharmony_ci https://review.skia.org/244676 714cb93a386Sopenharmony_ci 715cb93a386Sopenharmony_ci * Add explicit src and dst colorspace parameters to SkColorFilter::filterColor4f() 716cb93a386Sopenharmony_ci https://review.skia.org/244882 717cb93a386Sopenharmony_ci 718cb93a386Sopenharmony_ci * Remove Vulkan/Metal float32 RGBA texture support 719cb93a386Sopenharmony_ci https://review.skia.org/244881 720cb93a386Sopenharmony_ci 721cb93a386Sopenharmony_ci * Add SkSurface::MakeFromCAMetalLayer 722cb93a386Sopenharmony_ci https://review.skia.org/242563 723cb93a386Sopenharmony_ci 724cb93a386Sopenharmony_ci * Added kAlpha_F16_SkColorType, kRG_F16_SkColorType and kRGBA_16161616_SkColorType. 725cb93a386Sopenharmony_ci This is intended to help support HDR YUV uses case (e.g., P010 and P016). As such, 726cb93a386Sopenharmony_ci the addition is focused on allowing creation of SkPixmaps and SkImages and not 727cb93a386Sopenharmony_ci SkSurfaces (i.e., who wants to render to render to these?) 728cb93a386Sopenharmony_ci https://review.skia.org/241357 729cb93a386Sopenharmony_ci 730cb93a386Sopenharmony_ci * Start to move nested SkPath types (e.g. Direction, Verb) up to root level in SkPathTypes.h 731cb93a386Sopenharmony_ci https://review.skia.org/241079 732cb93a386Sopenharmony_ci 733cb93a386Sopenharmony_ci * Remove isRectContour and ksNestedFillRects from public 734cb93a386Sopenharmony_ci https://review.skia.org/241078 735cb93a386Sopenharmony_ci 736cb93a386Sopenharmony_ci * Added kRG_88_SkColorType. This is intended to help support YUV uses case (e.g., NV12). 737cb93a386Sopenharmony_ci As such, the addition is focused on allowing creation of SkPixmaps and SkImages and not 738cb93a386Sopenharmony_ci SkSurfaces (i.e., who wants to render to RG?) 739cb93a386Sopenharmony_ci https://review.skia.org/239930 740cb93a386Sopenharmony_ci https://review.skia.org/235797 741cb93a386Sopenharmony_ci 742cb93a386Sopenharmony_ci * Make the size of program/pipeline caches configurable via 743cb93a386Sopenharmony_ci GrContextOptions::fRuntimeProgramCacheSize 744cb93a386Sopenharmony_ci https://review.skia.org/239756 745cb93a386Sopenharmony_ci 746cb93a386Sopenharmony_ci * Added kAlpha_16_SkColorType and kRG_1616_SkColorType. This is intended to help support HDR YUV 747cb93a386Sopenharmony_ci uses case (e.g., P010 and P016). As such, the addition is focused on allowing creation of 748cb93a386Sopenharmony_ci SkPixmaps and SkImages and not SkSurfaces (i.e., who wants to render to render to these?) 749cb93a386Sopenharmony_ci https://review.skia.org/239930 750cb93a386Sopenharmony_ci 751cb93a386Sopenharmony_ci * Add GrContext::precompileShader to allow up-front compilation of previously-cached shaders. 752cb93a386Sopenharmony_ci https://review.skia.org/239438 753cb93a386Sopenharmony_ci 754cb93a386Sopenharmony_ci* * * 755cb93a386Sopenharmony_ci 756cb93a386Sopenharmony_ciMilestone 78 757cb93a386Sopenharmony_ci------------ 758cb93a386Sopenharmony_ci * Added RELEASE_NOTES.txt file 759cb93a386Sopenharmony_ci https://review.skia.org/229760 760cb93a386Sopenharmony_ci 761cb93a386Sopenharmony_ci * SkDrawLooper is no longer supported in SkPaint or SkCanvas. 762cb93a386Sopenharmony_ci https://review.skia.org/230579 763cb93a386Sopenharmony_ci https://review.skia.org/231736 764cb93a386Sopenharmony_ci 765cb93a386Sopenharmony_ci * SkPath::Iter::next() now ignores its consumDegenerates bools. Those will so 766cb93a386Sopenharmony_ci go away entirely 767cb93a386Sopenharmony_ci https://review.skia.org/235104 768cb93a386Sopenharmony_ci 769cb93a386Sopenharmony_ci * SkImage: new factories: DecodeToRaster, DecodeToTexture 770cb93a386Sopenharmony_ci https://review.skia.org/234476 771cb93a386Sopenharmony_ci 772cb93a386Sopenharmony_ci * SkImageFilter API refactor started: 773cb93a386Sopenharmony_ci - Provide new factory API in include/effects/SkImageFilters 774cb93a386Sopenharmony_ci - Consolidated enum types to use SkTileMode and SkColorChannel 775cb93a386Sopenharmony_ci - Hide filter implementation classes 776cb93a386Sopenharmony_ci - Hide previously public functions on SkImageFilter that were intended for 777cb93a386Sopenharmony_ci internal use only 778cb93a386Sopenharmony_ci https://review.skia.org/230198 779cb93a386Sopenharmony_ci https://review.skia.org/230876 780cb93a386Sopenharmony_ci https://review.skia.org/231256 781cb93a386Sopenharmony_ci 782cb93a386Sopenharmony_ci * SkColorFilters::HSLAMatrix - new matrix color filter operating in HSLA 783cb93a386Sopenharmony_ci space. 784cb93a386Sopenharmony_ci https://review.skia.org/231736 785cb93a386Sopenharmony_ci 786cb93a386Sopenharmony_ci * Modify GrBackendFormat getters to not return internal pointers. Use an enum 787cb93a386Sopenharmony_ci class for GL formats. 788cb93a386Sopenharmony_ci https://review.skia.org/233160 789cb93a386Sopenharmony_ci 790cb93a386Sopenharmony_ci * Expose GrContext::dump() when SK_ENABLE_DUMP_GPU is defined. 791cb93a386Sopenharmony_ci https://review.skia.org/233557 792cb93a386Sopenharmony_ci 793cb93a386Sopenharmony_ci * Vulkan backend now supports YCbCr sampler for I420 Vulkan images that are 794cb93a386Sopenharmony_ci not backed by external images. 795cb93a386Sopenharmony_ci https://review.skia.org/233776 796cb93a386Sopenharmony_ci 797cb93a386Sopenharmony_ci * Add SkCodec::SelectionPolicy for distinguishing between decoding a still 798cb93a386Sopenharmony_ci image or an image sequence for a container format that has both (e.g. HEIF). 799cb93a386Sopenharmony_ci https://review.skia.org/232839 800cb93a386Sopenharmony_ci 801cb93a386Sopenharmony_ci * SkImage::makeTextureImage and SkImage::MakeCrossContextFromPixmap no longer 802cb93a386Sopenharmony_ci take an SkColorSpace parameter. It was unused. 803cb93a386Sopenharmony_ci https://review.skia.org/234579 804cb93a386Sopenharmony_ci https://review.skia.org/234912 805cb93a386Sopenharmony_ci 806cb93a386Sopenharmony_ci * SkImage::reinterpretColorSpace - to reinterpret image contents in a new 807cb93a386Sopenharmony_ci color space. 808cb93a386Sopenharmony_ci https://review.skia.org/234328 809cb93a386Sopenharmony_ci 810cb93a386Sopenharmony_ci * Removed SkImage::MakeCrossContextFromEncoded. 811cb93a386Sopenharmony_ci https://review.skia.org/234912 812cb93a386Sopenharmony_ci 813cb93a386Sopenharmony_ci * Add Metal support for GrFence, GrSemaphore, and GrBackendSemaphore 814cb93a386Sopenharmony_ci https://review.skia.org/233416 815cb93a386Sopenharmony_ci 816cb93a386Sopenharmony_ci * SkMallocPixelRef: remove MakeDirect and MakeWithProc from API. 817cb93a386Sopenharmony_ci https://review.skia.org/234660 818cb93a386Sopenharmony_ci 819cb93a386Sopenharmony_ci * Remove 4-parameter variant of SkRect::join() and intersect(), and 820cb93a386Sopenharmony_ci noemptycheck variants of intersect(). 821cb93a386Sopenharmony_ci https://review.skia.org/235832 822cb93a386Sopenharmony_ci https://review.skia.org/237142 823cb93a386Sopenharmony_ci 824cb93a386Sopenharmony_ci * Remove unused sk_sp comparison operators. 825cb93a386Sopenharmony_ci https://review.skia.org/236942 826cb93a386Sopenharmony_ci 827cb93a386Sopenharmony_ci * Add SkColor4f variant to experimental_DrawEdgeAAQuad for SkiaRenderer. 828cb93a386Sopenharmony_ci https://review.skia.org/237492 829cb93a386Sopenharmony_ci 830cb93a386Sopenharmony_ci * Deprecated maxCount resource cache limit for Ganesh. 831cb93a386Sopenharmony_ci This hasn't been relevant for a long time. 832cb93a386Sopenharmony_ci 833cb93a386Sopenharmony_ci * Changed GrContextOptions' fDisallowGLSLBinaryCaching to fShaderCacheStrategy, 834cb93a386Sopenharmony_ci and allow caching SkSL. 835cb93a386Sopenharmony_ci https://review.skia.org/238856 836cb93a386Sopenharmony_ci 837cb93a386Sopenharmony_ci 838