Jump to content

[Release] Version 2.4


Recommended Posts

We're proud to announce that uGFX Version 2.4 was released just moments ago.

Download

The 2.4 release can now be downloaded as a ZIP archive form the downloads section. If you're a student or hobbyist and therefore permitted to use uGFX free of charge please consider donating to the project to help us developing this library. Donations can be submitted through the PayPal donation button on the downloads page.

Changelog

Let's have a look at the change log:


FIX: Add missing stm32m3 cpu makefile option. Update doc to match.
FEATURE: Added ability to compile ugfx as a single file. Simply compile src/gfx_mk.c
FEATURE: Added GFXSINGLEMAKE=yes|no to the ugfx makefile to compile ugfx as a single file.
FEATURE: New board STM32F746G-Discovery
FEATURE: New gdisp driver STM32LTDC
FEATURE: Better support for Raw32 platforms
FEATURE: Renaming GFX_NO_OS_INIT to GFX_OS_NO_INIT
FEATURE: New demo applications/combo
FEATURE: Adding more font metrics (BaselineX and BaselineY)
FEATURE: Adding gdispGetStringWidthCount()
FEATURE: Implementing widget focusing. See gwinSetFocus() and gwinGetFocus()
FEATURE: Adding TextEdit widget
FEATURE: Added color to widget style for focused widgets
FEATURE: Added GWIN_FOCUS_HIGHLIGHT_WIDTH as an option in the configuration file
FEATURE: Added support for CMSIS RTOS
FEATURE: Added support for KEIL RTX
FEATURE: Replace all references to inline with a reference to GFXINLINE
FEATURE: Added config option GFX_NO_INLINE to run off inlining of ugfx functions.
FEATURE: Added word-wrapping support for gdispDrawStringBox() and gdispFillStringBox()
FIX: Fixing issue in touchscreen calibration code
FEATURE: Added GFX_OS_PRE_INIT_FUNCTION for early hardware initialization
FIX: Fixing GTIMER for high clock rate devices
FEATURE: Added GFX_COMPILER_KEIL and GFX_COMPILER_ARMCC macros

Beside many fixes and general improvements some new features have been added to the library:

Text Wrapping

A text wrapping option (GDISP_NEED_TEXT_WORDWRAP has been added. The string drawing functions that specify a box (gdispDrawStringBox() and gdispFillStringBox() automatically wrap the text to the next line if it exceeds the right border of the specified box.

If this feature is disabled (default behavior), the string is simply cut off.

Text Input Widget

We added a new widget called the TextEdit widget. The TextEdit widget allows the user of an µGFX application to enter text. It is basically pretty much like a label just that it accepts text input.

Due to the modularity of the GINPUT module the TextEdit widget can either be used together with a real physical keyboard or a the virtual on-screen keyboard widget.

Widget Focus

When keyboard support is enabled, the GWIN module provides a new focus feature. A widget that has focus will receive keyboard events.

By default, a simple rectangle with the color specified in the widget style will be rendered around the widget to show that a widget has focus. The thickness of that border can be changed through the GWIN_FOCUS_HIGHLIGHT_WIDTH setting.

We also added default keyboard event handlers for most widgets. Therefore, if keyboard support is enabled a button can not only be clicked using the touchscreen but also using the SPACE and the ENTER key. A list can be scrolled using arrow keys and so on.

The widget focus can either be changed by clicking the widget or by using the TAB key to loop through them. Programmatically the focus can be changed using gwinSetFocus().

BareMetal Platforms

We re-worked most of the RAW32 port (the port that is used to run on bare-metal systems). It is now a lot more flexible and supports even a wider range of CPU architectures.

If you are running µGFX on a bare metal system updating to the new version is strongly recommended.

Keil RTX (and CMSIS RTOS) Platforms

We implemented a new GOS port that allows to run µGFX on any CMSIS RTOS compatible RTOS. Especially we implemented a port to run on the Keil RTX operating system (which is CMSIS RTOS compatible).

Single File Inclusion

Many of you told us that the µGFX library is difficult to use when not working with the Makefile build system as the library is composed of many file split across many directories. The new library version fixes this issue. All that needs to be done is adding the top-level uGFX directory to the include path and compiling just one file: gfx_mk.c. All required files will automatically be #included.

We will put up a more detailed guide about this on the wiki shortly. Stay tuned.

Feedback

This release contains, as any other release, many bug fixes and new features that were contributed or requested by the µGFX users. Comments and any kind of feedback are welcomed as those help us to improve the µGFX library.

~ Tectu

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...