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