Releases: Tencent/tgfx
Releases · Tencent/tgfx
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.
v1.1.2
v1.1.1
v1.1.0
What's Changed
- Allow EGLSurface to be nullptr in EGLDevice::Current() when the 'EGL_KHR_surfaceless_context' extension is available.
- Delay the acquisition of textures, render targets, and gpu buffers until context is flushed.
- Optimize performance by deferring the rasterization of paths and executing them concurrently.
- Refactor the cache system of Resources to avoid crashes when releasing resources across multiple threads.
- Fix the ANR caused by TaskGroup::exit() when app is exiting.
- Make all ResouceProxy classes immutable and generate resource creation tasks to the Context instead.
- Remove unnecessary flush() calls in Surface, like makeImageSnapshot() and drawing with image filters.
- Fix the issue where HardwareBufferAllocate() returns a buffer even when HardwareBufferAvailable() is false on apple platforms.
- Upgrade the pathkit library and add a non-aa method to the PathTriangulator class for path tessellation.
- Enable the -Wconversion warning option by default and fix all conversion warnings.
- Add a GLResource class and hide the Resource related classes from the public APIs.
- Move the flags in the SurfaceOptions class to the RenderFlags class.
v1.0.1
What's Changed
- Add demo projects for multiple platforms: iOS, Android, Web, Windows, Linux, and QT.
- Add support for building with all NDK versions starting from 19 and above.
- Add the x86_x64 architecture support on the Android platform.
- Add support for building with the Qt 6.0 SDK.
- Fix the crash in QGLWindow when rendering with multiple threads.
- Remove the 'shareContext' parameter from QGLWindow::MakeFrom(). Fetch it automatically within QGLWindow instead.
- Upgrade the skcms library to version 'm120'.
- Replace all 'MakeAdpoted()' with 'MakeFrom()' in the Device classes as the term 'adopted' is incorrectly used.
- Allow surfaces to be cached on the Window class, replacing createSurface() with getSurface(), freeSurface(), and invalidateSize().