MiniGUI 5.0 officially released, embedded GUI system

FMSoft 2020 March 30 announced the official release MiniGUI 5.0.0 / 4.0.7 version, and at the same time update HybridOS graphics stack.

MiniGUI is a free software project whose goal is to provide a fast, stable, cross-operating system graphical user interface (GUI). It is widely used IoT smart devices and real-time embedded systems, and provides interactive GUI implemented as IoT smart devices and embedded systems, particularly those based on Linux / uClinux, eCos and other traditional RTOS (such as VxWorks, ThreadX, uC / OS- II, Nucleus, etc.) in real-time embedded operating system.

MiniGUI 5.0 brings three main new features:

  1. Synthesis of FIG formula
  2. Eight kinds of main window Z sequence level
  3. Virtual window

Synthesis of FIG formula

Since MiniGUI 5.0.0 onwards, MiniGUI began to support multi-mode synthesis process schema (compositing schema). Schema is a synthesis of modern technology desktop operating system and smart phone operating system and graphical window system, the basic principle is simple: each window system all processes are created using a separate buffer to render their respective content, the system has a process combiner (the compositor) over the role of these elements are responsible (e.g. translucent, blur, etc.), and synthesized according to the Z order of the synergistic effect with the window and finally displayed on the screen.

Synthesis drawings provide various visual effects and interaction effects of novelty may be brought to the window system. Prior to the synthesis figures, most window systems use a shared buffer drawings to manage multiple windows by shearing between the management and maintenance of the window and superposed relationship to each other. The traditional schema is difficult to achieve the shared buffer irregular window, a translucent overlay effect or blur in a multi-process environment, and the synthesis of the drawings you can easily solve these problems, but also can easily be animated when the window switch.

Synthetic schema MiniGUI 5.0 is the most significant new features. Although this feature needs to be adjusted to achieve the most central part of the window manager MiniGUI, but we still ensure the basic stability of the API: Application for any version of a previously developed 5.0 MiniGUI, can not make any changes, recompile to run in the synthesis of the drawings. To use the exciting features synthetic figures bring, but also just to do some small changes.

Synthetic schema support let MiniGUI applications has been further expanded. Previously, MiniGUI are mainly used in electronic products do not install third-party applications, such as feature phones, video surveillance, industrial control, medical equipment and so on. And with synthetic schema, MiniGUI also can be applied to the device desktop computers, smart phones and other possible support third-party applications. Because the synthetic schemata not only facilitate a variety of graphics and interactivity, you can also take advantage of the security of multi-process environment: in addition to the server process, no one process can access the contents of the window created by another process.

The synthetic schema involves inter-process communication technologies, shared buffer technology, graphics acceleration technology and many other technologies, but I only took three months to achieve this functionality (also includes other enhancements). Thanks FMSoft deep understanding of the operating system, graphics and interactive techniques in the two decades of the development cycle. It also reflects the fact that from the side, the development of basic software takes time and accumulation; or that the long-term accumulation of technology is the basis for rapid iteration and software development foundation.

In addition to achieving the synthesis of the drawings, MiniGUI 5.0 at the same time provides the ability to:

  1. Customers can customize their own synthesizer (compositor), and the form of the dynamic loading of load custom synthesizer or an external synthesizer.

  2. As MiniGUI Feynman Software launched another open source project HybridOS window system, with the official release of version 5.0.0, Feynman Software has also updated HybridOS graphics stack provides an interface and support for the development of accelerated OpenGL graphics engine / ES 3D graphics software such as the complete stack.

Eight kinds of main window Z sequence level

MiniGUI 5.0 MiniGUI version also enhances the window manager to support some special type of the main window.

Prior to MiniGUI 5.0, we can create some special main window to display on top of all normal main window of the main window, if you use multiple processes running mode of MiniGUI, the server (mginit) will always create global main window, the window displays on top of the main window is created for all customers. And from the beginning of 5.0.0, we introduced the concept of the main window Z sequence level, there are eight levels from top to bottom:

  1. Tooltip level.

  2. System / global level.

  3. Screen lock level.

  4. Docker level.

  5. A higher level.

  6. Ordinary level.

  7. The initiator level.

  8. Desktop or wallpaper.

This enhancement allows us to create some special application that can be used as a lock screen, notification bar, program launcher dock or use.

Virtual window

MiniGUI provides complete support for message-based communication. In a multi-threaded operating mode of MiniGUI, we can mail or send messages to the window running in other threads in a thread. MiniGUI messaging functions, such as PostMessage, SendMessage, SendNotifyMessage callback window and provides a flexible, efficient, secure data transfer and synchronization mechanism for multi-threaded applications. Using these interfaces, multi-threaded application may avoid maintaining self-locking thread complex, semaphores and other things, to simplify the programming model.

But before MiniGUI 5.0, MiniGUI to stand-alone mode or in the process of multi-process mode of messages between threads does not support passing ability. In MiniGUI 5.0, we have removed this limitation, and introduced the concept of the virtual window.

Virtual window is a special window object, no visible window area. However, after you create a virtual window in the other thread, you can use message passing between threads of MiniGUI visible window thread and a virtual window where the mail or send a message.

This enhancement provides a very useful infrastructure for application development based on MiniGUI to develop well-designed multi-threaded applications.

In addition to these three major enhancements, MiniGUI 5.0 also adjust some of the underlying architecture, some of the underlying reconstruction modules. Interested readers can read the full release notes document:
https://gitlab.fmsoft.cn/VincentWei/minigui/blob/rel-5-0/RELEASE-NOTES.md

Finally, attach the warehouse entrance MiniGUI 5.0:
https://gitlab.fmsoft.cn/VincentWei/build-minigui-5.0

Or
https://github.com/VincentWei/build-minigui-5.0

Manuscripts: https://mp.weixin.qq.com/s/5pAQZmXek76kmc776LreaA

Guess you like

Origin www.oschina.net/news/114491/minigui-5-0-released