Heather Miller | 118a407 | 2019-07-25 11:33:30 -0400 | [diff] [blame] | 1 | Skia Graphics Release Notes |
| 2 | |
| 3 | This file includes a list of high level updates for each milestone release. |
| 4 | |
Hal Canary | 9e514a1 | 2019-10-01 15:15:36 -0400 | [diff] [blame] | 5 | * * * |
Mike Reed | 430470d | 2019-09-12 17:09:12 -0400 | [diff] [blame] | 6 | |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 7 | Milestone 82 |
Heather Miller | d5153bb | 2019-10-17 00:03:36 -0400 | [diff] [blame] | 8 | |
Heather Miller | cc13acb | 2019-10-22 15:45:45 -0400 | [diff] [blame] | 9 | <Insert new notes here- top is most recent.> |
Brian Osman | aba642c | 2020-02-06 12:52:25 -0500 | [diff] [blame] | 10 | * Removed SkScalarClampMax and SkScalarPin. |
Brian Osman | 7f36405 | 2020-02-06 11:25:43 -0500 | [diff] [blame] | 11 | * Removed SkMax32 and SkMin32. |
Brian Osman | 116b33e | 2020-02-05 13:34:09 -0500 | [diff] [blame] | 12 | * Removed SkMaxScalar and SkMinScalar. |
| 13 | |
Allen Bauer | a428c7b | 2020-02-04 14:27:22 -0800 | [diff] [blame] | 14 | * SkColorSetA now warns if the result is unused. |
| 15 | |
Leon Scroggins III | 196f319 | 2020-02-03 12:39:54 -0500 | [diff] [blame] | 16 | * An SkImageInfo with a null SkColorSpace passed to SkCodec::getPixels() and |
| 17 | related calls is treated as a request to do no color correction at decode |
| 18 | time. |
Dominik Röttsches | c9b06ca | 2020-01-31 18:13:37 +0200 | [diff] [blame] | 19 | |
| 20 | * Remove CGFontRef parameter from SkCreateTypefaceFromCTFont. |
| 21 | Use CTFontManagerCreateFontDescriptorFromData instead of |
| 22 | CGFontCreateWithDataProvider to create CTFonts to avoid memory use issues. |
| 23 | |
Leon Scroggins III | 22d08b5 | 2020-01-30 16:03:28 -0500 | [diff] [blame] | 24 | * Added SkAndroidCodec::getICCProfile for reporting the native ICC profile of |
| 25 | an encoded image, even if it doesn't map to an SkColorSpace. |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 26 | |
| 27 | * * * |
| 28 | |
| 29 | Milestone 81 |
| 30 | |
Brian Salomon | 87c3142 | 2020-01-22 09:59:56 -0500 | [diff] [blame] | 31 | * Added support for GL_NV_fence extension. |
Heather Miller | 2e046a2 | 2019-12-05 15:27:42 -0500 | [diff] [blame] | 32 | |
Leon Scroggins III | 3eedc97 | 2020-01-22 10:44:00 -0500 | [diff] [blame] | 33 | * Make SkImageInfo::validRowBytes require rowBytes to be pixel aligned. This |
| 34 | makes SkBitmap match the behavior of raster SkSurfaces in rejecting |
| 35 | non-aligned rowBytes. |
| 36 | |
Robert Phillips | 99dead9 | 2020-01-27 16:11:57 -0500 | [diff] [blame] | 37 | * Added an SkImage::MakeRasterFromCompressed entry point. Also updated |
| 38 | SkImage::MakeFromCompressed to decompress the compressed image data if |
| 39 | the GPU doesn't support the specified compression type (i.e., macOS Metal |
| 40 | doesn't support BC1_RGB8_UNORM so such compressed images will always be |
| 41 | decompressed on that platform). |
| 42 | |
Robert Phillips | b085527 | 2020-01-15 12:56:52 -0500 | [diff] [blame] | 43 | * Added support for BC1 RGBA compressed textures |
| 44 | |
Brian Osman | a88cab1 | 2020-01-09 10:21:44 -0500 | [diff] [blame] | 45 | * Added CachingHint to SkImage::makeRasterImage |
| 46 | |
Kevin Lubick | f5bc8fb | 2020-01-08 13:29:31 -0500 | [diff] [blame] | 47 | * Added SkAnimatedImage::getCurrentFrame() |
| 48 | |
Jim Van Verth | e276701 | 2020-01-08 12:15:44 -0500 | [diff] [blame] | 49 | * Add support to create an SkSurface from an MTKView, with delayed acquisition of |
| 50 | the MTLDrawable. |
| 51 | Entry point: SkSurface::MakeFromMTKView |
| 52 | |
Brian Salomon | 44207f3 | 2020-01-06 15:20:18 -0500 | [diff] [blame] | 53 | * Removed SkIRect::EmptyIRect(). Use SkIRect::MakeEmpty() instead. |
| 54 | https://review.skia.org/262382/ |
| 55 | |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 56 | * Moved SkRuntimeEffect to public API. This is the new (experimental) interface to custom SkSL |
| 57 | shaders and color filters. |
Brian Osman | ee426f2 | 2020-01-02 11:55:24 -0500 | [diff] [blame] | 58 | |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 59 | * Added BC1 compressed format support. Metal and Vulkan seem to only support the BC |
| 60 | formats on desktop machines. |
Robert Phillips | 8f259a0 | 2019-12-20 11:32:27 -0500 | [diff] [blame] | 61 | |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 62 | * Added compressed format support for backend texture creation API. |
| 63 | This adds the following new entry points: |
| 64 | GrContext::compressedBackendFormat |
| 65 | GrContext::createCompressedBackendTexture |
| 66 | The latter method comes in variants that allow color-initialized and |
| 67 | compressed texture data initialized. |
Robert Phillips | b915c94 | 2019-12-17 14:44:37 -0500 | [diff] [blame] | 68 | |
Brian Salomon | a6069a1 | 2019-12-13 10:48:33 -0500 | [diff] [blame] | 69 | * Added SkMatrix::MakeTrans(SkIVector) |
| 70 | https://review.skia.org/259804 |
Heather Miller | 2e046a2 | 2019-12-05 15:27:42 -0500 | [diff] [blame] | 71 | |
Heather Miller | ebc4d62 | 2020-01-30 13:57:13 -0500 | [diff] [blame] | 72 | * * * |
| 73 | |
Heather Miller | 2e046a2 | 2019-12-05 15:27:42 -0500 | [diff] [blame] | 74 | Milestone 80 |
| 75 | |
Greg Daniel | f0e04f0 | 2019-12-04 15:17:54 -0500 | [diff] [blame] | 76 | * For Vulkan backend, we now require that the VkDevice, Queue, and Instance outlive |
| 77 | either the destruction or abandoning of the GrContext. Additionally, all |
| 78 | GrBackendTextures created via GrContext::createBackendTexture calls must be deleted |
| 79 | before destroying or abandoning the GrContext. |
| 80 | https://review.skia.org/257921 |
| 81 | |
Brian Salomon | 4e1066f | 2019-12-04 10:33:52 -0500 | [diff] [blame] | 82 | * Removed SkSize& SkSize::operator=(const SkISize&) |
| 83 | https://review.skia.org/257880 |
| 84 | |
Brian Salomon | 8a99a41 | 2019-12-04 11:05:35 -0500 | [diff] [blame] | 85 | * SkISize width() and height() now constexpr |
| 86 | https://review.skia.org/257680 |
| 87 | |
Brian Salomon | e21af50 | 2019-11-22 16:56:36 -0500 | [diff] [blame] | 88 | * Added SkMatrix::MakeTrans(SkVector) and SkRect::makeOffset(SkVector). |
| 89 | https://review.skia.org/255782 |
| 90 | |
Brian Salomon | c75bc03 | 2019-11-11 13:47:25 -0500 | [diff] [blame] | 91 | * Added SkImageInfo::MakeA8(SkISize) and added optional color space parameter to |
| 92 | SkImageInfo::MakeN32Premul(SkISize). |
Heather Miller | cc13acb | 2019-10-22 15:45:45 -0400 | [diff] [blame] | 93 | |
Kevin Lubick | 47bd9f1 | 2019-11-08 06:55:15 -0800 | [diff] [blame] | 94 | * Added dimensions() and getFrameCount() to SkAnimatedImage |
| 95 | https://review.skia.org/253542 |
| 96 | |
Brian Osman | 09ee112 | 2019-11-05 11:41:16 -0500 | [diff] [blame] | 97 | * Removed SkMatrix44 version of toXYZD50 from SkColorSpace. Switched to skcms types in |
| 98 | transferFn, invTrasnferFn, and gamutTransformTo functions. |
| 99 | https://review.skia.org/252596 |
| 100 | |
Brian Osman | e36d030 | 2019-11-01 17:10:28 -0400 | [diff] [blame] | 101 | * Removed rotation and YUV support from SkColorMatrix |
| 102 | https://review.skia.org/252188 |
| 103 | |
Brian Osman | 2b73e66 | 2019-11-01 10:02:24 -0400 | [diff] [blame] | 104 | * Added kBT2020_SkYUVColorSpace. This is BT.2020's YCbCr conversion (non-constant-luminance). |
| 105 | https://review.skia.org/252160 |
| 106 | |
Brian Salomon | 3683a4f | 2019-10-28 09:16:47 -0400 | [diff] [blame] | 107 | * Remove old async read pixels APIs |
| 108 | https://review.skia.org/251198 |
| 109 | |
Michael Ludwig | cc83687 | 2019-11-04 15:01:52 -0500 | [diff] [blame] | 110 | * Expose SkBlendModeCoeff and SkBlendMode_AsCoeff for Porter-Duff blend modes. |
| 111 | https://review.skia.org/252600 |
| 112 | |
Heather Miller | cc13acb | 2019-10-22 15:45:45 -0400 | [diff] [blame] | 113 | * * * |
| 114 | |
| 115 | Milestone 79 |
Heather Miller | d5153bb | 2019-10-17 00:03:36 -0400 | [diff] [blame] | 116 | |
Mike Reed | a32654c | 2019-10-04 10:18:34 -0400 | [diff] [blame] | 117 | * SkTextBlob::Iter to discover the glyph indices and typefaces in each run |
| 118 | https://skia-review.googlesource.com/246296 |
| 119 | |
Brian Osman | 11e6aa8 | 2019-10-16 13:58:42 -0400 | [diff] [blame] | 120 | * Added support for PQ and HLG transfer functions to SkColorSpace. |
Heather Miller | d5153bb | 2019-10-17 00:03:36 -0400 | [diff] [blame] | 121 | https://skia-review.googlesource.com/c/skia/+/249000 |
Brian Osman | 11e6aa8 | 2019-10-16 13:58:42 -0400 | [diff] [blame] | 122 | |
Greg Daniel | 8b66617 | 2019-10-09 12:38:22 -0400 | [diff] [blame] | 123 | * Added new api on GrContext ComputeImageSize. This replaces the hold static helper |
| 124 | ComputeTextureSize. |
Heather Miller | d5153bb | 2019-10-17 00:03:36 -0400 | [diff] [blame] | 125 | https://skia-review.googlesource.com/c/skia/+/247337 |
Hal Canary | 9e514a1 | 2019-10-01 15:15:36 -0400 | [diff] [blame] | 126 | |
Brian Salomon | 9241a6d | 2019-10-03 13:26:54 -0400 | [diff] [blame] | 127 | * New versions of SkSurface async-rescale-and read APIs that allow client to extend |
| 128 | the lifetime of the result data. Old versions are deprecated. |
| 129 | https://review.skia.org/245457 |
| 130 | |
Hal Canary | 9e514a1 | 2019-10-01 15:15:36 -0400 | [diff] [blame] | 131 | * Add SkColorInfo. It's dimensionless SkImageInfo. |
| 132 | https://review.skia.org/245261 |
| 133 | |
| 134 | * Added SkPixmap-based createBackendTexture method to GrContext. This allows clients to create |
| 135 | backend resources (initialized with texture data) that Skia/Ganesh doesn't know about/track. |
| 136 | https://review.skia.org/244676 |
| 137 | |
| 138 | * Add explicit src and dst colorspace parameters to SkColorFilter::filterColor4f() |
| 139 | https://review.skia.org/244882 |
| 140 | |
| 141 | * Remove Vulkan/Metal float32 RGBA texture support |
| 142 | https://review.skia.org/244881 |
| 143 | |
| 144 | * Add SkSurface::MakeFromCAMetalLayer |
| 145 | https://review.skia.org/242563 |
| 146 | |
| 147 | * Added kAlpha_F16_SkColorType, kRG_F16_SkColorType and kRGBA_16161616_SkColorType. |
| 148 | This is intended to help support HDR YUV uses case (e.g., P010 and P016). As such, |
| 149 | the addition is focused on allowing creation of SkPixmaps and SkImages and not |
| 150 | SkSurfaces (i.e., who wants to render to render to these?) |
| 151 | https://review.skia.org/241357 |
| 152 | |
| 153 | * Start to move nested SkPath types (e.g. Direction, Verb) up to root level in SkPathTypes.h |
| 154 | https://review.skia.org/241079 |
| 155 | |
| 156 | * Remove isRectContour and ksNestedFillRects from public |
| 157 | https://review.skia.org/241078 |
| 158 | |
| 159 | * Added kRG_88_SkColorType. This is intended to help support YUV uses case (e.g., NV12). |
| 160 | As such, the addition is focused on allowing creation of SkPixmaps and SkImages and not |
| 161 | SkSurfaces (i.e., who wants to render to RG?) |
| 162 | https://review.skia.org/239930 |
| 163 | https://review.skia.org/235797 |
| 164 | |
Brian Osman | 172bb44 | 2019-09-06 10:16:02 -0400 | [diff] [blame] | 165 | * Make the size of program/pipeline caches configurable via |
| 166 | GrContextOptions::fRuntimeProgramCacheSize |
| 167 | https://review.skia.org/239756 |
| 168 | |
Hal Canary | 9e514a1 | 2019-10-01 15:15:36 -0400 | [diff] [blame] | 169 | * Added kAlpha_16_SkColorType and kRG_1616_SkColorType. This is intended to help support HDR YUV |
| 170 | uses case (e.g., P010 and P016). As such, the addition is focused on allowing creation of |
| 171 | SkPixmaps and SkImages and not SkSurfaces (i.e., who wants to render to render to these?) |
| 172 | https://review.skia.org/239930 |
| 173 | |
| 174 | * Add GrContext::precompileShader to allow up-front compilation of previously-cached shaders. |
| 175 | https://review.skia.org/239438 |
| 176 | |
| 177 | * * * |
| 178 | |
Heather Miller | 118a407 | 2019-07-25 11:33:30 -0400 | [diff] [blame] | 179 | Milestone 78 |
| 180 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 181 | * SkDrawLooper is no longer supported in SkPaint or SkCanvas. |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 182 | https://review.skia.org/230579 |
| 183 | https://review.skia.org/231736 |
Mike Reed | 9dc0b9e | 2019-07-29 17:52:48 -0400 | [diff] [blame] | 184 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 185 | * SkPath::Iter::next() now ignores its consumDegenerates bools. Those will so |
| 186 | go away entirely |
| 187 | https://review.skia.org/235104 |
Mike Reed | ba7e9a6 | 2019-08-16 13:30:34 -0400 | [diff] [blame] | 188 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 189 | * SkImage: new factories: DecodeToRaster, DecodeToTexture |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 190 | https://review.skia.org/234476 |
Mike Reed | a5acbf9 | 2019-08-14 11:08:41 -0400 | [diff] [blame] | 191 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 192 | * SkImageFilter API refactor started: |
| 193 | - Provide new factory API in include/effects/SkImageFilters |
| 194 | - Consolidated enum types to use SkTileMode and SkColorChannel |
| 195 | - Hide filter implementation classes |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 196 | - Hide previously public functions on SkImageFilter that were intended for |
| 197 | internal use only |
| 198 | https://review.skia.org/230198 |
| 199 | https://review.skia.org/230876 |
| 200 | https://review.skia.org/231256 |
Florin Malita | 4800949 | 2019-08-01 17:20:19 -0400 | [diff] [blame] | 201 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 202 | * SkColorFilters::HSLAMatrix - new matrix color filter operating in HSLA |
| 203 | space. |
| 204 | https://review.skia.org/231736 |
Brian Salomon | d4764a1 | 2019-08-08 12:08:24 -0400 | [diff] [blame] | 205 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 206 | * Modify GrBackendFormat getters to not return internal pointers. Use an enum |
| 207 | class for GL formats. |
| 208 | https://review.skia.org/233160 |
Brian Salomon | ec22b1a | 2019-08-09 09:41:48 -0400 | [diff] [blame] | 209 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 210 | * Expose GrContext::dump() when SK_ENABLE_DUMP_GPU is defined. |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 211 | https://review.skia.org/233557 |
Sergey Ulanov | 2739fd2 | 2019-08-11 22:46:33 -0700 | [diff] [blame] | 212 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 213 | * Vulkan backend now supports YCbCr sampler for I420 Vulkan images that are |
| 214 | not backed by external images. |
| 215 | https://review.skia.org/233776 |
Leon Scroggins III | 6154ac4 | 2019-08-14 11:29:29 -0400 | [diff] [blame] | 216 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 217 | * Add SkCodec::SelectionPolicy for distinguishing between decoding a still |
| 218 | image or an image sequence for a container format that has both (e.g. HEIF). |
| 219 | https://review.skia.org/232839 |
Brian Osman | d566e2e | 2019-08-14 13:19:04 -0400 | [diff] [blame] | 220 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 221 | * SkImage::makeTextureImage and SkImage::MakeCrossContextFromPixmap no longer |
| 222 | take an SkColorSpace parameter. It was unused. |
| 223 | https://review.skia.org/234579 |
| 224 | https://review.skia.org/234912 |
Brian Osman | d514837 | 2019-08-14 16:14:51 -0400 | [diff] [blame] | 225 | |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 226 | * SkImage::reinterpretColorSpace - to reinterpret image contents in a new |
| 227 | color space. |
| 228 | https://review.skia.org/234328 |
Brian Osman | 4c3fd34 | 2019-08-15 12:13:53 -0400 | [diff] [blame] | 229 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 230 | * Removed SkImage::MakeCrossContextFromEncoded. |
Hal Canary | 3b0e7f6 | 2019-08-20 14:52:02 -0400 | [diff] [blame] | 231 | https://review.skia.org/234912 |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 232 | |
Jim Van Verth | 066ceb1 | 2019-08-28 14:35:55 -0400 | [diff] [blame] | 233 | * Add Metal support for GrFence, GrSemaphore, and GrBackendSemaphore |
| 234 | https://review.skia.org/233416 |
| 235 | |
Hal Canary | 2af5db7 | 2019-08-20 11:28:37 -0400 | [diff] [blame] | 236 | * SkMallocPixelRef: remove MakeDirect and MakeWithProc from API. |
| 237 | https://review.skia.org/234660 |
Mike Klein | 334a642 | 2019-08-27 08:12:15 -0500 | [diff] [blame] | 238 | |
Michael Ludwig | a595f86 | 2019-08-27 15:25:49 -0400 | [diff] [blame] | 239 | * Remove 4-parameter variant of SkRect::join() and intersect(), and |
| 240 | noemptycheck variants of intersect(). |
| 241 | https://review.skia.org/235832 |
| 242 | https://review.skia.org/237142 |
| 243 | |
Mike Klein | 334a642 | 2019-08-27 08:12:15 -0500 | [diff] [blame] | 244 | * Remove unused sk_sp comparison operators. |
| 245 | https://review.skia.org/236942 |
Michael Ludwig | a595f86 | 2019-08-27 15:25:49 -0400 | [diff] [blame] | 246 | |
| 247 | * Add SkColor4f variant to experimental_DrawEdgeAAQuad for SkiaRenderer. |
| 248 | https://review.skia.org/237492 |
Robert Phillips | cf39f37 | 2019-09-03 10:29:20 -0400 | [diff] [blame] | 249 | |
| 250 | * Deprecated maxCount resource cache limit for Ganesh. |
| 251 | This hasn't been relevant for a long time. |
| 252 | |
Brian Osman | a66081d | 2019-09-03 14:59:26 -0400 | [diff] [blame] | 253 | * Changed GrContextOptions' fDisallowGLSLBinaryCaching to fShaderCacheStrategy, |
| 254 | and allow caching SkSL. |
| 255 | https://review.skia.org/238856 |
Chris Dalton | 38f0a49 | 2019-10-07 11:51:07 -0600 | [diff] [blame] | 256 | |
| 257 | * Use GL_QCOM_TILED_RENDERING to explicitly discard stencil |
Heather Miller | cc13acb | 2019-10-22 15:45:45 -0400 | [diff] [blame] | 258 | |
| 259 | * Added RELEASE_NOTES.txt file |
| 260 | https://review.skia.org/229760 |
Chris Dalton | 5a2f962 | 2019-12-27 14:56:38 -0700 | [diff] [blame] | 261 | |
| 262 | * Implemented internal support for OpenGL tessellation. |