修订日志
Version 4.21.1
Release date: January 16th, 2023
TouchGFX Designer中的错误修正:
- Fixed bug where locking a widget would cause it to appear in position (0,0) when compiling the code
- Fixed faulty memory usage when switching between screens
- Fixed case where importing a Custom Container containing a font already existing in the project could cause a crash
- Fixed a case where some widgets would not show their used images correctly when copy/pasted
TouchGFX Core中的错误修正:
- Solid colors in SVGs would wrongly be placed in RAM.
Version 4.21.0
Release date: December 19th, 2022
TouchGFX Designer新增特性:
- TouchGFX Stock added. Free designs, images and icons provided within TouchGFX Designer.
- Access to material icons made by Google.
- New SVG Image widget.
- New image picker for all image-related widgets.
- New preset picker for browsing themes and presets.
- Mouse coordinates shown when hovering canvas.
- New action for setting border color on box with border widget.
- Now able to navigate widget menu using arrow keys.
- Progress indicator widgets now support two new triggers, ValueUpdated and ValueUpdatedCompleted.
- Ability to close current project from file menu.
- Designer now remembers start up and save folder.
- Added tooltips for visibility and lock buttons in tree view of canvas.
- Added new icon for lock button in tree view of canvas, to make it more clear if a widget is locked or unlocked.
- Added delay property to move and fade actions.
TouchGFX Designer中的错误修正:
- Fixed bug regarding DPI of images used in Analog clock.
- Fixed bugs regarding linespacing.
- Fixed bug with minimum and maximum check for x-range in Static Graph.
- Fixed bug regarding auto-size in TextArea widget.
- Fixed being able to set negative border width on box with border widget.
- Fixed disappearing interaction when undoing.
- Fixed bug with DPI in images used by Gauge widget.
- Fixed bug with not showing an error when deleting wildcard character in TextProgress and DigitalClock widgets.
- Fixed bug with long names in interactions.
- Fixed bug with escaped characters in text.
- Changing startup screen now results in unsaved changes.
- Fixed bug with code generation regarding ScreenAnimationEnded trigger.
- Fixed bug happening when users attempt to open a project with an unknown version.
- Text field size in Widget tree view increased.
- Fixed the ability to select multiple screens using right mouse click.
- Fixed being able to set radius of a Circle Widget to a negative number
- Fixed text for checkboxes not wrapping.
- Fixed image icon not updating when changing simulator skin image.
TouchGFX Core新增功能:
- New widget: SVG Image
- Support in image converter to read basic SVG images. These are converted to binary data that can be drawn using the SVG Image widget. See the documentation for more information.
- New wide text actions and redefinition of two existing formats:
- WIDE_TEXT_NONE: No change, no automatic line breaks.
- WIDE_TEXT_WORDWRAP: Changed, will keep adding line breaks and will not add ellipsis.
- WIDE_TEXT_WORDWRAP_ELLIPSIS: New, will add ellipsis as late as possible (even mid-word) on the last line in the TextArea.
- WIDE_TEXT_WORDWRAP_ELLIPSIS_AFTER_SPACE: No change, automatic line breaks, ellipsis will not be in the middle of a word.
- WIDE_TEXT_CHARWRAP: Changed, will keep adding line breaks and will not add allipsis.
- WIDE_TEXT_CHARWRAP_ELLIPSIS: New, will add ellipsis at end of last line in the TextArea.
- WIDE_TEXT_CHARWRAP_DOUBLE_ELLIPSIS: No change, will add two ellipsis at end of the last line in the TextArea.
- AbstractShape::setFillingRule() added to also allow EVEN-ODD filling, in addition to the default NON-ZERO filling.
- As images on monochrome displays do not support alpha channel, any alpha value is now applied to each pixel before converting to BW.
- Optimized SlideTransition and CoverTransition.
- Class FullSolidRect has been removed from WipeTransition.
- ImageConvert is using updated libpng 1.6.38. 生成的图像看起来是一样的。
TouchGFX Core中的错误修正:
- Font metrics are handled better so now font height does not depend on which letters are actually being used. This means that default line spacing might be different - this can be adjusted using TextArea::setLinespacing(). For GraphLabels and ButtonWithLabel, texts might be placed better, depending on your font.
- Setting a negative radius on a Circle will set the radius to zero.
- Setting a negative line width on a Circle will set the line width to zero (causing a filled circle to be drawn).
- More robust handling of timer widgets in cases with lots of timer widgets.
- Fixed performance issue observed when upgrading to TouchGFX ## Version 4.19.0 {#version-4190}, ## Version 4.19.1 {#version-4191}, ## Version 4.20.0 {#version-4200} (Removed Container::invalidateContent())
- Font::getSpacingAbove() return type changed from uint8_t to int16_t to prevent overflow.
弃用的TouchGFX Core特性:
- Font::getMaxTextHeight() and Font::getMinimumTextHeight() have been replaced by Font::getHeight(). Returns the height of the font.
- Font::getFontHeight() has been replaced by Font::getBaseline(). Returns the distance to the baseline.
Version 4.20.0
Release date: June 22nd, 2022
TouchGFX Designer新增特性:
- Import and Export of custom containers.
- A new notification will tell why F5- and F6-shortcuts are unavailable.
- A new Code-menu with the ability to run simulator, run target, generate code and open project files.
- New trigger added, with the ability to trigger on every N-tick.
- Ability to copy text ressource Id, similar to copying image-Id.
TouchGFX Designer中的错误修正:
- Run-buttons update when validation changes.
- Some widgets now support non-int radius, including circle.
- Fixed Menu-items being available via shortcuts in the lobby.
- Fixed SetShapeColor Action not generating correct code.
- Fixed TextArea widget was not showing text when outside its parent, when canvas was set to show clipped content.
- Fixed text alignment for auto-generated text not being copied correctly when copying and pasting a widget using the text.
- Removed "FileNameImage"-property from the .touchgfx file which appeared by clicking "Image"-button, the "Color"-button and then generating code.
- Changed order and categorization ButtonWithLabel of properties.
- Fixed rotation of text in TextArea widget not rotating as expected.
- Fixed not being able to write a newline in text-fields.
- Action SetLanguage will now work without a text area.
- Fixed fonts in font picker dropdown not being sorted alphabetically.
- Fixed dropdowns not responding to keyboard input to navigate to a desired item.
TouchGFX Core新增功能:
- Canvas Widget Renderer (CWR) is now significantly faster. CWR has been optimized and all painters have been rewritten and optimized to give faster rendering even with less memory. Painters now have a new interface, so old custom painters have to be rewritten, e.g. by altering one of the painters included in TouchGFX or reading the article on the subject. Further, painters for 16bpp and 24bpp will use hardware acceleration (when possible).
- If using CanvasWidgetRenderer::setupBuffer(), remember to include the line #include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
- Function mixColors() has been renamed to alphaBlend() in AbstractPainters for 16bpp and 8bpp.
- Text remapping in TextConvert has been changed slightly so "yes" works the same, but "no" will remap texts within a language, not across languages.
- Updated Freetype 2.11.0 to 2.12.1 (used by the font convert utility).
- Updated zlib 1.2.11 to 1.2.12 (used by the font/image convert utility).
- Applications compiled using arm gcc are now approximately 15Kb smaller and 1% faster (due to removal of debug code in the library).
TouchGFX Core中的错误修正:
- Slide transition did not work in portrait mode on 16bpp and 24bpp.
- TextArea::getTypedText(), TextProgress::getTypedText(), GraphTitle::getTitleTypedText() and GraphLabelsBase::getLabelTypedText() now returns a "const TypedText &".
- Special fonts, such as wingding.ttf, are now supported.
- Unicode::snprintf no longer sign extends char values from 128 to 255 in the format string.
弃用的TouchGFX Core特性:
- CanvasWidget::resetMaxRenderLines() has been removed as it has no function with the rewritten CWR.
- Color::getColorFrom24BitRGB() removed. Use Color::getColorFromRGB().
- Color::getRedColor() removed. Use Color::getRed().
- Color::getGreenColor() removed. Use Color::getGreen().
- Color::getBlueColor() removed. Use Color::getBlue().
- Color::getRGBFrom24BitHSV() removed. Use Color::getRGBFromHSV().
- Color::getHSVFrom24BitRGB() removed. Use Color::getHSVFromRGB().
- Color::getRGBFrom24BitHSL() removed. Use Color::getRGBFromHSL().
- Color::getHSLFrom24BitRGB() removed. Use Color::getHSLFromRGB().
- Color::getHSVFromHSL(uint8_t, uint8_t&, uint8_t, uint8_t&) removed. Use Color::getHSVFromHSL(uint8_t,uint8_t,int8_t,uint8_t&,uint8_t&,uint8_t&).
- Color::getHSLFromHSV(uint8_t, uint8_t&, uint8_t, uint8_t&) removed. Use Color::getHSLFromHSV(uint8_t,uint8_t,int8_t,uint8_t&,uint8_t&,uint8_t&).
版本 4.19.1
发布日期:2022年4月4日
TouchGFX Designer新增特性:
TouchGFX Designer中的错误修正:
- 修正了Flex按钮控件上文本按钮样式缺少颜色属性问题。
- 修正了Flex按钮控件上文本按钮样式的通配符代码生成错误。
- 修正了在InteractionEndedCallBacks中使用Flex按钮时产生的错误代码。
- 修正了动态和&静态图形标签的错误“文本”属性标签。
- 修正了版本升级后未删除touchgfx_components文件夹的问题。
- 当文本网格中的单元格失去焦点时,有时会导致崩溃
TouchGFX Core新增功能:
TouchGFX Core中的错误修正:
- 修正了仅更改省略号字符时FontConvert不能生成新代码的问题。
- 修正了视频控件析构函数在某些应用程序中可能导致失败的错误。
版本4.19.0
发布日期:2022年3月21日
TouchGFX Designer新增特性:
- 全新改进的文本和字体排印处理界面,更容易概览和管理大量文本。
- 文本和字体排印管理的新增功能包括:
- 将一次性使用和资源合并到一个网格中。
- 文本转换容易。
- 分组。
- 在网格中重新排列和复制文本。
- 搜索。
- 在网格中隐藏语言列。
- 字体排印的语言设置。
- 文本和字体排印管理的新增功能包括:
- 新控件:静态图形
- 全新改进的文本和字体排印处理界面,更容易概览和管理大量文本。
TouchGFX Designer中的错误修正:
TouchGFX Core新增功能:
- 新控件:图形。
- 新text.xml格式支持分组文本和特定语言字体排印设置。
- 添加了HAL::setAnimationStorage()。
- 添加了ScrollBase::setOvershootPercentage()和getOvershootPercentage(),用于非循环列表末尾的拖动事件。 适用于ScrollLists和ScrollWheels。
- Event::getEventType()现在返回常量。
- 在模拟器中按F5将调用Application::changeToStartScreen(),可在FrontendApplication中实现。
- 模拟器刷新每个失效区域的能力可以通过使用HALSDL2::setFlashInvalidatedAreas()在代码中设置。
- 新函数invalidateContent()只会使控件中包含图形元素的部分失效,该函数已被添加在Drawable、Containers、Widgets和Mixins中。 使用此新函数替代invalidate()可以提高性能。
- 添加了TextureMapper::updateScale(),失效时将确保缩放时屏幕正确更新。 AnimationTextureMapper已进行相应更新。
- FadeAnimator只在alpha变化时失效。 淡出的控件必须具有函数getAlpha()。
- 某些内部图形类别已重命名:
- 带Y轴的抽象数据图->动态数据图
- 数据图滚动 -> 图形滚动数据
- 数据图形换行并清除->图形换行并清除数据
- 数据图形换行并覆盖->图形换行并覆盖数据
- 图形类中的新函数允许添加已缩放的值。 如果比例为10,则添加比例值15等于添加浮点值1.5f。 这样可以避免引入浮点运算。 新函数均以“scaling”结尾。
- 添加了Video::showFrame()以显示视频中的特定帧。
- 添加了LCD::copyAreaFromTFTToClientBuffer()函数,在TFT和缓存之间复制新像素。
- LCDNemaP重命名为LCDGPU2D。
- 增加了对Microsoft Visual Studio 2022的支持。
- 将现有的Keil库从“touchgfx_core.lib”重命名为“touchcfx_core_wchar32.lib”。
- 添加了为短enum/wchar编译的Keil库:"touchgfx_core_wchar16.lib".
TouchGFX Core中的错误修正:
- 如果文本的省略号字符不存在,可以进行正确处理。
- LCD16bppSerialFlash::blitCopyRGB888()未检查是否可以从闪存读取图像。
- 函数HAL::copyFrameBufferRegionToMemory()有时会设置错误的SolidRect。
- 在帧缓冲区高度大于显示宽度的旋转显示屏上,将写入帧缓冲区的错误部分。
- ScrollList::setWindowSize()将范围限制在完全可见的项数(包括页边距)。
- EasingEquations:: backkeaseinout()在变为奇数时存在四舍吴入错误。
弃用的TouchGFX Core特性:
- TextureMapper:: invalidateBoundingRect()弃用。 使用invalidateContent()。
- 移除了Application::cacheDrawOperations()。 使用clearchachedareas()和drawCachedAreas()。
- 动态图上的setXAxisScale()函数现在改为setXAxisFactor()。
- 动态图上的getXAxisScaleAsInt()函数现在改为getXAxisFactorAsInt()。
- 动态图上的getXAxisScaleAsFloat()函数现在改为getXAxisFactorAsFloat()。
- GraphElementArea::setBaseline()和GraphElementHistogram::setBaseline()不再自动重绘图形。 需要显式调用invalidategraparea()。
版本4.18.1
发布日期
TouchGFX Designer新增特性:
TouchGFX Designer中的错误修正:
- 解决各种网络稳定性问题
- 在TouchGFX Designer 打开时向包含进度指示器的工程添加图像时可能会导致崩溃
- “添加控件菜单”可能进入某种状态 - 当打开菜单时,没有聚焦到搜索文本框
- 无法为“设置通配符”操作选择“资源文本”
- 缺失BW_4.18.0
- 删除文本中用到的字体排印时错误的误报
- 鼠标悬停时,控件树视图中的“切换可见性”按钮无响应
- 文件菜单中的切换主题选项未正确报告当前主题
TouchGFX Core新增功能:
TouchGFX Core中的错误修正:
- 新增控件:视频控件。
- 增加对新.xml文本数据库的支持。
- 从.touchgfx文件移除TextEntries数据库。
- Event::getEventType()现在返回常量。
版本4.18.0
发布日期:2021年10月20日
TouchGFX Designer新增特性:
- 新增控件:视频控件。
- 增加对新.xml文本数据库的支持。
- 从.touchgfx文件移除TextEntries数据库。
- 增加了对XRGB的支持。
- 在最近应用程序列表中增加了应用程序的完整路径。
- 为图标添加了各种动画。
TouchGFX Designer中的错误修正:
- 解决了网络代理对话框缺失的问题。
- 修正了当将仪表控件放入定制容器中时,代码生成出错的问题。
- 修正了当文件被其他编辑器中打开时,TouchGFX Designer报告磁盘上文件更改的问题。
- 修正了模拟时钟能够调整大小的问题。
- 修正了文本管理器中的字体排印选择器不能正确调整大小的问题。
- 修正了下拉控件有时自动选择的问题。
- 改进了文本管理器的性能。
- 改进了色彩选择器的性能。
- 改进了alpha滑块控件的UX行为。
- 修正了使用鼠标滚轮后,数字属性上/下控件不工作的问题。
- 修正了在属性控件之间Tab跳转的问题。
- 修正了抖色算法选择器项缺少名称的问题。
- 修复了在删除用于已选样式模板的定制容器后,ScrollWheel控件处于错误状态的问题。
- 修复了试图打开磁盘上已删除的最近应用程序时崩溃的问题。
TouchGFX Core新增功能:
- 文本和语言(译文)现在存储在texts.xml(而非texts.xlsx,Excel 格式)中。 添加了用于译文导出和导入的工具(touchgfx/framework/tools/textconvert/translation.rb)。
- 新增控件:VideoWidget。
- 在3rdparty/libjpeg中增加了用于Linux和Windows的libjpeg库(注意,与正式的libjpeg相比,Red(红)和Blue(蓝)被调换了)。
- 仿真器现在可以处理不等于帧缓存区尺寸的显示尺寸。 调用touchgfx_generic_init() 之后,使用HAL::setFrameBufferSize() 设置(更大)的帧缓存区尺寸。
- 增加了Drawable::center(), centerX(), centerY() ,用于可绘制对象在其父对象中居中。
- 增加了Drawable::expand() ,使可绘制对象的大小与其父对象相同,并可选择在边缘周围设置边距。
- 增加了LCD::fillBuffer() ,可用于在任何内存缓冲区中填充色彩图案。
- 增加了ScrollableContainer::getChildrenContainedArea()。
- 在16bpp液晶显示屏上更快地绘制ARGB8888图像。
- Application::getCurrentScreen() 现在改为静态函数,以方便使用。
- Freetype 2.10.4已更新至2.11.0(由字体转换应用程序使用)。
- nlohmann json 3.9.1已更新至3.10.2(由图像转换应用程序使用)。
- Ruby 1.9.3已更新至3.0.2(由文本转换应用程序使用)。
- ScrollableContainer::doScroll() 现改为公有函数,并确保滚动是有效的。
- 现在根容器在屏幕中的位置和大小可以设置了。
- 所有的Bitmap Painter可以偏移位图,并可以平铺位图(有助于节约内存)。
TouchGFX Core中的错误修正:
- TextArea自动断行(WideTextAction)没有考虑缩进。
- ImageConvert不允许写入到另一个驱动器或一个完整路径。
- 带 ... 参数的EveTextProvider::initalize()可能产生意外结果。
- 生成文件中的所有外部声明现在均与实际声明匹配。
- 当执行显示方向变更时,FRAME_BUFFER_WIDTH和FRAME_BUFFER_HEIGHT可能会引起混乱。
- 进度指示和仪表不能与带定时器的mixins一起使用。
- PixelDataWidget::getSolidRect() 现在改为当没有设置像素数据缓冲区时,返回空的矩形。
- 增加了PixelDataWidget::getPixelData() 和PixelDataWidget::getBitmapFormat() 。
- 仿真器应用程序对鼠标和键盘事件响应更迅速。
- ScrollableContainer::moveChildrenRelative() 现在可以更新getScrolledX() 和 getScrolledY()的值,但是没有更新滚动条的值。 不过,已按计划弃用了函数moveChildrenRelative() ,请使用doScroll() 。
- 修正了在ScrollableContainer中相对坐标错误使用的问题。
- 修正了EasingEquations::elasticEaseIn()、 EasingEquations::elasticEaseOut() 和EasingEquations::elasticEaseInOut()。
- 一些8bpp绘图器会使用错误的颜色,在极少见情况下,在32bpp显示屏上L8_RGB888会出错。
- LCD16bpp::blitCopy() 不支持RGB888。
- LCD16bpp::fillRect() and LCD16bpp::drawGlyph() 现在用24位颜色(而非原来的16位颜色)传给DMA。
弃用的TouchGFX Core特性:
- TouchGFX很快会支持不带alpha通道的RGB565。 ImageConvert将报告该情况,以帮助用户转到(例如)ARGB8888。
- TouchGFX中不再包括用于Linux的SDL2。 请在您的Linux环境中自行安装软件包libsdl2-dev和libsdl2-image-dev。
- TextureMapper:: invalidateBoundingRect()弃用。 使用invalidateContent()。
版本4.17.0
发布日期:2021年6月30日
TouchGFX Designer新增特性:
- TouchGFX Designer重新设计的界面已全部完成。 所有已知特性依然可用,但是通过易于使用且直观的交互方案提供的。 另外还增加了其他特性,如多个色彩主题。
TouchGFX Designer中的错误修正:
TouchGFX Core新增功能:
- TextureMapper增加了函数setAngles()、setXAngle()、setYAngle() 和setZAngle()。 与对应的update函数相比,这些函数不执行失效操作,因而会稍快一些。
- 增加了TextureMapper::updateScale()函数,用来设置新比例并执行失效操作(尽可能少)。 AnimationTextureMapper现在使用此函数。
- 现在,在模拟器中按下F1键将显示像素的RGB色彩值(十六进制)和X、Y坐标。
- 如果帧缓冲在锁定后未解锁,模拟器将断言报错。
- SwipeContainer::setPageIndicatorCenteredX() 函数会在保持页面指示器当前Y坐标不变基础上,居中X坐标。
- Colortype实现已修改为总是存储8位红色、8位绿色和8位蓝色,无论活动界面的色深是多少(即使是灰色或者黑白界面)。 另删除或重命名了一些色彩函数,参见“弃用”部分。
- 增加了Screen::insert()、Screen::invalidate()和Screen:invalidateRect(),以便能够在显示屏代码中使用 “invalidate()”替代“container.invalidate()”。
- 为了能用渐淡功能,CacheableContainer现已支持setAlpha和getAlpha。
- LCD16bpp和LCD16bppSerialFlash支持RGB888图像的位块复制。
- 为了分开文件,从LCD驱动提取了DebugPrinter实现部分。
- 为了能够创建调色板条目少于256个(为了节约空间)的动态L8位图,增加了Bitmap::dynamicBitmapCreateL8()函数。
- 为了创建现有(静态或动态)位图的副本,增加了Bitmap::dynamicBitmapCreateCopy()函数。 RGB565 alpha通道不能复制。
- 为了用给定色彩填充动态位图的全部或一部分,增加了函数Bitmap::dynamicBitmapFill()和Bitmap::dynamicBitmapFillRect()。
- 增加了函数Screen::getScreenWidth()和Screen::getScreenHeight(),应使用它们代替HAL::DISPLAY_WIDTH和HAL::DISPLAY_HEIGHT。
- Freetype 从2.10.2已更新到了2.10.4(由字体转换程序使用)。
- 增加了函数OSWrappers::taskYield()。
- HAL::initialize()改成了虚函数。
- 增加了LCD32bpp_XRGB8888显示驱动,以便在帧缓冲中无alpha通道的情况下在32位显示屏上进行绘制。
- 在硬件支持的情况下,为了使用DMA绘制L8图像,增加了BlitOp L8。
TouchGFX Core中的错误修正:
- 现在HALSDL2响应消息SDL_WINDOWEVENT_EXPOSED以重绘窗口。
- 修正了从HSV到HSL色彩转换中的错误。
- 修正了未定义DragAction时Graph的崩溃问题。
- HAL::drawDrawableInDynamicBitmap()当位图小于可绘制对象时可以工作正常了。
- TouchGFX工程可放置到路径中包含国际字符(如“Wunderschön_Projekt”或“Lækkert_Projekt”)的文件夹中。
- SwipeContainer页面指示器,在添加或删除页面后选定页面未更新。
- 修正了Graph VerticalFrontline中的重绘问题。
- 修正了极少出现的Graph::Line中的重绘问题。
- 为避免命名冲突,将HAL::setRenderingVariant重命名为HAL::setRenderingMethod。
- 在极少数情况下,CanvasWidgets会将画布以外的某区域失效化处理。
- 内部TouchGFX #include情况已整理。 这意味着可能需要包含<touchgfx/hal/HAL.hpp>和其他文件。 之前这些文件可能被错误地包含在如Color.hpp等文件中。
- 修正了LCD2bpp中的alpha混合问题。
- 和文本一样,对24/32bpp位图改进LCD16bpp的Alpha混合效果。
弃用的TouchGFX Core特性:
- 出于速度方面的考虑,从所有Canvas Painter中删除了alpha, 转而在画布控件(Circle、Line等)上设置alpha。
- 弃用了有4个参数的Color::getHSVFromHSL和Color::getHSLFromHSV函数。 请使用有6个参数的新版本。
- 从LCD类中删除了函数getColorFrom24BitRGB、getColorFromRGB、getRedColor、getRedFromColor、gerGreenColor、getGreenFromColor、getBlueColor和getBlueFromColor。 现在,所有显示类型的色彩均采用相同格式存储,因而只需使用Color类中的函数即可。
- 重命名的函数:
- Color::getColorFrom24BitRGB()现为Color::getColorFromRGB()
- Color::getColorFrom24BitHSV()现为Color::getColorFromHSV()
- Color::getColorFrom24BitHSL()现为Color::getColorFromHSL()
- Color::getRGBFrom24BitHSV()现为Color::getRGBFromSHV()
- Color::getHSVFrom24BitRGB()现为Color::getHSVFromRGB()
- Color::getRGBFrom24BitHSL()现为Color::getRGBFromHSL()
- Color::getHSLFrom24BitRGB()现为Color::getHSLFromRGB()
- Color::getRedColor()现为Color::getRed()
- Color::getGreenColor()现为Color::getGreen()
- Color::getBlueColor()现为Color::getBlue()
- 删除了ZoomAnimationImage::setDimension。 可使用setWidthHeight()。
- 删除了使用int16_t& 参数的AbstractProgressIndicator::getRange函数。
- Image::getBitmapId()不再标记@deprecated。
- Application::draw()不再标记@deprecated。
版本4.16.1
发布日期:2021年2月8日
TouchGFX Designer中的错误修正:
- 修正了ListLayout控件中的错误,防止将方向设置为除“东”以外的其它值。
- 修正了关于滑块控件方向选择器的错误的控件提示。
- 修正了使用NemaP LCD时的代码生成错误。
- 修正了“前进”和“后退”图标,使之保持同意。
- 修正了仪表控件缺失的帮助文本。
TouchGFX Core新增功能:
- 通过添加’#include <string.h>’修正了生成的mainBase.cpp文件在unix上编译失败的问题。
- 控件TextureMapper和ScalableImage改为使用LCD::drawQuad。
TouchGFX Core中的错误修正:
- Graph中的变量dragAction未初始化导致的崩溃问题。
- BlockTransition在竖屏硬件上的横屏显示时不能工作。
- 修正了PartialFrameBufferManager::tryTransmitBlock导致的断言问题。
版本4.16.0
发布日期:2021年2月8日
TouchGFX Designer新增特性:
- 新增控件:仪表。
- 增加了新事件触发“当屏幕切换开始时”。
- 将事件触发“当进入屏幕时”重命名为“在切屏结束时”。
- 增加了新操作“设置语言”。
- 现在,在控件上通过Image Picker添加一张图像时会同时选中该图像。
- 在“帮助->键盘快捷键”中增加了快捷键文档的链接。
- 为操作“执行C++代码”增加了更好的代码编辑器。
- 为操作“转至屏幕”增加了新的Block Transition。
- 改善了“添加控件”菜单的可用性/用户体验。
- 增加了对LCDNemaP的初步支持。
TouchGFX Designer中的错误修正:
- 修正了ListLayout控件中的错误,防止将方向设置为除“东”以外的值。
- 修正了关于滑块控件方向选择器的错误的控件提示。
- 修正了使用NemaP LCD时的代码生成错误。
- 修正了在定制容器中两次生成动态图表回调处理函数的问题。
- 修正了仪表控件缺失的帮助文本。
- 修正了在一次性使用文本和资源文本之间切换,动态图表中的标签不能更新的问题。
- 修正了当修改动态图表大小时,动态图表中的标签位置不更新的问题。
TouchGFX Core新增功能:
- 为了获得NeoChrom更好的性能,增加了LCD::drawQuad方法。
- 控件TextureMapper和ScalableImage改为使用LCD::drawQuad。
- BoxWithBorder现已改为Box子类。
- 为了改善性能,LCD16和LCD8 fillRect函数现在一次写入32/16位。
- 增加了CanvasWidget::resetMaxRenderLines()。
- 将LCD2shiftVal()、LCD2getPixel()和LCD2setPixel()移到了LCD2bpp类。
- 将LCD4getPixel()和LCD4setPixel()移到了LCD4bpp类。
- ScrollableContainer::setScrollbarsPermanentlyVisible()函数现在用一个布尔参数来关闭永久可见性。
- TextureMapper和ScalableImage现在都改为了Image的子类。
- 增加了WipeTransition。
- 增加了AbstractClock::getCurrent12Hours和AbstractClock::getCurrentAM()。
- Unicode::itoa()和Unicode::utoa()最多可以处理36进制的数。
- 增加了AnalogClock::setAlpha()和getAlpha()。
- ScrollableContainer::setScrollbarsPermanentlyVisible()函数现在用一个布尔参数来关闭永久可见性。
- 增加了TextArea::resizeHeightToCurrentTextWithRotation()。
- 增加了Drawable::setWidthHeight(),可以一次性以(width,height)为参数,设置Drawable、Bitmap或Rect的宽度和高度。
- 增加了Drawable::setXY(Drawable&)函数,可以将Drawable的左上角设置在与另一个Drawable相同的位置。
- 增加了Drawable::setPosition(Drawable&),可以将Drawable放置在与另一个Drawable相同的位置。
- 增加了Color::getRGBFrom24BitHSV()和Color::getHSVFrom24BitRGB(),可以在(色相、饱和度、亮度)和(红、绿、蓝)之间转换。
- 增加了Color::getColorFrom24BitHSV()和Color::getHSVFromColor(),可以在(色相、饱和度、亮度)和colortype之间转换。
- 增加了Color::getHSVFromHSL()和Color::getHSLFromHSV(),可以转换数值和亮度。
- 增加了Color::getRGBFrom24BitHSL()和Color::getHSLFrom24BitRGB(),以便在(色相、饱和度、亮度)和(红、绿、蓝)之间转换。
- 增加了Color::getColorFrom24BitHSL()和Color::getHSLFromColor(),以便在(色相、饱和度、亮度)和colortype之间转换。
- PainterBW现在可以支持alpha。
- SnprintFloat(s)现在可以处理NaN (”nan”)和Inf (”inf”)。
- SnprintFloat(s)现在默认为小数点后6位而不是3位。 ANSI C中是“如果精度缺失,提供6位”。
- 增加了Circle::setPixelCenter()。
- 为进度指示条增加了updateValue()、setEasingEquation()、setValueSetAction()和setValueUpdatedAction(),可以实现从一个值到另一个值的平滑过渡。
- 增加了SwipeContainer::getSelectedPage。
- 增加了BlockTransition。
- 增加了CacheableContainer::setSolidRect()和getCacheBitmap()。
TouchGFX Core中的错误修正:
- Graph中的变量dragAction未初始化导致的崩溃问题。
- 在极少数情况下,TextureMapper会将一些扫描线绘制两次。
- 修正了PartialFrameBufferManager::tryTransmitBlock导致的断言问题。
- 修复了从按键拖离和释放时键盘的问题。
- Slider::getIndicatorMin()返回指示位最大值而不是最小值。
- ImageConvert会破坏BMP图像的堆(且很可能崩溃)。
- 修正了纹理映射器在双线性模式下绘制的图像边缘的问题。
- 修正了当alpha<255时BoxWithBorder超宽边界问题。
- 将ProgressIndicator的范围和值修正为全部为“int”类型。
- 修正了可缓冲容器显示方向的问题。
弃用的TouchGFX Core特性:
- 删除了4.15及之前版本的所有弃用函数。
- 删除了ST1232TouchController。
- 弃用了ZoomAnimationImage::setDimension。 现使用setWidthHeight。
- Drawable::setXY和Drawable::setPosition不再是虚拟函数。 只有setX、setY、setWidth和setHeight是虚拟函数。
- AbstractProgressIndicator::getRange方法使用int16_t&参数
版本4.15.0
弃用的TouchGFX Core特性:
TouchGFX Designer新增特性:
- 新增控件:仪表。
- 增加了新事件触发“当屏幕切换开始时”。
- 将事件触发“当进入屏幕时”重命名为“在切屏结束时”。
- 增加了新操作“设置语言”。
- 现在,在控件上通过Image Picker添加一张图像时会同时选中该图像。
- 在“帮助>键盘快捷键”中增加了快捷键文档的链接。
- 为操作“执行C++代码”增加了更好的代码编辑器。
- 为操作“转至屏幕”增加了新的Block Transition。
- 改善了“添加控件”菜单的可用性/用户体验。
- 增加了对LCDNemaP的初步支持。
- 为了获得更好的体验,在空画布上插入控件时,总是在基本视图中生成黑色方块。
- 对许多工具提示进行了全面的目视检查,并显示键盘快捷键。
- 现在可以选择是以映射还是非映射格式输出字体。
TouchGFX Designer中的错误修正:
- 通过添加下列内容修正了生成的mainBase.cpp在unix上编译失败的问题:'#include <string.h>'.
- 修正了在文件名包含下划线时图像文件确认报告图像有错误的问题。
- 修正了能够创建应用名字中带空格的问题。
- 修正了在自定义容器中生成动态图表回调处理函数两次的问题。
- 修正了动态图表与TouchGFX Designer在特定边界条件下发生冲突的问题。
- 修正了在一次性使用和资源文本之间切换时动态图表中的标签不更新的问题。
TouchGFX Core新增功能:
- 为了改善性能,使用了新的失效化算法。
- 增加了新容器Gauge。
- BoxWithBorder现已改为Box子类。
- 为了改善性能,LCD16和LCD8 fillRect函数现在一次写入32/16位。
- 增加了CanvasWidget::resetMaxRenderLines()。
- 将LCD2shiftVal()、LCD2getPixel()和LCD2setPixel()移到了LCD2bpp类。
- ImageConvert使用已更新的nlohmann-json 3.9.1。 生成的图像看起来一样。
- 在模拟器中增加了单步执行。 按下F9键将开始/停止执行。 按下F10键将单步执行。 还可以使用HALSDL2::setSingleStepping()、HALSDL2::isSingleStepping()和HALSDL2::singleStep()进行控制。
- TextureMapper和ScalableImage现在都改为了Image的子类。
- 增加了AnimatedImage::setEndBitmap()。
TouchGFX Core中的错误修正:
- 修正了getGraphAreaPaddingRight()的拼写错误。
- 在极少数情况下,TextureMapper会将一些扫描线绘制两次。
- 当steps=0时,AnimationTextureMapper、ZoomAnimationImage、MoveAnimation和FadeAnimation都能工作,并会在最后一个动画步骤结束动画发出通知。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues
版本4.14.0
发布日期:
TouchGFX Designer新增特性:
- 新增控件:动态图形。
- M0平台现在默认禁用所有纹理映射器特性。
TouchGFX Designer中的错误修正:
- 在导入包含相同字体、位图的工程时,TouchGFX Designer有时会崩溃。
- FrontendHeapBase.hpp中生成的代码会包含相同转换头文件的多个副本。
- 可以将控件拖放到树视图中的滚动列表或滚轮中。
- 以往在添加控件时,交互的“选择按钮键”会被清除。
- 有时会选择错误的默认软件包版本。
- 即使软件包已在硬盘上已有,仍会进行下载。
TouchGFX Core新增功能:
- 新的字体格式允许将大多数字体数据存储在未映射闪存中。
- 改善了部分帧缓冲块传输算法。
- 为保持一致,GestureType现更名为GestureEventType。 GestureType已弃用,很快将删除。
- 删除了touchgfx::SingleBlockAllocator,改用touchgfx::ManyBlockAllocator<block_size, 1, bytes_per_pixel>
- HAL的新方法enableDMAAcceleration()可禁用硬件加速。
- 增加了TextureMapper::invalidateBoundingRects()。
- 改善了ImageConvert内置帮助。
- ImageConvert可以编写application.config模板文件。
- 增加了新的Graph类。
- FontConvert使用已更新的freetype 2.10.2。 这会使的对齐字符更整齐美观。
- ImageConvert使用已更新的libpng 1.6.37。 生成的图像看起来是一样的。
- 为ScrollableContainer增加了setDurationSpeedup、getDurationSpeedup、setDurationSlowdown和getDurationSlowdown函数。 这有利于更好地控制对滑动手势使用的动画步数。
- Extended SlideMenu控件可能不需要按钮。
- 像数字类型一样使用colortype变量会自动将其转换为uint32_t而非uint16_t。
- 在Keil工程中增加了ARMCLANG-6.x支持。
- 支持Cortex-M33。
TouchGFX Core中的错误修正:
- 亚美尼亚(和一些西里尔语)文字是从右向左书写的。
- Unicode::snprintf()中的几处修正:删除了格式字符串的64个字符限制。 正确处理了%s (%+s, %0s)的符号。 %05c无前缀零。 以0为值修正了%c的处理。 正确处理了%s (%+s, %0s)的符号。
- 不会正确渲染只需要部分重绘的巨大字形。
- 有捕捉功能的ScrollList不报告正确的点击项。
- 没有捕捉功能的非循环ScrollList可能报告错误项。
- ScrollList在条目被点击时不影响填充。
- 使用setColor(color,alpha)的CWR Painter现在只接受色彩参数。 使用setAlpha(alpha)设置alpha。
- 缓存位图未与非偶数动态位图32位对齐。
- LED.hpp不再包含lpc_types.h。
弃用的TouchGFX Core特性:
- 弃用函数现已标记为弃用,因此编译器可以发出关于这些函数的警告。 弃用函数将来会删除。
- 删除了Unicode::EMPTY的定义。
- PI的定义已从Math3D.hpp移到了Types.hpp。
- EasingEquation.hpp中定义的“pi”已由PI取代。
- ImageConvert不再支持-f、-o和-header选项。
- 删除了Image::hasTransparentPixels。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues
版本4.13.4
发布日期:2020年7月2日
TouchGFX Core中的错误修正:
- 修正了getGraphAreaPaddingRight()的拼写错误。
版本4.13.3
发布日期:
TouchGFX Core新增功能:
- 支持“.touchgfx.part”文件。 这些可用做工程的外部输入(如CubeMX集成)。
TouchGFX Core中的错误修正:
- 修正了延时和按钮回调交互可能导致生成错误代码的问题。
版本4.13.2
发布日期:2019年9月25日
TouchGFX Core新增特性(自4.12.0起):
- 能够在LCD24上绘制RGB565动态位图。
- 字体缓存:支持二进制字体缓存,适合在显示字符串时只从文件系统加载需要的字符的情况。
- 修正了阿拉伯口音的位置问题。
版本4.13.1
发布日期:2019年8月22日
TouchGFX Core新增功能:
- 现在,使用TextArea::setWideTextAction()的WordWrapping宽文本在普通空白字符和统一码字符0x200B(零宽度空白字符)处换行。
- 通过“配置”选项卡上的“框架特性”类目,为TextureMapper选择支持的图像格式。
TouchGFX Core新增特性(自4.12.0起):
- 修正了延迟和按钮回调交互可能导致生成错误代码的问题。
- 修正了使用TouchGFX CLI生成工程未正确包含使用的TouchGFX资源的错误。
版本4.13.0
发布日期:2019年8月15日
TouchGFX Designer新增特性:
- 二进制字体:二进制字体可用作将字体信息编译并链接到应用的替代方案。 此方法的主要优势是应用的二进制数据量更少,在为设备提供不同字体集合方面具有灵活性。
- zlib-1.2.11
- freetype-2.9.1
- 支持16bpp显示的非存储器映射闪存,允许在诸如价格不贵的SPI闪存中存储图像和字体。
- Arabic ligatures Allah、Akbar、Mohammad、Salam、Rasoul、Alayhe、Wasallam和Rial Sign的Uniicode码序列识别。
- 现在可以用快捷键Alt + F、Alt + E和Alt + H分别打开“文件”、“编辑”和“帮助”菜单。
- “帮助”菜单包含指向TouchGFX帮助中心的直接链接。
- 通过“配置”选项卡修改文本配置
- 详细日志可以在TouchGFX Designer内部浮动或停靠,并且可使用快捷键Alt + L打开。
- TouchGFX Designer版本显示在窗口的标题栏上。
- 现在,“最近使用的工程”列表显示工程的完整路径,而不仅仅只有工程名称。
- 改善了在画布上移动控件时的性能。
- 改善了在图像管理器中渲染行时的性能。
- 改善了在控件树视图中重新排列工程时的性能。
TouchGFX Designer中的错误修正
- 修正了延时操作和按钮点击操作同时发生会导致编译错误的问题。
- 修正了在将画布控件添加到自定义容器实例时屏幕的画布缓冲区未能正确更新的问题。
- 修正了“在线应用”窗口中的错误信息会发生卡滞的问题。
- 修正了使用不同进度指示条的Alpha值时TouchGFX Designer中画布上的渲染错误。
- 修正了新建工程、不保存即关闭TouchGFX Designer以及重载工程会导致工程无可用字体排印的问题。
- 更新了在尝试将已打开的UI导入另一工程时生成的错误信息,使之更清晰易懂。
- 修正了在特定环境下文本管理器看起来可能有多个中心点的问题。
- 修正了当控件上出现错误时,控件“属性”选项卡不能正确显示红色边界的问题。
- 修正了在重新加载使用Consolas字体的工程后,使用该字体会导致TouchGFX Designer的画布上发生错误渲染的问题。
- 修正了生成按钮点击处理函数有时会产生空的if/else语句的错误。
- 改进了启动窗口中的搜索字段。
- 修正了当复制了一个形状控件并编辑这两个控件中的一个上的某点会导致两者都发生变化的错误。
- 修正了在从字体排印选择器更改字体时使用鼠标滚轮滚动选项会导致弹出窗口关闭的错误。
- 修正了在加载包含跳转屏幕操作的工程时不能正确加载的错误。
- 修正了在控件树视图中展开/折叠节点会导致该节点被选中的问题。
- 修正了在将UI导入应用时错误导入一些值的错误。
- 修正了在图像选择器中浏览文件夹时发生错误的问题。
- 修正了滑动容器中的页面顺序显示错误的问题。
- 修正了TouchGFX Designer画布上纹理映射器渲染错误的问题。
- 修正了已删除交互源确认错误的问题。
- 修正了重命名assets/images下含有子文件夹的文件夹可能导致TouchGFX Designer崩溃的问题。
- 修正了RadioButtons上的交互生成重复代码的问题。
- 修正了将同一图像从文件浏览器拖放到TouchGFX Designer两次会导致错误的问题。
- 修正了单选按钮交互有时会导致重复代码生成的问题。
- 修正了重写画布缓冲区可能会导致所生成代码的新行缺失的问题。
- 修正了在使用土耳其语区域格式时TouchGFX Designer会生成错误代码的问题。
- 修正了自定义操作/触发条件文本框中有长文本时会导致UI中发生不必要移位的视觉错误。
- 修正了删除应用中最后一个自定义容器之后的系列步骤会导致TouchGFX Designer崩溃的故障。
- 修正了将一个屏幕上自定义容器实例复制到自定义容器定义时操作无效的问题。
- 修正了匹配UI模板筛选器非预期工作的问题。
- 现在,TouchGFX Designer可支持包含句点的应用名称。
- 修正了将带样式的滑块从水平修改为垂直会导致样式设置错误的问题。
- 修正了更改字体排印的字体会导致UI中某些位置不能显示正确字体名称的问题。
TouchGFX Core新增功能:
- TextureMapper性能改善。 渲染时间缩短10%至60%不等,具体取决于图像格式、渲染算法、硬件设置和图像布局。
- 纹理映射器默认禁用,使用前需要启用。 点击随后的链接阅读关于此特性的更多内容:https://support.touchgfx.com/docs/miscellaneous/known-issues/#texturemapper-is-disabled-by-default
- 在所有LCD类型中增加了简单的字符串打印用于调试。 参见: https://touchgfx.zendesk.com/hc/en-us/articles/205074511
- 字体缓存现在可支持在印地文中使用的GSUB表。 参见:https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/font-cache/#caching-gsub-tables
- arm gcc编译器已更新至版本7.3.1 2018q2。
- gcc编译器已更新至版本7.3.0。
- 使用最新版的文件包更新了mingw环境。
TouchGFX Core中的错误修正:
- TextureMapper:修正/改善了双线性模式下的边缘混合。
- TextureMapper:近邻模式下的细微图像质量改善。
- 修正了阿拉伯语文本“12:34”之前在RTL中被渲染为“34:12”的文本顺序错误。
弃用的TouchGFX Core特性:
- 删除了已弃用的TRANSPARENT_COL的定义。
- 删除了Drawable::getType()。
- 删除了HAL::blitSetTransparencyKey()。
- 删除了HAL::registerTextCache()。
- 删除了HAL::cacheTextString()。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues/#project-updater-issue
版本4.12.3
发布日期:2019年7月6日
重要升级信息:
- 删除了drawGlyph的公共版本。 改用drawString。
- 字体缓存:支持二进制字体缓存,适合在显示字符串时只从文件系统加载需要的字符的情况。
- 如果BW_RLE格式导致转换的图像变大,回退BW_RLE的图像将不再恢复为BW格式, 转而由图像转换器生成警告信息。
- 支持16bpp显示的非存储器映射闪存,允许在诸如价格不贵的SPI闪存中存储图像和字体。
- Arabic ligatures Allah、Akbar、Mohammad、Salam、Rasoul、Alayhe、Wasallam和Rial Sign的Uniicode码序列识别。
TouchGFX Core中的错误修正:
- TextureMapper(双线性)无法在24bpp显示屏上正确绘制L8_RGB888和RGB888位图。
- 在不支持通配符的TextArea中以RTL模式设置含通配符的文本时可能导致崩溃。
- 现在可以生成CacheableContainer容器。
- 为了设置单张图像的配置(图像格式、抖色算法、布局旋转等),增加了新的“图像”选项卡。
- 应用设置和其他新设置已移到“配置”选项卡。
- 修正了一些印地文连字的渲染。
- 修正了应用特定GSUB置换规则时的错误。
- 修正了二进制字体包含额外规则的问题。
版本4.12.2
发布日期:2019年3月1日
TouchGFX Core新增功能:
- 现在,使用TextArea::setWideTextAction()的WordWrapping宽文本在普通空白字符和统一码字符0x200B(零宽度空白字符)处换行。
TouchGFX Core中的错误修正:
- 二进制字体:当应用配置中指定了“binary_fonts”选项时,fontConverter工具未将字距调整数据写入二进制字体文件。 这导致使用二进制字体时的文本显示错误。
版本4.12.1
发布日期:2018年11月5日
要求:
- TouchGFX现在仅供STM32微控制器使用。
- zlib-1.2.11
- freetype-2.9.1
TouchGFX Designer中的错误修正:
- 增加了对下列控件的支持:ImageProgress、BoxProgress、TextProgress、LineProgress、CircleProgress、Line、Circle、BoxWithBorder、FlexButton、ScrollList、ScrollWheel和SwipeContainer。
- 可以在屏幕上调整画布缓冲区设置。
- 支持屏幕转换:CoverTransition。
- 现在,会记录下列系统信息以便在支持的场景中使用:用户名、Designer版本、Designer安装路径、Windows版本、当前区域性、安装的.NET版本。
- 现在可以为应用导入具有任何分辨率的UI(删除了分辨率检查)。
- 增加了用于显示/隐藏修剪过的控件的按钮。
- 改善了在画布上对控件进行拖曳和大小调整时的性能。
- 修正了当控件上出现错误时,控件“属性”选项卡不能正确显示红色边界的问题。
- 修正了在重新加载使用Consolas字体的工程后,使用该字体会导致TouchGFX Designer的画布上发生错误渲染的问题。
TouchGFX Core中的错误修正:
- 现在,Circle和AbstractShape支持更高精度的圆弧起点和圆弧终点,可获得更平滑的圆弧。
- 为了扩大值范围,内部Q5结构使用32位而非16位。
- 增加了Circle::getPrecision()。
版本4.12.0
发布日期:2018年1月25日
错误修正:
- 如果应用包含LCD.hpp并要求访问HAL,将不再可行,因为LCD.hpp不再包含HAL.hpp。 在这种情况下,务必包含HAL.hpp。
- 如果对非透明图像使用位图格式ARGB8888,将不再应用抖色转为565,而是保留其完整的888色彩值。 如果对透明图像使用ARGB8888,则当不透明格式为RGB565时,仍会使用抖色转为565。
- 如果BW_RLE格式导致转换的图像变大,回退BW_RLE的图像将不再恢复为BW格式, 转而由图像转换器生成警告信息。 使用TouchGFX Designer(或新的配置文件)为每张图像指定BW或BW_RLE。
TouchGFX Designer新增特性:
- 现在,定制容器可以嵌套在另一个定制容器中。 因此,可以无限地用自定义组件构成更大的自定义组件。
- 自定义容器支持自定义触发条件和自定义操作,屏幕支持自定义操作。 这些触发条件和操作支持从一个组件到另一个组件的信息流。 在TouchGFX Designer内部的交互中使用此类触发条件和操作,可以在不离开TouchGFX Designer的情况下实现更真实的应用表现。 请查看文档获取更多介绍信息。
- 现在可以生成CacheableContainer容器。
- 现在,在屏幕和CustomContainerDefinitions之间切换时会记住之前选择的屏幕和CustomContainerDefinition。
- 在新建文本和有使用文本的控件时会使用上一次使用的字体排印。
TouchGFX Core新增功能:
- 更新了框架工具使用的第三方库。 使得文本更美观。
- 通过更大的字距调整表改善了字距调整。
- 现在,在某些情况下,泰文字体的渲染效果更佳(行间距更小),Sara Am的渲染效果更佳。
- 初步支持印地文(天城体)。 应用了下列GSUB表:nukt (Nukta Forms)、akhn (Akhands)、rkrf (Rakar Forms)、cjct (Conjunct Forms)、vatu (Vattu Variants)、rphf (Reph Forms)、pref (Pre-Base Forms)、half (Half Forms)、blwf (Below-base Forms)、abvf (Above-base Forms)、pstf (Post-base Forms)和cfar (Conjunct Form After Ro)。 目前不支持下列GSUB表:abvs (Above-base Substitutions)、blws (Below-base Substitutions)和psts (Post-base Substitutions)。 此外,并非所有GSUB表类型都能支持。
- 增加了新的Line::updateLengthAndAngle() API。
- 增加了对部分帧缓冲渲染和更新的支持。
- 增加了简单的字符串打印用于调试。
- 允许在初始化后修改BitmapCache。
- 新的宏,可用于设置Flash烧录的分区名称。
- 增加了Circle::updateArc(),可以用最小的无效区域更新圆弧起点和圆弧终点。
- 更新了CircleProgress,可以用更精密的计算进行更新。
- 增加了CacheableContainer,用于屏幕之外控件的渲染。
- 增加了对具有16位、24位和32位调色板的L8图形资源的支持。
- 增加了对通过DMA2D进行L8硬件加速的支持。
- 增加了新的LCD32bpp帧缓冲渲染器。
TouchGFX Designer中的错误修正:
- 修正了 Ctrl + A(全选)对CustomContainerDefinitions不起作用的问题。
TouchGFX Core中的错误修正:
- 修正了在设置新值时重绘circleProgressIndicator的问题。
- 删除了屏幕转换完成后额外的屏幕重绘。 在一些平台上,这样的额外重绘会带来性能问题。 在Screen::afterTransition()中使整个屏幕失效化(如有必要)现在改为了应用开发者的责任。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues/#project-updater-issue
版本4.11.0
发布日期:2017年12月15日
错误修正:
- 如果应用包含LCD.hpp并要求访问HAL,将不再可行,因为LCD.hpp不再包含HAL.hpp。 在这种情况下,务必包含HAL.hpp。 应用示例Demo1和Demo2的较早版本存在这个问题并已更新。
TouchGFX Designer新增特性:
- 增加了对下列控件的支持:ImageProgress、BoxProgress、TextProgress、LineProgress、CircleProgress、Line、Circle、BoxWithBorder、FlexButton、ScrollList、ScrollWheel和SwipeContainer。
- 增加了对复制和粘贴屏幕和CustomContainerDefinitons的支持。
- 增加了对重新排列CustomContainerDefinitions的支持。
- 现在,会记录下列系统信息以便在支持的场景中使用:用户名、Designer版本、Designer安装路径、Windows版本、当前区域性、安装的.NET版本。
- 现在可以为应用导入具有任何分辨率的UI(删除了分辨率检查)。
- 为CustomContainerInstances增加了新的树图图标。
- 改善了在画布上对控件进行拖曳和大小调整时的性能。
- 改善了“详细日志”窗口中输出的可读性。
- 向“文本”选项卡增加了控件通配符符,以便在使用一些控件时添加默认通配符字符。
- 改善了加载工程时的性能。
- 改善了生成工程时的性能。
- 改善了确认引擎的性能。
- 增加了对6位色彩显示屏(8bpp)的支持。
- 增加了对为RadioButtons设置RadioButtonGroup的支持。
- 增加了对显示旋转(横屏/竖屏)的支持。
- 增加了对在TouchGFX Designer中设置横屏/竖屏模拟器皮肤的支持。
- 增加了对下列控件的支持:AnalogClock、DigitalClock、TextureMapper、AnimatedTextureMapper&Shape。
- 现在,TouchGFX Designer可生成Makefile和Visual Studio文件用于运行仿真器。
TouchGFX Core新增功能:
- 现在,Circle和AbstractShape支持更高精度的圆弧起点和圆弧终点,可获得更平滑的圆弧。
- 为了扩大值范围,内部Q5结构使用32位而不是16位。
- 改善了阿拉伯文文本的渲染效果。
- 增加了负行距处理功能。
TouchGFX Designer中的错误修正:
- 修正了在屏幕或自定义容器大小发生变化时ModalWindow控件不会调整大小的问题。
- 修正了当文件的隐藏属性设置为隐藏时生成代码失败的问题。
- 修正了修改屏幕或自定义容器名称的大小写导致重新编译报错的问题。
- 修正了互联网丢失无在线应用可用时,会导致Designer崩溃的问题。
- 修正了在加载工程后ModalWindow控件的位置生成错误。
- 修正了在将多个元素移入容器后按下撤销按钮会导致崩溃的问题。
- 修正了ImagePicker中尽管当前文件夹下有子文件夹仍然显示“空占位符”的视觉错误。
- 修正了Designer不能通过代理服务器使用默认认证的问题。
- 修正了在尝试烧录错误目标时Designer不能正确报告错误的问题。
- 修正了没有足够权限写入所选touchgfx路径会导致Designer崩溃的问题。
- 修正了Designer错误地将屏幕修改理解为未保存的修改的问题。
- 修正了“最近使用的应用”列表中的顺序问题。 现在,在打开应用时可以正确更新。
- 现在,Designer会在您加载另一个应用时关闭运行的仿真器进程。
- 修正了可以拖曳自定义容器实例内部控件的问题。
- 有时不能正确渲染Circle,并且不能正确计算无效矩形。
- 修正了在CustomContainer中的FlexButton上设置交互会生成错误代码的问题。
- 修正了在控件上设置Mixin不可撤销的问题。
- 修正了向FlexButton添加样式的撤销/重做功能缺失的问题。
- 修正了在交互中使用许多滑块回调时初始化顺序错误的问题。
TouchGFX Core中的错误修正:
- 修正了CWR Painter中4bpp和2bpp的精度问题。
- 有时不能正确渲染Circle,并且不能正确计算无效矩形。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues/#project-updater-issue
版本4.10.0
发布日期:2017年11月20日
错误修正:
- 修正了在Designer的画布上拖曳组件有时会导致异常的问题。
TouchGFX Designer新增特性:
- 增加了对下列控件的支持:ImageProgress、BoxProgress、TextProgress、LineProgress、CircleProgress、Line、Circle、BoxWithBorder、FlexButton、ScrollList、ScrollWheel和SwipeContainer。
- 可以在屏幕上调整画布缓冲区设置。
- 支持屏幕转换:CoverTransition。
- 现在,会记录下列系统信息以便在支持的场景中使用:用户名、Designer版本、Designer安装路径、Windows版本、当前区域性、安装的.NET版本。
- 现在可以为应用导入具有任何分辨率的UI(删除了分辨率检查)。
- 增加了用于显示/隐藏修剪过的控件的按钮。
- 改善了在画布上对控件进行拖曳和大小调整时的性能。
TouchGFX Core新增功能:
- 现在,Circle和AbstractShape支持更高精度的圆弧起点和圆弧终点,可获得更平滑的圆弧。
- 为了扩大值范围,内部Q5结构使用32位而不是16位。
- 增加了Circle::getPrecision()。
- 增加了函数FadeAnimator::isFadeAnimationRunning()、MoveAnimator::isMoveAnimationRunning()、AnimatedImage::isAnimatedImageRunning()和ZoomAnimationImage::isZoomAnimationImageRunning()。 原来的isRunning()函数已弃用。
- 增加了ListLayout::setDirection()和getDirection()。
- roo gem从1.13.1更新至2.7.1。
- 按下SHIFT-F3会将屏幕复制到剪贴板(仅限Windows)。
- 按下CTRL-F3会将接下来的50个屏幕保存到屏幕截图文件夹。
- 现在,生成的资源可以正常缩进。
- 增加了ScrollableContainer::setScrollbarsPermanentlyVisible()。
TouchGFX Designer中的错误修正
- 修正了在屏幕或自定义容器大小发生变化时ModalWindow控件不会调整大小的问题。
- 修正了当文件的隐藏属性设置为隐藏时生成代码失败的问题。
- 修正了修改屏幕或自定义容器名称的大小写导致重新编译报错的问题。
- 修正了互联网丢失无在线应用可用时,会导致Designer崩溃的问题。
- 修正了在加载工程后ModalWindow控件的位置生成错误。
- 删除了加载Designer工程时不必要的重新编译。
- 修正了ImagePicker中尽管当前文件夹下有子文件夹仍然显示“空占位符”的视觉错误。
- 修正了Designer不能通过代理服务器使用默认认证的问题。
- 修正了在尝试烧录错误目标时Designer不能正确报告错误的问题。
- 修正了没有足够权限写入所选touchgfx路径会导致Designer崩溃的问题。
- 修正了Designer错误地将屏幕修改理解为未保存的修改的问题。
- 修正了在调整容器大小时不能正确显示容器内控件的视觉错误。
- 现在,Designer会在您加载另一个应用时关闭运行的仿真器进程。
- 修正了可以拖曳自定义容器实例内部控件的问题。
- 有时不能正确渲染Circle,并且不能正确计算无效矩形。
- 修正了半线宽大于半径时的圆的问题。
TouchGFX Core中的错误修正:
- 修正了LineProgress.cpp中setValue的x& y值计算错误。
- 有时不能正确渲染Circle,并且不能正确计算无效矩形。
- 修正了半线宽大于半径时的圆的问题。
- 修正了绘制线条长于2047像素(如1449像素宽和1449像素高)的问题。
- 修正了妨碍一些阿拉伯文连字正确渲染的问题。
更新过程:
- 此版本可能需要额外的步骤。 请参阅文章“已知问题”了解详情:https://support.touchgfx.com/docs/miscellaneous/known-issues/#project-updater-issue
版本4.9.4
发布日期:2017年11月16日
错误修正:
- 修正了将TextArea控件放入容器时Designer的几个问题。
版本4.9.3
发布日期:2017年11月8日
错误修正:
- 修正了在Designer的画布上拖曳组件有时会导致异常的问题。
- 各种板件的原有示例、演示和端口均已全部从框架中删除,现在以软件包的形式提供。
- 优化了离线时的错误描述。
- Designer现在的应用文件结构更加灵活,能够自动更新IAR和Keil IDE工程,无关文件位置。
- 增加了Designer对ScrollableContainer和ListLayout控件的支持。
- 增加了对SW4STM32 IDE的支持。
- 增加了对IAR Embedded Workbench版本8.10的支持。
- 修正了“等待”交互中的计数器初始化。
- GNU Arm Embedded工具链(GCC交叉编译器)已更新至版本6-2017-q2-update(gcc版本6.3.1)。
- PC模拟器的GNU编译器已更新至版本6.3.0。
- 为Cortex-M4f和Cortex-M7增加了用-mfloat-abi=hard编译的gcc核心库。
- 在极少数情况下,拖动容器可能导致坐标错误。
- 修正了通配符文本缓冲区的null终止符错误。
- 修正带标签的按钮的文本渲染问题。
- tgfx.exe打包器适用于更复杂的文件布局。
- 包含了容器的源代码。
- 额外的细微Designer UI修正和改善。
版本4.9.2
发布日期:2017年3月10日
错误修正:
- LCD4bpp现在绘制字符的速度最多提高了15%。
版本4.9.1
发布日期:2016年12月14日
错误修正:
- 修正了将TextArea控件放入容器时Designer的几个问题。
- 优化了基于TFT控制器的平台上的单帧缓冲区配置的处理,许多情况下不再需要外部RAM。
- 在具有特定安全策略配置的PC上,Designer不能正确地新建工程问题。
- Designer现在的应用文件结构更加灵活,能够自动更新IAR和Keil IDE工程,无关文件位置。
- 增加了Designer对ScrollableContainer和ListLayout控件的支持。
- Designer中的一些字体排印变更未导致新代码的生成。
- 现在,在具有Chrom-ART的ST目标硬件上,Box控件将由DMA绘制,即使alpha << 255(BLIT_OP_FILL_WITH_ALPHA支持)。
- 现在,TextArea和含通配符的TextArea支持setWideTextAction(),可使长文本行自动换行。
版本4.9.0
发布日期:2016年9月12日
性能
- 增加了软件包管理器,用于处理板支持包、演示和示例。 现在,Designer可从在线存储库获取这些资源。
- 各种板件的原有示例、演示和端口均已全部从框架中删除,现在以软件包的形式提供。
- 显著改善了Designer中的文本处理。 现在可以在Designer中使用翻译文件和通配符,因此不必再手动编辑texts.xlsx文件。
- Designer现在的应用文件结构更加灵活,能够自动更新IAR和Keil IDE工程,无关文件位置。
- 增加了Designer对ScrollableContainer和ListLayout控件的支持。
- 增加了对SW4STM32 IDE的支持。
- 增加了对IAR Embedded Workbench版本8.10的支持。
- 图像转换器现具有对文件夹执行操作的选项,无需对每个.png文件都调用一次。 这大幅提高了图像转换的速度。 此模式是新工程的默认模式。
- GNU Arm Embedded工具链(GCC交叉编译器)已更新至版本6-2017-q2-update(gcc版本6.3.1)。
- PC仿真器的GNU编译器已更新至版本6.3.0。
- 为Cortex-M4f和Cortex-M7增加了用-mfloat-abi=hard编译的gcc核心库。
- 将可注册为定时器控件的数目从24个增加至32个。 此外,增加了获取关于当前注册控件的信息的函数。
错误修正:
- HALSDL中的新函数,用于设置模拟器窗口的标题,参见HALSDL::setWindowTitle()。
- 支持波斯文和阿拉伯文连字,可识别最多三个字符的序列。
- 使用IAR的STM32F756G-EVAL现在可支持外部存储器的刷写。
- 修正了DMA类中的未初始化变量问题。
更新过程:
- 此版本可能需要额外的步骤。
版本4.8.0
发布日期:2016年6月14日
新特性
- 增加了对2bpp灰度显示屏的支持。
- 增加了对4bpp灰度显示屏的支持。
性能
- ST板的DMA驱动程序:展现STM32F7的DMA2D实例初始化过程。 修正了对F4-Discovery错误使用CLUT_CM的问题。
- 修正了导致TextureMapper可能会读取源位图存储区之外内存区域的问题。
- ST板触摸控制器驱动程序在查询前已能正确地检查初始化是否正常。
- 不是总能检测到模拟器中的鼠标点击事件。
- ImageConvert.exe的默认格式是RGB565(也是其他不透明格式的合适的默认格式)
- AnimatedImage - 不应再使用setBitmap(..),其已改为AnimatedImage的私有函数,请改用setBitmaps(..)。
- 现在,所有Makefiles使用绝对路径替代真实路径。
- AnimatedImage现在允许从AnimationEnded回调函数重新开始图片动画。
弃用
- 兼容现有4.x应用和HAL端口。
- 模拟器窗口的大小不再可能意外调整。
- 按F2键突出显示无效区域现适用于旧版HALSDL。
- 在某些情况下,PainterGRAY2Bitmap、PainterGRAY4Bitmap、PainterRGB565Bitmap和PainterRGB888Bitmap均未能验证绘图是在位图尺寸范围内。
- 现在,为使屏幕截图上的色彩正确,HALSDL2(模拟器)在屏幕上使用24bpp。
- TiledImage::setOffset()现在能正确处理空位图。
- TiledImage::getSolidRect()有时会报告错误矩形。
- 如果旋转了TextArea中的文本,resizeToCurrentText()和resizeHeightToCurrentText()会调换宽度/高度。
- 函数getTextHeight()不考虑行间距。 像resizeToCurrentText()这样的函数和其他使用getTextHeight()函数的函数不会正确地调整大小。
- SlideMenu::setState()未能正确处理EXPANDED状态。
更新过程
- 现在,由于增加了TouchGFX设计器,通过.msi安装程序进行安装。
- 兼容现有4.x应用和HAL端口。
版本4.7.0
发布日期:2016年3月14日
性能
- 现在,所有标准控件和容器的源代码均包含在内。 参见目录touchgfx/framework/source/touchgfx。 请注意,这些类仍然存在于核心库中,并且源代码文件默认不添加到IAR/Keil/gcc工程中。
- STM32F4探索板会在16bpp模式下用错误的颜色绘制实心矩形。
- 显著改善了画布控件系统和所有标准绘图部件的性能。 如果绘制许多像素,预期性能会大幅提升,较小的形状(如图形线条)也会有性能的少量提升。 演示中使用的“PainterVerticalAlpha”也已更新。
- 现在,文本转换器工具将组合所有语言的唯一翻译文件,因而减少了空间占用量。 在资源生成期间会打印该过程的结果。 注意:此为默认行为。 如果您有自己操纵文本数据结构(如将一种语言加载到RAM中)的现成工程,此优化可能会破坏您的代码。 可通过添加下列代码禁用优化:remap_identical_texts := no(对于基于“make”的生成)<RemapIdenticalTexts>no</RemapIdenticalTexts>(对于MSVS)
- 将模拟器使用的SDL版本从1.2更新至2.0.4。 SDL1.2仍存在于发布的文件中,但现在所有示例和项目均使用SDL2。
- 支持用.png文件作为模拟器皮肤。 如果.png文件包含透明区域,模拟器窗口形状将发生相应变化。 参见display_orientation_example获取代码示例。
- 以char*作为源字符串的Unicode::strncpy()不能正确地复制含大于127的ascii码的字符。
- 现在,TextArea和含通配符的TextArea支持setWideTextAction(),可使长文本行自动换行。
- 增加了在运行时间遇到不存在的字形时显示“fallback”字符的能力。 这可在文本数据库的字体排印表中配置。
- 增加了在字体中强制包含额外字形的选项。 这极大地简化了编译时字形未知的情况下动态文本的处理。 在文本数据库的字体排印表中配置。
- 现在,TextConvert实用程序的输出经过后处理,通过将相同字符串映射到同一存储区来节约大量空间。
- 增加了名为BITMAP_ANIMATION_STORAGE的内置BitmapId,在将位图分配给控件时,可用来指示动画存储。
- 增加了config/gcc/app.mk和config/msvs/Application.props中的抖色算法选项。
- 可使用下列代码,以编程的方式保存模拟器屏幕截图: #ifdef SIMULATOR (static_cast<HALSDL2*>(HAL::getInstance()))->saveScreenshot(); #endif
- 现在,ScrollableContainer会恰当地忽略不可见元素。
- DigitalClock支持在小时指示位之前显示零(若小时数 <10)。
- 模拟器现在可以突出显示无效区域。 按下F2键可启用/停用此功能。
- 增加了使用va_list参数而非省略号的Unicode::vsnprintf函数。
弃用
- 如果格式字符串为“% f”,则Unicode::sprintfFloat不打印 <空格>(替代“+”)。 此外,范围[-1..0]以内的浮点值不打印符号,例如-0.5,却会打印为0.5。
- 修正了导致TextureMapper可能会读取源位图存储区之外内存区域的问题。
- 使用IAR的STM32F756G-EVAL现在可支持外部存储器的刷写。
- Slider.hpp中的一些方法缺少虚函数声明。
- 修正了STM32F769探索板BoardConfiguration中的问题,该问题导致24bpp色彩模式显示不正确。
- AnimatedImage - 不应再使用setBitmap(..),其已改为AnimatedImage的私有函数,请改用setBitmaps(..)。
- 更新了工程文件和Makefile,以便能够将TouchGFX框架放在开发的工程所在盘之外的其它盘上。
TouchGFX Environment(版本2.8)
- “make.exe”现在的版本为4.1,通过添加make命令行选项如“-j8”等来支持并行编译。 这可以显著加快编译速度。 如果您的makefile来自TouchGFX 4.2.0 {#version-420}或更早版本,您需要更新或使用make-3.81.exe。
- g++有时可能会报告“驱动器中无磁盘。 请将磁盘插入驱动器E:。” 该问题可以通过将gcc从版本4.8.1更新至版本4.9.3{#version-493} 来解决。
版本4.6.1
发布日期:2016年2月2日
新特性
- 对Cortex-M4和Cortex-M7上GCC核心库的优化改善,带来的加速效果显著优于TouchGFX 4.6.0 {#version-460},特别是对于TextureMapper和Canvas控件更是如此。
错误修正
- HALSDL中的新函数,用于设置模拟器窗口的标题,参见HALSDL::setWindowTitle()。
- 如果同时在使用其他DMA通道,则LPC17xx、LPC18xx和LPC43xx的DMA驱动程序不能正常运作。 它们现在只适用于监控通道0的标记。
- 为防止在某些特定情况下插入%%,改进了touchgfx::TextAreaWithWildcards中字符“%”的处理。
弃用
- 增加了IAR链接器重定向命令,用以修使用IAR 7.x编译Cortex-M4目标时的链接器错误。
- 在极少数情况下,使用setupBuffer()将不同的内存缓冲区分配给CanvasWidgetRenderer时可能导致内存崩溃。
- 在极少数情况下,TextureMapper可能在帧缓冲之外进行绘制。
- TiledImage的偏移量设置不能正常工作。
- 修正了某些情况下删除动态位图时可能导致内存崩溃的两个问题。
- 增加了AnalogClock中缺失的虚函数声明。
- 修正了GCC链接器脚本中LPC4088显示模块部分导致文本和字体被放入外部闪存的问题。
- 如果使用自带的fontconvert.out,当输出目录不存在时,现在可以自动创建输出目录。
- 在极少数情况下,ScrollableContainers可能向子容器发送错误拖动事件。
- 宽度不可以被8整除的单色(1bpp)显示屏不能正确显示文本。
- STM32F746G探索板上的默认触摸采样率略有增加。
版本4.6.0
发布日期:2015年11月26日
新特性
- 修正了在STM32F7目标板上使用IAR 7.x编译时罕见的GUI任务挂起问题。
- STM32F4探索板会在16bpp模式下用错误的颜色绘制实心矩形。
- 新增控件TiledImage。 将显示一张图像或多张重复图像。 图像的重复次数取决于控件的大小和图像的大小。
- 新增控件RepeatButton。 是一个在按下时会周期性触发点击事件的按钮控件。
- 新增控件AnimationTextureMapper。 TextureMapper自带动画功能。 请参见animation_texture_mapper_example。
- 新增容器AnalogClock和DigitalClock,参见clock_example。
- 以char*作为源字符串的Unicode::strncpy()不能正确地复制含大于127的ascii码的字符。
- 新增容器ModalWindow。 可在主屏幕上创建一个窗口,可屏蔽主屏幕的其余部分。 只要模态窗口可见,点击时就不会传递到主屏幕。 参见示例modal_window_example。
- 新增容器SlideMenu。 带有激活按钮的侧方/顶部/底部-菜单动画化,可使其滑入/滑出屏幕。 如需空闲一段时间,可以设置自动隐藏超时。
- Canvas Widget Line支持ROUND_CAP_ENDING和setCapPrecision(),用来控制圆形线端。
- 模拟器现在可以生成非常接近于硬件频率的tick。
- 在模拟器窗口的标题中放入了鼠标X和Y坐标。 (在运行模拟器时按F1键可停止该功能)。
- 基于STM32F7 MCU和STM32F7的板的ST Cube驱动程序更新至版本1.4.0。
- 新增了对STM32769I-EVAL板的支持
- 新增了对STM32F769I探索板的支持
- 为防止原来的屏幕截图被意外覆盖,现在用带时间戳的名字保存从模拟器(F3)制作的屏幕截图。
- 现在,为了便于找出最佳的画布内存缓冲区大小,模拟器会输出画布控件内存使用量。
弃用
- ST板的DMA驱动程序:展现STM32F7的DMA2D实例初始化过程。 修正了对F4-Discovery错误使用CLUT_CM的问题。
- 如果同时在使用其他DMA通道,则LPC17xx、LPC18xx和LPC43xx的DMA驱动程序不能正常运作。 它们现在只适用于监控通道0的标记。
- ST板触摸控制器驱动程序在查询前已能正确地检查初始化是否正常。
- 不是总能检测到模拟器中的鼠标点击事件。
- ImageConvert.exe的默认格式是RGB565(也是其他不透明格式的合适的默认格式)
- ImageConvert不能用于预定要进行压缩(BW_RLE)和旋转(文件名中的含.90.) 的BW图像(压缩后图像会过大(回到BW格式))。
- 现在,所有Makefiles使用绝对路径替代真实路径。
- AnimatedImage现在允许从AnimationEnded回调函数重新开始图片动画。
- 将STM32756G-EVAL板的QSPI闪存大小修正为64MBytes。
- 为STM32F7HAL::flushFrameBuffer增加了D缓存失效功能。 此举修正了在单帧缓冲区模式下且帧缓冲区位于SRAM中时STM32F7上偶发的图形错误。
- otm8009a显示屏(STM32769-DISCO、STM32769-EVAL、STM32469-DISCO和STM32469-EVAL)现使用最大显示屏亮度。
- 为IAR 7.50.x中关于va_list名称重整的错误增加了临时解决方法。
更新过程
- 兼容现有4.x应用和HAL端口。
版本4.5.1
发布日期:2015年10月27日
弃用
- 修正了在STM32F7目标硬件上使用Keil 5.x编译时偶发的GUI任务挂起问题。
- 修正了STM32 F469评估/探索板上在横屏和单帧缓冲模式下使用DSI时偶发的撕裂效果。
- 为了支持内部闪存烧录,修正了STM32 F469板的IAR闪存加载器设置(注意:QuadSPI闪存仍然必须从ST-Link Utility进行烧录,因为还没有用于此用途的IAR加载器)。
- vApplicationIdleHook(特定于FreeRTOS)过去会阻止FreeRTOS在任务被删除时释放存储空间,现在不再阻止。
- 删除了在调试Cortex-M7应用时,IAR Workbench中弹出的恼人的“获取替代文件”对话框。
- 增加了PixelDataWidget::getAlpha()。
- Windows上可执行的仿真器现在在任务栏上会有一个图标,以便识别。
版本4.5.0
发布日期:2015年10月6日
新特性
- 支持两种新语言,即阿拉伯语和希伯来语,从右至左进行文本渲染。 RTL字符串可与LTR文本和数字相混合。
- 为触摸屏输入引入了“手指大小”的概念。 在使用时,TouchGFX会尝试在报告的x、y坐标周围区域找到可触摸的控件,因此用户不必再精确地点击控件。
- 现在,使用Bitmap::dynamicBitmapCreate方法可以在运行时创建位图。 在诸如显示从SD卡加载的.bmp文件等情况下有用。 参见dynamic_bitmap_example。
- 现在,为了快速访问,演示和示例的Visual Studio工程在Resources文件夹下包含了Application.props。 在修改Application.props内容时,通常可能需要重建。
- 强化了位图缓存管理,允许从缓存中删除位图,可为缓存其他位图腾出空间。
- 引入了新控件PixelDataWidget。 此控件能够显示在运行时获得的原始像素数据(如视频样例)。
- Windows上可执行的仿真器现在在任务栏上会有一个图标,以便识别。
- TouchGFX支持的ST板现在可以使用命令“make intflash”来烧录内部闪存,前提是安装了ST-Link Utility版本3.7+。
- 为了支持更多标准格式限定符(如%02d),已大幅改善并更新了Unicode::snprintf()。
- 为支持浮点型增加了Unicode::snprintfFloat()(在单独的函数中,因为“%f”va_args方法会强制包含双精度浮点型)。
- 改善了图像转换器抖色算法(浮点运算)。 此外,还增加了对新抖色算法类型的支持,并且考虑了16/18位显示屏中各种低(未使用)位连线的硬件。
- touchgfx::ButtonWithLabel现在包含updateTextPosition()方法,可在修改标签内容(如修改语言)时确保水平文本居中。
- touchgfx::TextArea新增新方法setBaselineY(),允许根据文本基线而非左上角来布置文本。
- 现在,字形编码的内部格式将第一个像素存储在最低有效位而不是最高有效位。
- 为了支持16与24位色彩之间的无缝切换,色彩值的规格已从uint16_t切换为colortype。
- 现在,touchgfx::TextArea类新增setIndentation()方法,可防止字符字形在延伸到前一个字符下方时在极少数情况下会被切割(touchgfx::Keyboard类中新增的setTextIndentation()方法同样如此)。
- STM32F7xx和STM32F4x9端口现在支持touchgfx::Box的DMA传输。
- 之前只对“VSYNC”中断“切换”GPIO::VSYNC_FREQ信号 (NXP LPC18xx、NXP LPC43xx、Freescale MK70F12和ST stm32f4x9)。 现在,此信号在“VSYNC”中断上为高电平,在“Front-Porch-Entered”中断上为低电平。
- Cortex-M3的GCC支持。
弃用
- 修正了STM32F7上极少发生的由无效QSPI内存区的推测性缓存访问导致的崩溃问题。 如果是基于版本4.4.x,则更新BoardConfiguration。
- 增加了对STM32F746G-DISCO和STM32756G-EVAL板的支持
- 增加了对具有DSI显示屏的STM32F469处理器的支持
- touchgfx::DragEvent和touchgfx::GestureEvent现在使用和报告有符号坐标而非无符号坐标。 由于拖曳/手势是用接收它们的可绘制对象的相对坐标表示的,因而更加合理。
- snprintf(”%x”)会输出大写十六进制字符。 现在,“%X”输出大写十六进制字母,”%x”输出小写十六进制字母,就像标准snprintf()一样。
- 修正了在Linux上演示的随机性问题。
- 修正了使用高倾斜度字体时的重绘问题。
- 所有TouchGFX应用的Model类中指向ModelListener的指针均未正确初始化(NULL)问题。
- 修正了对touchgfx::TextArea中高倾斜度字体的支持问题。
- 图像转换器中的小问题,列0可能会得到稍有错误的像素色彩。 因此,整个图像可能稍有错误,几乎注意不到。
- 滑块中的小错误,数值分布不均匀。
错误修正
- LCD::drawGlyph()已弃用。 改为使用LCD::drawString。
更新过程
- 兼容现有4.x应用和HAL端口。
版本4.4.2
发布日期:2015年6月8日
错误修正:
- 修正了在STM32F7目标硬件上使用Keil 5.x编译时偶发的GUI任务挂起问题。
版本4.4.1
发布日期:2015年1月14日
错误修正:
- 修正了在STM32F7目标硬件上使用Keil 5.x编译时偶发的GUI任务挂起问题。
- 修正了STM32 F469评估/探索板上在横屏和单帧缓冲模式下使用DSI时偶发的撕裂效果。
- 为了支持内部闪存烧录,修正了STM32 F469板的IAR闪存加载器设置(注意:QuadSPI闪存仍然必须从ST-Link Utility进行烧录,因为还没有用于此用途的IAR加载器)。
- STM32F746G评估板性能 在修改Application.props内容时,通常可能需要重建。 请注意,由于LED2和LED4使用的是IO扩展器,不适合测量性能,因此此板上默认只有两个信号有效。
- 删除了在调试Cortex-M7应用时,IAR Workbench中弹出的恼人的“获取替代文件”对话框。
版本4.4.0
发布日期:2014年10月29日
新特性
- 增加了对Cortex-M7内核的支持。
- Mixin: 增加了FadeAnimator。 FadeAnimator mixin使模板类T,能够将其从当前alpha值转到指定结束alpha值的消隐动画化。 参见app/example/move_fade_example。 参见HAL::setFingerSize()。
- 现在,ScalableImage和ZoomAnimationImage支持按像素设置alpha和按位图设置alpha。
- 现在,为了快速访问,演示和示例的Visual Studio工程在Resources文件夹下包含了Application.props。 在修改Application.props内容时,通常可能需要重建。
- 支持BDF格式的位图字体。 如果字体文件中没有要求的字号可用,字体转换器会在错误信息中写入支持的字号。 参见示例monochrome_example了解使用方法。
- 增加了对LPC4088处理器和Embedded Artists LPC4088 Display Module板的支持。
- 所有ST板现在都可以从命令行进行刷写,前提是安装了ST-Link Utility版本3.7。 只需使用‘’make -f target/ST/<board>/Makefile flash' 编译应用并将其刷写到连接的板上。 如果刷写期间超时,转至Windows中的设备管理器并禁用“磁盘驱动器”下的“MBED微控制器USB设备”。
- 新的touchgfx-env版本2.5使用了新的gcc交叉编译器版本4.9.3{#version-493}。 旧版本4.8.4在极少数情况下可能会生成Cortex-M7内核的无效代码。
板件支持
- 修正了导致键盘控件在极少数情况下不能正常渲染的问题。
- 修正了在将控件放入coords != {0,0}的Container(其自身被放入ScrollableContainer)中时导致拖曳事件坐标错误的问题。
- 现在,Application类正常记录为给定控件调用registerTimerWidget和unregisterTimerWidget的次数对比,意味着如果多次注册,在控件不再接收tick事件前,需要相同次数的取消注册。
- 一些ZoomAnimationImage函数应当是但不是虚函数问题。
弃用
- 现在,在使用“rotate90”时,TextureMapper和ScaleableImage能够正确地绘制图像。
- 修正了STM32F4DMA.cpp中潜在的初始化顺序问题。
- 修正了一种字体中字形的数量被限制在32768个的问题。 现在,预设支持每种字体65536个字形。
- 为640x480和480x272分辨率增加了两个新的演示例程,展现新特性、图表、国际化和自定义控件。
- 现在,Drawable.setPosition()调用setXY()、setWidth()和setHeight()以便于子类化。
版本4.3.0
发布日期:2014年10月17日
新特性
- 现在支持单色1BPP显示屏。 参见手册了解详细信息。 参见移植指南中的“优化”一章了解如何对现有移植启用该优化。 强烈建议启用优化。 此优化对4.2.0 {#version-420} 板套件中的所有合适评估板是打开的。
- Alpha通道抖色。 现在,为实现更流畅的alpha渐变效果,可以对有alpha通道的图像的alpha通道使用抖色功能,参见示例或手册中的“应用开发”一节了解详细信息。
- 1BPP(单色)位图的压缩。 增加了BW_RLE的图像格式选项,如果占用的空间少于常规的每像素格式,将导致位图自动运行长度编码。 在许多情况下,位图的空间大小会显著减少。 参见手册中的“高级”一章了解详细信息。
- 增加了滑块控件。 参见手册或slider_example了解更多信息。
- 为了配合make-4.1,更新了Makefiles。
- 增加了对LPC4088处理器和Embedded Artists LPC4088 Display Module板的支持。
- 现在,通过在位图文件名中包含字符串“.int.”,可将单独的位图放入内部Flash而不是外部Flash。
- MoveAnimator、FadeAnimator和ZoomAnimationImage现已增加cancelMoveAnimation/cancelFadeAnimation/cancelZoomAnimation方法。
演示
- 硬件抽象层架构已重构,因此各种硬件组件(MCU和驱动器)的所有共用代码已在不同目标板件上共享。 因此,只要包含一个或多个TouchGFX支持的硬件组件,就能大幅简化新板/自定义板的移植工作。
- 家居控制演示现在支持STM324xI-EVAL 5.7”板。
板件支持变更
- 现在,随TouchGFX的评估版本分发硬件抽象层源代码而非预编译的库。 因此,能够将评估版本移植到定制硬件,而不是仅限于支持的评估板。 相反地,评估版本现在有TouchGFX水印,有时会显示。
- 由于改进了渲染算法,内存使用量下降。 LPC4350(无内部闪存) 此外,静态分配内存空间也能减少约1KB。
- 优化了TouchGFX评估板的SPIFI初始化。
- 为640x480和480x272分辨率增加了两个新的演示例程,展现新特性、图表、国际化和自定义控件。
- 现在,Drawable.setPosition()调用setXY()、setWidth()和setHeight()以便于子类化。
- 在实现自己的绘图工具时,推荐使用AbstractPainterRGB565和AbstractPainterBW作为基类。
- CanvasWidgets现在有setAlpha()和getAlpha()方法。 您的自定义Painter类必须实现,或者从AbstractPainterRGB565类继承。
- 已注册定时器控件的最大数量从16增加至24。
- touchgfx-env更新至2.4。 环境不再发出蜂鸣声。
- 现在,STM324x9I-EVAL的板支持套件基于STMCubeF4驱动程序。
弃用
- 向ScrollableContainer添加永久性Drawable会导致断言。
- 支持更大字体
- 相对于缩放比例的ZoomAnimationImage移动未使用正确的缓动公式。
- PainterRGB565未正确混合绿色alpha值。
- RadioButtonGroup现在初始化回调函数为零。
- ScalableImage现在可使用有透明度的位图。
- AnimatedImage会显示动画的起点和终点两次。
- CanvasWidget::getMinimalRect()的默认实现返回了相对于其父类而非其自身的坐标。
- ScrollableContainer在每个tick错误地将其自身当作定时器控件取消注册,使之难以与其他基于定时器的操作一起使用。
新特性
- 修正了当宽度和/或高度不是8的倍数时1bpp显示屏模拟器中的问题。
版本4.2.0
发布日期:2014年9月26日
新特性
- 显著改善了渲染性能,在大多数情况下渲染帧所需的时间缩短了25%。 MoveAnimator mixin使模板类T能够从其当前位置到指定结束位置的运动动画化。 参见app/example/move_fade_example。 强烈建议启用优化。 此优化对4.2.0 {#version-420} 板套件中的所有合适评估板是打开的。
错误修正
- 为了获得平滑的抗锯齿图形的绘制效果,增加了CanvasWidgets。 目前,已实现了Line、Circle和更多普通形状。 CanvasWidgets可用实色(+ alpha)、位图(包括alpha)或自定义绘图控件进行绘制。 阅读文档中关于自定义控件和绘图控件的更多内容。
- 增加了对Keil编译器和uVision4 IDE的支持。 请参阅“TouchGFX发布”一章中“支持的硬件”一节,获取Keil支持的目标硬件列表。
新特性
- 现在,可以在ZoomAnimationImage、MoveAnimator和FadeAnimator上指定动画启动延迟。
- 增加了对4.3” TouchGFX演示板的板件支持。 LPC4350(无内部闪存)
- 增加了RadioButton和RadioButtonGroup控件。 参见app/examples/radio_button_example和文档。
- LPC43XX和LPC1788现在可以用DMA填充矩形。
- 现在支持Visual Studio 2013。
- 对Visual Studio 2015预览版本的初步支持。
- 改善了生成资源时的性能。
- 在示例目录中增加了新的canvas_widget_example。
- 现在,存在于各种头文件中的“使用命名空间touchgfx”可通过在工程中定义选项NO_USING_NAMESPACE_TOUCHGFX来避开。
信息
- 大幅更新了TouchGFX手册。
弃用
- 修正了当宽度和/或高度不是8的倍数时1bpp显示屏模拟器中的问题。
- 修正了ScrollableContainer中CANCEL事件并非总是授给正确的子容器,导致诸如在SC区域之外拖曳时按钮维持按下状态等问题。
- 修正了在旋转了显示屏的情况下渲染chromArt字体时发生的问题。
- 修正了键盘控件setTouchable(false)不起作用的问题。
- Freescale K70 DMA现在会检查TCD0_CSR中的合适DONE位。
- 在ST处理器上修正了在非原本显示屏方向下ChromArt渲染旋转过的文本时发生的问题。
板件支持
- Embedded Artists LPC4357DevKit板套件:CPU时钟频率为204Mhz(之前为96Mhz)。 现在,使用SPIFIFlash而不是NOR。
演示
- 硬件抽象层架构已重构,因此各种硬件组件(MCU和驱动器)的所有共用代码已在不同目标板件上共享。 因此,只要包含一个或多个TouchGFX支持的硬件组件,就能大幅简化新板/自定义板的移植工作。
板件支持变更
- 更新了文档。
版本4.1.1
新特性
新特性
- Mixin: 增加了MoveAnimator。 MoveAnimator mixin使模板类T能够从其当前位置到指定结束位置的运动动画化。 参见app/example/move_fade_example。
- Mixin: 增加了FadeAnimator。 FadeAnimator mixin使模板类T,能够将其从当前alpha值转到指定结束alpha值的消隐动画化。 参见app/example/move_fade_example。
- 支持缩放图像(参见ScalableImage和ZoomAnimationImage可绘制对象)
- ScalableImage和ZoomAnimationImage现在支持ARGB8888格式位图。
弃用
- 修正了导致键盘控件在极少数情况下不能正常渲染的问题。
- 修正了在将控件放入coords != {0,0}的Container(其自身被放入ScrollableContainer)中时导致拖曳事件坐标错误的问题。
- 现在,Application类正常记录为给定控件调用registerTimerWidget和unregisterTimerWidget的次数对比,意味着如果多次注册,在控件不再接收tick事件前,需要相同次数的取消注册。
- 一些ZoomAnimationImage函数应当是但不是虚函数问题。
- 一些控件缺少特定的getter函数。
演示
- 硬件抽象层架构已重构,因此各种硬件组件(MCU和驱动器)的所有共用代码已在不同目标板件上共享。 因此,只要包含一个或多个TouchGFX支持的硬件组件,就能大幅简化新板/自定义板的移植工作。
版本4.1.0
新特性
新特性
- 现在支持单色1BPP显示屏。 参见手册了解详细信息。
- Textconvert & fontconvert: 现在,不同字体排印可能会具有相同的属性项。
- Imageconvert & fontconvert: POSIX兼容平台上的错误处理优化。
更新过程
- 文件夹assets/bitmaps和generated/bitmaps必须重命名为assets/images和generated/images。
- 升级TouchGFX环境至版本2.0。
信息
- 增加了对STM324xI-EVAL 5.7”板(IAR+gcc)的支持。
- 增加了对EmbeddedArtists LPC4357DevKit板的gcc支持。
- 优化了TouchGFX评估板的SPIFI初始化。
弃用
- 向ScrollableContainer添加永久性Drawable会导致断言。
- 支持更大字体
演示
- 硬件抽象层架构已重构,因此各种硬件组件(MCU和驱动器)的所有共用代码已在不同目标板件上共享。 因此,只要包含一个或多个TouchGFX支持的硬件组件,就能大幅简化新板/自定义板的移植工作。
版本4.0.0
发布日期:2014年9月26日
新特性
- TouchEvent重构(API变更):
- Drawable::setActive重命名为Drawable::setTouchable
- Drawable::isActive重命名为Drawable::isTouchable
- 弃用了Drawable::hijackTouchEvent
- Drawable现在默认为非触摸模式
- TouchEvents总是传递到所有子容器
- 为文本转换器增加了语言特定字体排印和对齐列的支持。 阅读文档中关于此特性的更多内容。
- 从字体形状和间距调整方面大幅改善了字体的渲染。
- 模拟器 - 在执行屏幕转换时生成对新视图/表现器/转换大小的断言检查。 未能生成检查的原因可能是FrontEndHeap中缺少视图/表现器/转换的定义。
- TextArea和ButtonWithLabel现在支持文本旋转0、90、180或270度。
- 改善了特殊情况下ButtonWithLabel上的文本居中。
- 支持的ST平台上的硬件加速文本渲染(4和8bpp)。
- 能够在外部RAM中缓存位图数据库中的所有条目。
- 支持Freescales K70 MCU。
- 翻译表:将“\<”和“\>”的实例分别转换成了“<”和“>”。 支持文字翻译字符串,如“<Not a wildcard>”(使用“<Not a wildcard\>”)。
- 支持MCU的NXP LPC18XX系列。
- TouchEvent重构(API变更):
弃用
- 具有奇数宽度值且alpha值小于255的图像的渲染错误
- 在未初始化textArea时正确处理TextArea::getTextHeight
- TextAreaWithWildcard::getTextWidth现在包含了通配符文本的宽度
- gcc Makefiles现在包含图像资源中的.BMP和.PNG。
- 不要截断文本表中任何翻译内容的前导空格和尾随空格。
- 字体转换器未能正确生成8bpp的字体数据。
- ButtonWithIcon::setBitmaps - 为主动的虚函数重写隐藏了IAR警告。
- ButtonWithIcon优化了绘制功能
- 在极少数情况下,文本可以稍微超出文本区。
演示
- 硬件抽象层架构已重构,因此各种硬件组件(MCU和驱动器)的所有共用代码已在不同目标板件上共享。 因此,只要包含一个或多个TouchGFX支持的硬件组件,就能大幅简化新板/自定义板的移植工作。 如果您过去使用hijackTouchEvent防止子容器捕获触摸事件,现在则需要确保所有子容器不可触摸。
- 需要更新模拟器的Main.cpp,方法是用Texts::setLanguage(0)替换以下代码行: TypedText::registerTypedTextDatabase(TypedTextDatabase::getInstance(), TypedTextDatabase::getInstanceSize()) 。 您也可以从文本数据库指定特定语言,如Texts::setLanguage(GB)。 在这种情况下,您还需要: #include <texts/TextKeysAndLanguages.hpp>
- 重建整个工程。
板件支持变更
- 大幅更新了TouchGFX手册。
版本3.1.0
新特性
- 增加了对FDI uEZGUI-1788-70WVT评估板(NXP LPC-1788 Cortex M3)的支持。
- 增加了对Mjolner TouchGFX演示板版本1.1,评估板(NXP LPC-4353 Cortex M4/M0 4.3”)的支持。
弃用
- 在lpc4357_emb_artist板上填充操作(Box控件)导致的崩溃问题。
演示
- 仅当使用Visual Studio时:更新Visual Studio .props文件中的TouchGFXReleasePath。 仅需在文本编辑器中编辑文件。 应使用“touchgfx\”扩展路径。 参见template_application以获取灵感。
- 仅当使用Visual Studio时:更新Visual Studio工程文件(.vcxproj文件)。 仅需在文本编辑器中编辑文件。 用“$(TouchGFXReleasePath)\config\msvs\touchgfx_prebuild.targets”替换“$(TouchGFXReleasePath)\framework\config\msvs\touchgfx_prebuild.targets”形式的所有路径。
板件支持变更
- 不再支持之前对bmp格式透明色使用的“神奇”透明色。 改为使用有带alpha通道的png图像。
版本3.0.0
新特性
- 支持Visual Studio 2010/2012。
- 增加了对有alpha通道的png图像的支持。
- 增加了键盘示例程序(Energy Micro DK3750评估板的IAR项目)
- 增加了对ST STM32F4X9I-EVAL评估板的支持。
- 增加了对Robert Penners缓动公式的支持(参见touchgfx/EasingEquations.hpp)。
- 图像转换器:增加了输入图像文件名的完整性检查,文件名不得以数字开头且必须由字母数字组成。
- 图像转换器:增加了对输入列表中区分大小写的文件名的重名检查。
- 文本转换器:增加了构建停止对bpp和font_size值的完整性检查。
- ScrollableContainer:现在可支持setScrollbarPadding、setScrollbarWidth、setScrollbarColor和setScrollbarAlpha。
- ScrollableContainer:将ScrollThreshold的默认值设置为5像素,而非1像素。
- 增加了对字体的alpha混合的支持(TextArea::setAlpha(uint8_t alpha))
- ImageConvert支持两种不同的输出格式:RGB565和ARGB8888
- ImageConvert - 增加了两个选项,用于控制有/无alpha通道的图像的输出格式。
- 为了修正大工程的链接器错误,更新了MinGW下的Touchgfx环境。 g++版本从4.6.2->至4.8.1
- 内部RAM空间占用的改进
- 目标库和硬件抽象层的结构性修改
弃用
- 在lpc4357_emb_artist板上填充操作(Box控件)导致的崩溃问题。
- Textconvert & fontconvert: 现在,不同字体排印可能会具有相同的属性项。
- Imageconvert & fontconvert:POSIX兼容平台上的错误处理优化。
- HALSDL:不让关键数据类型溢出。
- 现在,LanguageXX.cpp文件新增一行结尾(以去除警告)。
- TextArea::draw现在能正确地处理未初始化的TypedText。
演示
- 文件夹assets/bitmaps和generated/bitmaps必须重命名为assets/images和generated/images。
- 升级TouchGFX环境至版本2.0。
- 更新所有应用的Makefile,以与更新的template_application中指定的Makefile保持一致。
- 重建整个工程。
- 将包含透明原色的bmp图像转换为使用alpha通道的png图像。 可用免费工具imagemagick自动完成。 如需更多信息和提示,请访问:touchgfx-support@mjolner.com
- 必须更新自定义HAL实现,以适合新的结构。
板件支持变更
- 不再支持之前对bmp格式透明色使用的“神奇”透明色。 改为使用有带alpha通道的png图像。
版本2.2.0
- 新特性
- 以零成本增加了对横向显示屏竖屏模式的支持。
- 增加了对字距调整的支持。
- 增加了键盘示例程序(Energy Micro DK3750评估板的IAR项目)
- 修改了LCD中blitCopy方法的接口。
- 从HAL中删除了SyncBackBuffer方法。
- 从LCD中删除了clearLCD方法。
- 从LCD中删除了fillGradientRect方法。
- ScrollableContainer支持函数setScrollbarsVisible(bool visible)。
版本2.1.0
- TouchGFX首次作为商用框架发布。