Releases
v1.2.0
What's Changed
Optimize the performance of BlurImageFilter by reducing one unnecessary offscreen rendering pass.
Add a clipRect() method to the Canvas class.
Remove Image::isRGBAAA() and make Image::makeTextureImage() create a new image source if the image size doesn't match its source size.
Remove the ImageSource class and merge the code into the ResourceImage class.
Renmae EncodedOrigin to Orientation.
Allow Image::getBackendTexture() to return the associated ImageOrigin.
Add a makeWithFilter method to the Image class.
Optimze the DropShadowImageFilter by enabling direct drawing to the surface.
Simplify the generated shaders by removing an unnecessary ConstColorProcessor.
Add a makeRasterized() method to the Image class.
Force the newly created GPU resources to stay alive until the next flush() for reuse.
Improve performance by enabling multi-threading for the built-in freetype library.
Cache the ScalerContext instance in the Font class instead of creating it repeatedly.
Rename Image::isLazyGenerated() to Image::isFullyDecoded().
Fix the issue of missing multiplication of the input alpha in gradient shaders.
Merge Shader::makeWithPreLocalMatrix() and Shader::makeWithPostLocalMatrix() into Shader::makeWithMatrix().
Remove the cropRect member from the ImageFilter class.
Add a clipRect parameter to the Image::makeWithFilter() method.
Optimize performance by enabling glScissor whenever possible.
Remove the Shape class and add cache support directly for the Path class.
Fix the aliasing issue on the edges of RRect when drawn with scaling.
Fix the TriangulatingPathOp for proper rendering with gradient shaders.
Add bounds cache for the Path class.
Remove setAlpha() and setBlendMode() from Canvas and add some convenient methods for drawing paths and manipulating matrices.
Remove the Canvas::flush() method and add a Paint parameter to the Canvas::drawAtlas() method.
Add a setAntiAlias() method to the Paint class to toggle anti-aliasing.
Add a asColor() method to the Shader class.
Improve clip path performance by caching a texture instead of a surface to reduce draw calls.
Make ImageBuffer::MakeFrom(ImageInfo, Data) return nullptr if the ImageInfo isn't suitable for direct texture upload.
Optimze color emoji drawing performance by deferring glyph image decoding.
Add a isOval method to the Path class and rename asRect / asRRect to isRect / isRRect.
Fix building errors with gcc 13.
Add a matrix parameter to TextBlob::getBounds().
Fix the NPR issue when Font.getTypeface() returns nullptr.
Fix the rendering issue with the drop shadow filter that happens when drawing exceeds image bounds.
Implement the ImageFilter::Compose() method.
Implement the ColorFilter::Compose() method.
Implement the Picture and Recorder classes.
Add a simple OpenGL demo for the HarmonyOS platform.
Add the hardware buffer support for the OHOS platform.
Add support for printing logs on the OHOS platform.
Add support for creating a texture from a yuv NativeBuffer on the OHOS platform.
Improve performance when repeatedly writing to the hardware buffer on the OHOS platform.
Fix PNG decoder error handling.
Fix the random pixels outside the clip by adding a clear op before the draw op.
You can’t perform that action at this time.