Showing results for 
Search instead for 
Did you mean: 

X-CUBE-TOUCHGFX 4.19.0 is out!

Senior III

On the 21st of March the new version was released.

Here's the changelog:

Version 4.19.0

  • Release date: March 21st, 2022
  • New TouchGFX Designer Features:
  • New and improved interface for text and typography handling for easier overview and management of large amounts of text.
  • Added features for text and typography management include:
    • Merging of single use and resources to one grid.
      • Language settings for typographies.
      • New widget: Static Graph
    • Easy conversion of texts.
    • Grouping.
    • Rearrange and copy texts in grid.
    • Search.
    • Hide language columns in grid.
  • Bugfixes in TouchGFX Designer:
  • New TouchGFX Core Features:
    • New widget: Graph.
    • New texts.xml format supporting texts in groups and language specific settings for typographies.
    • Added HAL::setAnimationStorage().
    • Added ScrollBase::setOvershootPercentage(), and getOvershootPercentage(), for drag events at end of lists that are not circular. This works for ScrollLists and ScrollWheels.
    • Event::getEventType() is now const.
    • Pressing F5 in the simulator will call Application::changeToStartScreen() which can be implemented in FrontendApplication.
    • The simulator ability to flash each invalidated area can be set from code using HALSDL2::setFlashInvalidatedAreas().
    • New function invalidateContent() to only invalidate the part of a widget that contains a graphical element, has been added to Drawable, Containers, Widgets and Mixins. Using this new function instead of invalidate() can result in performance improvements.
    • Added TextureMapper::updateScale() which will invalidate to ensure correct update of the screen when scaling. AnimationTextureMapper has been updated accordingly.
    • FadeAnimator only invalidates if the alpha changes. The Widget being faded must have function getAlpha().
  • Some internal graph classes have been renamed:
    • AbstractDataGraphWithY -> DynamicDataGraph
      • DataGraphWrapAndOverwrite -> GraphWrapAndOverwriteData
      • New functions in graph classes allow an already scaled value to be added. If scale is 10, adding a scaled value of 15 is equivalent to adding the floating point value 1.5f. This can avoid introducing floating point arithmetics. The new functions all end in the word "Scaled".
      • Added Video::showFrame() to show a specific frame in a video.
      • Added LCD::copyAreaFromTFTToClientBuffer() copy new pixels between TFT and client buffer.
      • LCDNemaP renamed to LCDGPU2D.
      • Added support for Microsoft Visual Studio 2022.
      • Renamed existing Keil libraries from "touchgfx_core.lib" to "touchgfx_core_wchar32.lib".
      • Added Keil libraries compiled for short enum/wchar: "touchgfx_core_wchar16.lib".
    • DataGraphScroll -> GraphScrollData
    • DataGraphWrapAndClear -> GraphWrapAndClearData
  • Bugfixes in TouchGFX Core:
    • Proper handling if the ellipsis character for a text does not exist.
    • LCD16bppSerialFlash::blitCopyRGB888() did not check if the image could be read from flash.
    • Function HAL::copyFrameBufferRegionToMemory() would sometimes set a wrong SolidRect.
    • On rotated display with a framebuffer height larger than the display width, the wrong part of the framebuffer would be written to.
    • ScrollList::setWindowSize() will be limited to the number of entirely visible items (including margins).
    • EasingEquations::backEaseInOut() had a rounding bug when the change was an odd number.
  • Deprecated TouchGFX Core Features:
    • TextureMapper::invalidateBoundingRect() is deprecated. Use invalidateContent().
    • Application::cacheDrawOperations() is removed. Use clearCachedAreas() and drawCachedAreas().
    • Function setXAxisScale() on Dynamic Graphs is now called setXAxisFactor().
    • Function getXAxisScaleAsInt() on Dynamic Graphs is now called getXAxisFactorAsInt().
    • Function getXAxisScaleAsFloat() on Dynamic Graphs is now called getXAxisFactorAsFloat().
    • GraphElementArea::setBaseline() and GraphElementHistogram::setBaseline() no longer automatically redraws the graph. An explicit call to e.g. invalidateGraphArea() is required.

Link to changelog here: