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