Skip to content

v1.2.0

Compare
Choose a tag to compare
@domchen domchen released this 11 Nov 04:59
· 164 commits to main since this release

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.