introduction words for compositing schema; change --enable-compositor to --enable-compositing

This commit is contained in:
Vincent Wei
2020-01-03 18:15:42 +08:00
parent 04b3713de9
commit 56c701e8d9
3 changed files with 48 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
MAJOR_VERSION = 3
MINOR_VERSION = 0
MICRO_VERSION = 13
MAJOR_VERSION = 4
MINOR_VERSION = 1
MICRO_VERSION = 0
EXTRAVERSION =
MINIGUI_RELEASE=$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)$(EXTRAVERSION)

View File

@@ -164,6 +164,43 @@ following repository:
If you are interested in hacking the MiniGUI code, please visit this repository.
## NEW FEATURES IN VERSION 4.2.x
In this version, we enhanced the MiniGUI-Processes runtime mode to support
the compositing schema. Under compositing schema, regardless a main window
is created by the server (`mginit`) or a client, it renders the content in
a separate rendering buffer, and the server composites the contents from
all visible main windows to the ultimate scan-out frame buffer according to
the z-order information.
On the contrary, the legacy schema of MiniGUI-Processes uses the same
frame buffer for all processes (and all main windows) in the system.
MiniGUI Core implements the default compositor. But you can implement
your own compositor by programming your own server, i.e., `mginit`.
By enabling the compositing schema, MiniGUI now provides a better
implementation for multi-process environment:
- Easy to implement advanced user interfaces with alpha blending,
blurring, and so on.
- Easy to implement animations for switching among main windows.
- Better security. One client cannot read/write contents in/to
another windows owned by other clients.
The major flaws of the compositing schema are as follow:
- It needs larger memory than the legacy schema to show multiple
windows at the same time. Therefore, we need a client manager to
kill the clients which runs in background if you are
running MiniGUI on an embedded system. Like Android or iOS does.
- It needs a hardware-accelerated NEWGAL engine to get a smooth
user experience.
Usage:
- Use `--enable-compositing` to enable the compositing schema.
## NEW FEATURES IN VERSION 4.0.x
In this version, we enhanced and tuned the APIs related to text rendering,

View File

@@ -92,7 +92,7 @@ message_string="no"
osname="unspecified"
runtime_mode="procs"
use_compositor="yes"
compositing_schema="yes"
incore_res="no"
use_miniguientry="no"
@@ -831,9 +831,9 @@ AC_ARG_ENABLE(ctrlanimation,
build_ctrl_animation=$enableval)
if test "x$runtime_mode" == "xprocs"; then
AC_ARG_ENABLE(compositor,
[ --enable-compositor enable compositor (MiniGUI-Processes runmode only) <default=yes>],
use_compositor=$enableval)
AC_ARG_ENABLE(compositing,
[ --enable-compositing enable compositing schema (MiniGUI-Processes runmode only) <default=yes>],
compositing_schema=$enableval)
fi
dnl Set up the Null video driver.
@@ -1722,9 +1722,9 @@ case "$runtime_mode" in
AC_DEFINE(_MGRM_PROCESSES, 1,
[Define if build MiniGUI-Processes])
MINIGUI_RUNMODE="procs"
if test "x$use_compositor" = "xyes"; then
AC_DEFINE(_MGUSE_COMPOSITOR, 1,
[Define if use compositor for MiniGUI-Processes])
if test "x$compositing_schema" = "xyes"; then
AC_DEFINE(_MGUSE_COMPOSITING, 1,
[Define if use compositing schema for MiniGUI-Processes])
fi
;;
esac
@@ -2705,7 +2705,7 @@ AC_MSG_NOTICE([
## Global Features:
* Operating system: ${osname}
* Runtime mode: ${runtime_mode}
* Compositor: ${use_compositor}
* Compositing schema: ${compositing_schema}
* Incore resource: ${incore_res}
* Developer mode: ${devel_mode}
* Target name: ${with_targetname}