mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-24 17:44:19 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28e49dd768 | ||
|
|
d5200eec58 | ||
|
|
d35bde9a4c | ||
|
|
daab1ae19b | ||
|
|
3e8e8a5984 | ||
|
|
3f80c9f3c0 | ||
|
|
548117ac06 | ||
|
|
6339a7417b | ||
|
|
a2e4b55966 | ||
|
|
fb90d5e164 | ||
|
|
68a29d0e53 | ||
|
|
117b79e51c | ||
|
|
3df060c5da | ||
|
|
cd558b1739 | ||
|
|
873e88313b | ||
|
|
f0975518b1 | ||
|
|
14075969bd | ||
|
|
47ec0374c5 | ||
|
|
6af2f7a67b | ||
|
|
db0956431d | ||
|
|
de64d2ac96 | ||
|
|
38234739e5 | ||
|
|
c6a4943aae | ||
|
|
7a7dd5b6e5 | ||
|
|
7123f08da6 | ||
|
|
13348f18be | ||
|
|
064ceade0f | ||
|
|
8832f051a8 | ||
|
|
add133abd4 | ||
|
|
def8833037 | ||
|
|
b1913b67d6 | ||
|
|
ef9afd0f55 | ||
|
|
5b340d82dc | ||
|
|
64be953123 | ||
|
|
580cf66695 | ||
|
|
637dbbce68 | ||
|
|
bb63875964 | ||
|
|
fe26d71145 | ||
|
|
9095139bf7 | ||
|
|
0581365fcd | ||
|
|
9ae865eb3e | ||
|
|
5c531a6154 | ||
|
|
df93b74fca | ||
|
|
9af014c045 | ||
|
|
9823a00352 | ||
|
|
38aa40042c | ||
|
|
991472894b | ||
|
|
ca249ba378 | ||
|
|
04adac288f | ||
|
|
fcd401128c | ||
|
|
067df2ea37 | ||
|
|
c47dad1ad5 | ||
|
|
28d907165f | ||
|
|
8a8cdd18ed | ||
|
|
2e5a8804bf | ||
|
|
173171b653 | ||
|
|
b4e46463cd | ||
|
|
d7c818080c | ||
|
|
c03ed8d23a | ||
|
|
f965c4b8ea | ||
|
|
3710611ebd | ||
|
|
d50c5c25ed | ||
|
|
b7820d888f | ||
|
|
a068f25519 | ||
|
|
f6ad9a960e | ||
|
|
29a6e0f0f9 | ||
|
|
868548cf0d | ||
|
|
a9daa05807 | ||
|
|
5e0500411e |
@@ -24,3 +24,7 @@ Makefile.in
|
||||
/*config.h.in
|
||||
/*config.h.in~
|
||||
|
||||
/src/font/utils/emoji/
|
||||
/src/font/utils/ucd/
|
||||
/src/sysres/font_list
|
||||
/src/sysres/license/dat_files/
|
||||
|
||||
+3
-3
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Processes)"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = v4.0.0
|
||||
PROJECT_NUMBER = v4.0.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@@ -58,7 +58,7 @@ PROJECT_LOGO =
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-procs-4.0.0
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-procs-4.0.4
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
|
||||
# directories (in 2 levels) under the output directory of each output format and
|
||||
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_PROCESSES \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
+3
-3
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Standalone)"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = v4.0.0
|
||||
PROJECT_NUMBER = v4.0.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@@ -58,7 +58,7 @@ PROJECT_LOGO =
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-sa-4.0.0
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-sa-4.0.4
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
|
||||
# directories (in 2 levels) under the output directory of each output format and
|
||||
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_STANDALONE \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
+3
-3
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Threads)"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = v4.0.0
|
||||
PROJECT_NUMBER = v4.0.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@@ -58,7 +58,7 @@ PROJECT_LOGO =
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-ths-4.0.0
|
||||
OUTPUT_DIRECTORY = doc-api-ref-minigui-ths-4.0.4
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
|
||||
# directories (in 2 levels) under the output directory of each output format and
|
||||
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_THREADS \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@ SUBDIRS = src 3rd-party include rtos etc m4 cmake build
|
||||
|
||||
EXTRA_DIST = minigui.pc.in \
|
||||
GNUmakefile makefile.ng makefile.msvc rules.make \
|
||||
Version INSTALL LICENSE \
|
||||
README.md RELEASE-NOTES.md \
|
||||
INSTALL LICENSE \
|
||||
Version.md README.md RELEASE-NOTES.md \
|
||||
LICENSE-POLICY-en.md LICENSE-POLICY-zh.md
|
||||
|
||||
# The directory where the include files will be installed
|
||||
|
||||
@@ -5,17 +5,20 @@ A mature and proven cross-platform GUI system for embedded and smart IoT devices
|
||||
|
||||
## TABLE OF CONTENTS
|
||||
|
||||
1. Introduction
|
||||
1. A brief building instruction
|
||||
1. New features in version 4.0.x
|
||||
1. New features in version 3.2.x
|
||||
1. The runtime modes of MiniGUI
|
||||
1. History
|
||||
1. About the authors
|
||||
1. If you have a problem
|
||||
1. A little FAQ
|
||||
1. Not free for commercial use
|
||||
1. Copying
|
||||
- [INTRODUCTION](#introduction)
|
||||
- [A BRIEF BUILDING INSTRUCTION](#a-brief-building-instruction)
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Building MiniGUI Core](#building-minigui-core)
|
||||
* [Building the Comprehensive Demo](#building-the-comprehensive-demo)
|
||||
* [Unit Tests](#unit-tests)
|
||||
- [NEW FEATURES IN VERSION 4.0.x](#new-features-in-version-40x)
|
||||
- [NEW FEATURES IN VERSION 3.2.x](#new-features-in-version-32x)
|
||||
- [THE RUNTIME MODES OF MINIGUI](#the-runtime-modes-of-minigui)
|
||||
- [HISTORY](#history)
|
||||
- [AUTHORS AND COPYING](#authors-and-copying)
|
||||
* [Not Free for Commercial Use](#not-free-for-commercial-use)
|
||||
* [Special Statement](#special-statement)
|
||||
- [A LITTLE FAQ](#a-little-faq)
|
||||
|
||||
|
||||
## INTRODUCTION
|
||||
@@ -30,43 +33,37 @@ use.
|
||||
MiniGUI aims to provide a fast, stable, full-featured, and cross-platform
|
||||
windowing and GUI support system, which is especially fit for
|
||||
embedded systems or smart IoT devices based-on Linux/uClinux, eCos, and other
|
||||
traditional RTOSes, such as VxWorks, ThreadX, Nucleus, pSOS, uC/OS-II,
|
||||
and OSE.
|
||||
traditional RTOSes, such as RT-Thread, FreeRTOS, RTEMS, VxWorks, ThreadX,
|
||||
Nucleus, pSOS, uC/OS-II, and OSE.
|
||||
|
||||
This is the MiniGUI core source tree, which provides windowing
|
||||
and graphics interfaces as well as a lot of standard controls (tookit).
|
||||
and graphics interfaces as well as a lot of standard controls (toolkit).
|
||||
|
||||
Besides MiniGUI core, FMSoft also provides some components
|
||||
for the developers to develop app much easier:
|
||||
|
||||
* mGUtils: A MiniGUI component which contains miscellaneous utilities
|
||||
like ColorSelectionDialogBox, FileOpenDialogBox, and so on.
|
||||
|
||||
* mGPlus: A MiniGUI component which provides support for advanced graphics
|
||||
functions like path, gradient, anti-aliase stretch, and color combination.
|
||||
|
||||
* mGEff: mGEff provides an animation framework for MiniGUI app.
|
||||
It also provides some popular UI/UE special effects.
|
||||
|
||||
* mGNCS: This component provides a new control set for MiniGUI app.
|
||||
|
||||
* mGNCS4Touch: This component provides some new controls, which are
|
||||
compliant to the new control API spec of mGNCS, for devices with
|
||||
touch screens.
|
||||
* mGUtils: A MiniGUI component which contains miscellaneous utilities
|
||||
like `ColorSelectionDialogBox`, `FileOpenDialogBox`, and so on.
|
||||
* mGPlus: A MiniGUI component which provides support for advanced graphics
|
||||
functions like path, gradient, anti-aliased stretch, and color combination.
|
||||
* mGEff: mGEff provides an animation framework for MiniGUI app.
|
||||
It also provides some popular UI/UE special effects.
|
||||
* mGNCS: This component provides a new control set for MiniGUI app.
|
||||
* mGNCS4Touch: This component provides some new controls, which are
|
||||
compliant to the new control API spec of mGNCS, for devices with
|
||||
touch screens.
|
||||
|
||||
There are also some legacy MiniGUI components. But we will not maintain these
|
||||
components since MiniGUI v3.2.0:
|
||||
|
||||
* mGi: An input method component for MiniGUI. This component provides
|
||||
some typical input methods (such as softkey, hand-writing, and predict
|
||||
text input for mobile phone) for MiniGUI apps.
|
||||
|
||||
* mGp: A printing component for MiniGUI. By using mGp, you can print
|
||||
out the graphics created by MiniGUI app to general-purpose printers.
|
||||
|
||||
* mG3d: A simple three-dimension component for MiniGUI. This component
|
||||
provides a simple 3D API for app. You can use mG3d to create simple
|
||||
3D UI.
|
||||
* mGi: An input method component for MiniGUI. This component provides
|
||||
some typical input methods (such as soft keyboard, hand-writing, and predict
|
||||
text input for mobile phone) for MiniGUI apps.
|
||||
* mGp: A printing component for MiniGUI. By using mGp, you can print
|
||||
out the graphics created by MiniGUI app to general-purpose printers.
|
||||
* mG3d: A simple three-dimension component for MiniGUI. This component
|
||||
provides a simple 3D API for app. You can use mG3d to create simple
|
||||
3D UI.
|
||||
|
||||
MiniGUI is a free software project. In December 1998, the initiator of
|
||||
FMSoft, Wei Yongming, began to develop MiniGUI under the GNU General Public
|
||||
@@ -78,34 +75,34 @@ as a free software project.
|
||||
You can download the source code tarball of MiniGUI and the dependent libraries
|
||||
from the download zone of the site:
|
||||
|
||||
http://www.minigui.com
|
||||
<http://www.minigui.com>
|
||||
|
||||
FMSoft also releases some open source apps for MiniGUI on the site above,
|
||||
for examples:
|
||||
|
||||
* mDolphin, licensed under Apache 2.0, is a full-featured
|
||||
WEB/WAP browser, which is developed based on the open source browser
|
||||
core WebKit and uses MiniGUI as its underlying graphics support system.
|
||||
|
||||
* mGallery, licensed under Apache 2.0, intends to
|
||||
provide a total solution for PMP (Portable Multimedia Player),
|
||||
which uses MiniGUI as the graphics platform.
|
||||
|
||||
* mSpider, licensed under GPL 3.0, intends to provide a
|
||||
light-weight MiniGUI-based web browser (HTML 3.2 and part JavaScript)
|
||||
|
||||
* mEagle, licensed under GPL 3.0, is an embedded GIS development platform
|
||||
which addresses the needs of map browse, query, analysis, etc
|
||||
* mDolphin, licensed under Apache 2.0, is a full-featured
|
||||
WEB/WAP browser, which is developed based on the open source browser
|
||||
core WebKit and uses MiniGUI as its underlying graphics support system.
|
||||
* mGallery, licensed under Apache 2.0, intends to
|
||||
provide a total solution for PMP (Portable Multimedia Player),
|
||||
which uses MiniGUI as the graphics platform.
|
||||
* mSpider, licensed under GPL 3.0, intends to provide a
|
||||
light-weight MiniGUI-based web browser (HTML 3.2 and part JavaScript)
|
||||
* mEagle, licensed under GPL 3.0, is an embedded GIS development platform
|
||||
which addresses the needs of map browse, query, analysis, etc
|
||||
|
||||
FMSoft had created the public repositories for MiniGUI core, MiniGUI
|
||||
components, and other open source apps on GitHub. You can visit them on:
|
||||
|
||||
https://github.com/VincentWei
|
||||
<https://github.com/VincentWei>
|
||||
|
||||
We now maintain the documents about MiniGUI on GitHub Wiki:
|
||||
and
|
||||
|
||||
https://github.com/VincentWei/minigui/wiki
|
||||
<https://github.com/FMSoftCN>
|
||||
|
||||
We now maintain all documents about MiniGUI on the following public repo:
|
||||
|
||||
<https://github.com/VincentWei/minigui-docs>
|
||||
|
||||
## A BRIEF BUILDING INSTRUCTION
|
||||
|
||||
@@ -150,11 +147,11 @@ and MiniGUI components, please fetch one of the following repositories
|
||||
from GitHub and follow the instructions to build the samples and
|
||||
the demonstration programs:
|
||||
|
||||
https://github.com/VincentWei/build-minigui-4.0
|
||||
<https://github.com/VincentWei/build-minigui-4.0>
|
||||
|
||||
or
|
||||
|
||||
https://github.com/VincentWei/build-minigui-3.2
|
||||
<https://github.com/VincentWei/build-minigui-3.2>
|
||||
|
||||
|
||||
### Unit Tests
|
||||
@@ -162,7 +159,7 @@ https://github.com/VincentWei/build-minigui-3.2
|
||||
Since MiniGUI 4.0.0, we organize the unit test code of MiniGUI APIs in the
|
||||
following repository:
|
||||
|
||||
https://github.com/VincentWei/mg-tests
|
||||
<https://github.com/VincentWei/mg-tests>
|
||||
|
||||
If you are interested in hacking the MiniGUI code, please visit this repository.
|
||||
|
||||
@@ -172,37 +169,31 @@ If you are interested in hacking the MiniGUI code, please visit this repository.
|
||||
In this version, we enhanced and tuned the APIs related to text rendering,
|
||||
in order to support [HybridOS Foundation Class Library].
|
||||
|
||||
* Since 4.0.2, MiniGUI provides support for RTEMS, RT-Thread, and FreeRTOS.
|
||||
* MiniGUI now provides complete APIs for Unicode characters processing.
|
||||
These APIs conform to Unicode 12.0.
|
||||
|
||||
* MiniGUI also provides new APIs to lay out, shape, and render glyphs
|
||||
from complex and mixed scripts, such as Arabic, Thai, and Indic.
|
||||
|
||||
* We tuned and optimized MiniGUI's logical and device font interfaces to
|
||||
support the new features above.
|
||||
|
||||
* MiniGUI now is enhanced to support input events which may be generated
|
||||
by input devices other than standard mouse (or single-touch panel) and
|
||||
keyboard, such as multi-touch panel (gesture), joystick, tablet tool,
|
||||
table pad, and switch. In MiniGUI 4.0, we introduce `MSG_EXIN_XXX` messages
|
||||
to support the input events from devices other than standard mouse
|
||||
and keyboard. We call these messages as 'extra input messages'.
|
||||
|
||||
* The NEWGAL engine of `dri` to support modern DRI/DRM-driven graphics cards
|
||||
or GPUs on Linux.
|
||||
|
||||
* The IAL engine of `libinput` to support all modern input devices including
|
||||
mouse, keyboard, joystick, switch, multiple touch panel, gesture, tablet tool,
|
||||
and table pad on Linux.
|
||||
|
||||
* We introduced a Slice Memory Allocator for fast concurrent memory chunk
|
||||
allocation.
|
||||
|
||||
* Cleanup and tune code for GCC 7.3.
|
||||
|
||||
For more information, please refer to `RELEASE-NOTES.md` file:
|
||||
|
||||
https://github.com/VincentWei/minigui/blob/master/RELEASE-NOTES.md
|
||||
<https://github.com/VincentWei/minigui/blob/master/RELEASE-NOTES.md>
|
||||
|
||||
Because of the changes of some APIs, we recommended strongly that you
|
||||
use this version for new projects.
|
||||
@@ -217,26 +208,26 @@ We introduce some new features in MiniGUI Version 3.2.x:
|
||||
|
||||
For more information, please refer to `RELEASE-NOTES.md` file:
|
||||
|
||||
https://github.com/VincentWei/minigui/blob/rel-3-2/RELEASE-NOTES.md
|
||||
<https://github.com/VincentWei/minigui/blob/rel-3-2/RELEASE-NOTES.md>
|
||||
|
||||
## THE RUNTIME MODES OF MINIGUI
|
||||
|
||||
You can configure and compile MiniGUI as one of three runtime modes:
|
||||
|
||||
* `MiniGUI-Threads`: A program running on MiniGUI-Threads can create
|
||||
multiple cascaded windows in different threads, and all the windows
|
||||
belong to a single process. MiniGUI-Threads is fit for some real-time
|
||||
systems on Linux/uClinux, eCos, uC/OS-II, VxWorks, pSOS, ThreadX,
|
||||
and OSE.
|
||||
* `MiniGUI-Threads`: A program running on MiniGUI-Threads can create
|
||||
multiple cascaded windows in different threads, and all the windows
|
||||
belong to a single process. MiniGUI-Threads is fit for some real-time
|
||||
systems on Linux/uClinux, eCos, uC/OS-II, VxWorks, pSOS, ThreadX,
|
||||
and OSE.
|
||||
|
||||
* `MiniGUI-Processes`: A program running on MiniGUI-Processes is
|
||||
an independent process, which can also create multiple windows.
|
||||
MiniGUI-Processes is fit for some complex embedded systems, such as
|
||||
PDAs, Thin-Clients or STBs. This mode is only useful for full-featured
|
||||
UNIX-like operating systems, like Linux.
|
||||
* `MiniGUI-Processes`: A program running on MiniGUI-Processes is
|
||||
an independent process, which can also create multiple windows.
|
||||
MiniGUI-Processes is fit for some complex embedded systems, such as
|
||||
PDAs, Thin-Clients or STBs. This mode is only useful for full-featured
|
||||
UNIX-like operating systems, like Linux.
|
||||
|
||||
* `MiniGUI-Standalone`: A single process version of MiniGUI. This mode
|
||||
is useful for some small systems, like uClinux or RTOSes.
|
||||
* `MiniGUI-Standalone`: A single process version of MiniGUI. This mode
|
||||
is useful for some small systems, like uClinux or RTOSes.
|
||||
|
||||
The original MiniGUI (version 1.0) run in MiniGUI-Threads mode.
|
||||
It is based on POSIX-compliant thread library. And this thread-based
|
||||
@@ -251,7 +242,7 @@ You can use MiniGUI-Processes to run more than one MiniGUI-based
|
||||
program in the form of UNIX process at the same time. MiniGUI-Processes
|
||||
is a full-featured multi-process version of original MiniGUI -- You
|
||||
can run a program based on MiniGUI-Processes from a program called
|
||||
'mginit'. Just like X Window, the former process is called a client,
|
||||
`mginit`. Just like X Window, the former process is called a client,
|
||||
and the latter the server.
|
||||
|
||||
Clients connect to the server via UNIX domain socket, and the server
|
||||
@@ -363,58 +354,12 @@ A brief history description of the development progress lay below:
|
||||
1. Apr., 2019: FMSoft released MiniGUI version 3.2.2.
|
||||
1. Jul., 2019: FMSoft released MiniGUI version 4.0.0.
|
||||
|
||||
## ABOUT THE AUTHORS
|
||||
## AUTHORS AND COPYING
|
||||
|
||||
The original author of MiniGUI is WEI Yongming, and now MiniGUI is
|
||||
maintained by FMSoft. For more information, please refer to
|
||||
<http://www.fmsoft.cn>.
|
||||
|
||||
|
||||
## IF YOU HAVE A PROBLEM
|
||||
|
||||
If you have any technical problem, advice or comment, please send
|
||||
messages to consult@minigui.com.
|
||||
|
||||
|
||||
## A LITTLE FAQ
|
||||
|
||||
Q: Is GPL'd MiniGUI free for commercial use?
|
||||
|
||||
A: Simply no. FMSoft releases MiniGUI under GPLv3 license.
|
||||
It is free for those who are 100% GPL and those who never copy, modify
|
||||
and distribute MiniGUI. But if you want to use these GPL'd versions
|
||||
for commerce, you should get the commercial license from FMSoft first.
|
||||
|
||||
Q: Which operating system does MiniGUI support?
|
||||
|
||||
A: MiniGUI can run on Linux/uClinux, uC/OS-II, eCos, ThreadX, pSOS,
|
||||
VxWorks, ThreadX, OSE, and even Win32. Any other real-time OSes can
|
||||
be supported theoretically.
|
||||
|
||||
Q: Which architecture does MiniGUI support?
|
||||
|
||||
A: x86 32/64-bit, ARM 32/64-bit (e.g., ARMv7 and ARM Cortex-A7),
|
||||
PowerPC, MIPS, DragonBall, ColdFire, Blackfin, and so on.
|
||||
|
||||
Q: Does MiniGUI offer the support for grey LCD with 4bpp (bits per pixel)?
|
||||
|
||||
A: Yes, it offers. It even offers the support for 1bpp and 2bpp LCD.
|
||||
|
||||
|
||||
## NOT FREE FOR COMMERCIAL USE
|
||||
|
||||
MiniGUI and its components are licensed under the GPL license.
|
||||
So any links about MiniGUI must follow GPL. If you cannot accept GPL,
|
||||
you need to be licensed from FMSoft. If you wonder that if you need
|
||||
the commercial license of MiniGUI, please refer to the LICENSE-POLICY file.
|
||||
|
||||
We provide you the commercial license of MiniGUI according to the number
|
||||
of the run-time binary copies of MiniGUI. If you are interested in
|
||||
the commercial license of MiniGUI, please write to sales@minigui.com.
|
||||
|
||||
|
||||
## COPYING
|
||||
|
||||
Copyright (C) 2002 ~ 2019, Beijing FMSoft Technologies Co., Ltd.
|
||||
Copyright (C) 1998 ~ 2002, WEI Yongming
|
||||
|
||||
@@ -441,7 +386,7 @@ If you have got a commercial license of this program, please use it
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
### Special Statement
|
||||
|
||||
@@ -460,3 +405,31 @@ The Exception List is published by FMSoft and may be updated
|
||||
from time to time. For more information, please see
|
||||
<https://www.fmsoft.cn/exception-list>.
|
||||
|
||||
### Not Free for Commercial Use
|
||||
|
||||
As stated above, MiniGUI and its components are licensed under GPL.
|
||||
So any links about MiniGUI must follow GPL. If you cannot accept GPL,
|
||||
you need to be licensed from FMSoft.
|
||||
|
||||
We provide you the commercial license of MiniGUI according to the number
|
||||
of the run-time binary copies of MiniGUI. If you are interested in
|
||||
the commercial license of MiniGUI, please write to <sales@minigui.com>.
|
||||
|
||||
## A LITTLE FAQ
|
||||
|
||||
Q: Which operating systems does MiniGUI support?
|
||||
A: MiniGUI can run on Linux/uClinux, uC/OS-II, eCos, ThreadX, pSOS,
|
||||
VxWorks, ThreadX, OSE, and even Win32. Any other real-time OSes can
|
||||
be supported theoretically.
|
||||
|
||||
Q: Which architecture does MiniGUI support?
|
||||
A: x86 32/64-bit, ARM 32/64-bit (e.g., ARMv7 and ARM Cortex-A7),
|
||||
PowerPC, MIPS, DragonBall, ColdFire, Blackfin, and so on.
|
||||
|
||||
Q: Does MiniGUI offer the support for grey LCD with 4bpp (bits per pixel)?
|
||||
A: Yes, it offers. It even offers the support for 1bpp and 2bpp LCD.
|
||||
|
||||
Q: Can I get the tech support from MiniGUI team?
|
||||
A: Yes, FMSoft can provide you with guaranteed commercial technical
|
||||
support services. Please send messages to <sales@minigui.com>.
|
||||
|
||||
|
||||
+136
-68
@@ -1,5 +1,73 @@
|
||||
# Release Notes
|
||||
|
||||
## Version 4.0.4
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 4.0.4.
|
||||
We strongly recommend that you use this version for any new MiniGUI
|
||||
apps, especially if the new features of MiniGUI 4.0 are must for your
|
||||
new apps.
|
||||
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
<https://github.com/VincentWei/minigui>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
In this version, we mainly enhanced the DRM engine of MiniGUI in order
|
||||
to integrate MiniGUI with Mesa and Cairo, for example, to implement EGL
|
||||
for MiniGUI platform.
|
||||
|
||||
* MODIFICATIONS:
|
||||
- Change the name of old `dri` NEWGAL engine to `drm`.
|
||||
- Change the configuration option of DRM engine to `--enable-videodrm`.
|
||||
- Change the macro for DRM engine to `_MGGAL_DRM`.
|
||||
- Change the runtime configuration section for DRM engine to `drm`.
|
||||
* ENHANCEMENTS:
|
||||
- New APIs for GPU integration, such as `IsMemDC`, `IsScreenDC`, `IsWindowDC`, `GetVideoHandle`, and `drmGetDeviceFD`.
|
||||
- Add new operation for DRM engine: `create_buffer_from_prime_fd`.
|
||||
- Use `dlopen` to load the external DRM driver.
|
||||
- Add a new runtime configuration key for DRM engine `drm.exdriver` to define the external DRM driver.
|
||||
|
||||
## Version 4.0.2
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 4.0.2.
|
||||
We strongly recommend that you use this version for any new MiniGUI
|
||||
apps, especially if the new features of MiniGUI 4.0 are must for your
|
||||
new apps.
|
||||
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
<https://github.com/VincentWei/minigui>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
* ENHANCEMENTS:
|
||||
- Support for RTEMS operating system
|
||||
- Basic support for RT-Thread and FreeRTOS operating systems.
|
||||
* BUGFIXES:
|
||||
- Fixed errors in makefile.ng files.
|
||||
* CLEANUP:
|
||||
- `README.md` for correct markdown tags.
|
||||
|
||||
## Version 4.0.1
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 4.0.1.
|
||||
We strongly recommend that you use this version for any new MiniGUI
|
||||
apps, especially if the new features of MiniGUI 4.0 are must for your
|
||||
new apps.
|
||||
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
<https://github.com/VincentWei/minigui>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
This version mainly fixed some minor issues:
|
||||
|
||||
- Use FVN algorithm to implement `Str2Key`.
|
||||
- Tune some API description.
|
||||
- Tune format string to use '%z' instead of '%l' or '%ll' for `size_t` values.
|
||||
|
||||
## Version 4.0.0
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 4.0.0.
|
||||
@@ -9,7 +77,7 @@ new apps.
|
||||
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
https://github.com/VincentWei/minigui
|
||||
<https://github.com/VincentWei/minigui>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
@@ -26,7 +94,7 @@ rendering in order that MiniGUI can handle complex writing systems
|
||||
|
||||
* MiniGUI also provides new APIs to lay out, shape, and render glyphs
|
||||
from complex and mixed scripts, such as Arabic, Thai, and Indic.
|
||||
The new APIs also conform to the specification of [CSS Text Module Level 3]
|
||||
The new APIs also conform to the specifications of [CSS Text Module Level 3]
|
||||
and [CSS Writing Modes Level 3].
|
||||
|
||||
* We tuned and optimized MiniGUI's logical and device font interfaces to
|
||||
@@ -114,7 +182,7 @@ function. You can call `CreateLogFontForMChar2UChar` function to create
|
||||
a dummy logfont object for this purpose in order to expense a minimal memory.
|
||||
|
||||
If the text is in simple scripts, like Latin or Chinese, you can call
|
||||
`GetGlyphsExtentPointEx` function to lay out the paragraph. This function
|
||||
`GetGlyphsExtentFromUChars` function to lay out the paragraph. This function
|
||||
returns a glyph string which can fit in a line with the specified
|
||||
maximal extent and rendering flags. After this, you call
|
||||
`DrawGlyphStringEx` function to draw the glyph string to the
|
||||
@@ -271,7 +339,7 @@ run MiniGUI apps on a Linux box on which the DRI
|
||||
|
||||
The `dri` engine uses `libdrm` developed by Free Desktop project:
|
||||
|
||||
https://dri.freedesktop.org/wiki/
|
||||
<https://dri.freedesktop.org/wiki/>
|
||||
|
||||
Libdrm is a user-space library implements the Direct Rendering Manager.
|
||||
MiniGUI mainly uses this library to support the dumb frame buffer
|
||||
@@ -822,38 +890,38 @@ The MiniGUI development team announces the availability of MiniGUI 3.0.13.
|
||||
All users of MiniGUI are encouraged to test this version carefully, and
|
||||
report any bugs and incompatibilities in
|
||||
|
||||
https://github.com/VincentWei/minigui.
|
||||
<https://github.com/VincentWei/minigui>.
|
||||
|
||||
### What's new in this version
|
||||
|
||||
* Merge new APIs which are introduced by miniStudio.
|
||||
* The autoconf/automake config scripts are cleaned up.
|
||||
* Remove most of compilation warnings (not used variables).
|
||||
* Remove some inline function definitions, especially GetIMEPos/SetIMEPos.
|
||||
* Fix some bugs.
|
||||
* Merge new APIs which are introduced by miniStudio.
|
||||
* The autoconf/automake config scripts are cleaned up.
|
||||
* Remove most of compilation warnings (not used variables).
|
||||
* Remove some inline function definitions, especially GetIMEPos/SetIMEPos.
|
||||
* Fix some bugs.
|
||||
|
||||
### API changes
|
||||
|
||||
* [NEW] CopyCursor: Copies a cursor object.
|
||||
* [NEW] GetKeyboardState: Gets status of all keys on keyboard.
|
||||
* [NEW] ToUnicode/ToAscii: Converts the key code between Unicode and ASCII.
|
||||
* [NEW] GetWindowRegion: The function obtains a copy of the window region of a window.
|
||||
* [NEW] InvalidateRegion: Invalidates the client area within the specified region.
|
||||
* [NEW] ValidateRect: Validates the client area within a rectangle by removing the
|
||||
rectangle from the update region of the specified window.
|
||||
* [NEW] ValidateRegion: Validates the client area within a region by removing the
|
||||
region from the current update region of the specified window.
|
||||
* [NEW] GetUpdateRegion: Copy the update region of a window to a region.
|
||||
* [NEW] AdjustWindowRectEx: Calculates the required size of the window rectangle
|
||||
based on the desired size of the client rectangle.
|
||||
* [NEW] WindowFromPointEx: Retrieves a handle to the window that contains the specified point.
|
||||
* [NEW] ChildWindowFromPointEx: Retrieves a handle to the child window that contains the
|
||||
speicified point and meets the certain criteria.
|
||||
* [NEW] ScrollWindowEx: Scrolls the content of a window's client area.
|
||||
* [ADJUST] GetIMEPos/SetIMEPos: inline functions -> normal functions.
|
||||
* [ADJUST] WindowFromPoint: normal function -> inline function.
|
||||
* [ADJUST] ChildWindowFromPoint: normal function -> inline function.
|
||||
* [ADJUST] ScrollWindow: normal function -> inline function.
|
||||
* [NEW] CopyCursor: Copies a cursor object.
|
||||
* [NEW] GetKeyboardState: Gets status of all keys on keyboard.
|
||||
* [NEW] ToUnicode/ToAscii: Converts the key code between Unicode and ASCII.
|
||||
* [NEW] GetWindowRegion: The function obtains a copy of the window region of a window.
|
||||
* [NEW] InvalidateRegion: Invalidates the client area within the specified region.
|
||||
* [NEW] ValidateRect: Validates the client area within a rectangle by removing the
|
||||
rectangle from the update region of the specified window.
|
||||
* [NEW] ValidateRegion: Validates the client area within a region by removing the
|
||||
region from the current update region of the specified window.
|
||||
* [NEW] GetUpdateRegion: Copy the update region of a window to a region.
|
||||
* [NEW] AdjustWindowRectEx: Calculates the required size of the window rectangle
|
||||
based on the desired size of the client rectangle.
|
||||
* [NEW] WindowFromPointEx: Retrieves a handle to the window that contains the specified point.
|
||||
* [NEW] ChildWindowFromPointEx: Retrieves a handle to the child window that contains the
|
||||
speicified point and meets the certain criteria.
|
||||
* [NEW] ScrollWindowEx: Scrolls the content of a window's client area.
|
||||
* [ADJUST] GetIMEPos/SetIMEPos: inline functions -> normal functions.
|
||||
* [ADJUST] WindowFromPoint: normal function -> inline function.
|
||||
* [ADJUST] ChildWindowFromPoint: normal function -> inline function.
|
||||
* [ADJUST] ScrollWindow: normal function -> inline function.
|
||||
|
||||
|
||||
## Version 3.0.2
|
||||
@@ -866,48 +934,48 @@ https://github.com/VincentWei/minigui.
|
||||
|
||||
### What's new in this version
|
||||
|
||||
* Append non-rectangle window support.
|
||||
* Append support of double buffer of maindow.
|
||||
* Support for Look and Feel (LF) concept.
|
||||
* Remove SKIN interfaces of MGExt library, move MGExt library and vcongui into mGUtils component.
|
||||
* Newly added bitmap font.
|
||||
* Developing interfaces of desktop for MiniGUI.
|
||||
* Support direct draw to DC for higher efficiency.
|
||||
* Enhancement of resource management
|
||||
* Enhancement of controls: Support of independent scrollbar and transparent control.
|
||||
* Enhancement of font and character set, support bidi text support.
|
||||
* Enhancement of zoom of picture
|
||||
* Append non-rectangle window support.
|
||||
* Append support of double buffer of maindow.
|
||||
* Support for Look and Feel (LF) concept.
|
||||
* Remove SKIN interfaces of MGExt library, move MGExt library and vcongui into mGUtils component.
|
||||
* Newly added bitmap font.
|
||||
* Developing interfaces of desktop for MiniGUI.
|
||||
* Support direct draw to DC for higher efficiency.
|
||||
* Enhancement of resource management
|
||||
* Enhancement of controls: Support of independent scrollbar and transparent control.
|
||||
* Enhancement of font and character set, support bidi text support.
|
||||
* Enhancement of zoom of picture
|
||||
|
||||
|
||||
### API changes
|
||||
|
||||
* [NEW] ScaleBitmapEx: a bilinear interpolation algorithm which is better than the original.
|
||||
* [NEW] GetWindowInfo: get New structure WINDOWINFO.
|
||||
* [NEW] CreateMainWindowEx: enhance of CreeateMainWindow, compatiable with CreeateMainWindow.
|
||||
* [NEW] CreateWindowEx2:enhance of CreateWindowEx2, compatiable with CreateWindowEx2.
|
||||
* [NEW] DialogBoxIndirectParamEx: new create dialog.
|
||||
* [NEW] CreateMainWindowIndirectParamEx:new create dialog.
|
||||
* [NEW] GetWindowRendererFromName: get LF renderer by name
|
||||
* [NEW] AddWindowElementRenderer: append a LF renderer to MiniGU
|
||||
* [NEW] RemoveWindowElementRenderer: delete a LF renderer from MiniG
|
||||
* [NEW] GetDefaultWindowElementRenderer: get default LF renderer
|
||||
* [NEW] SetDefaultWindowElementRenderer: set default LF renderer
|
||||
* [NEW] SetWindowElementRenderer: set a LF renderer for one window’s render
|
||||
* [NEW] SetWindowElementAttr: set window’s attributes.
|
||||
* [NEW] GetWindowElementAttr: get window’s attributes value
|
||||
* [NEW] CreateBMPDevFont: create an bitmap device font.
|
||||
* [NEW] AddGlyphsToBMPFont: add an bitmap font glyph.
|
||||
* [NEW] DestroyBMPFont: destroy bitmap device font.
|
||||
* [NEW] SetCustomDesktopOperationSet: set the custom desktop operation set.
|
||||
* [NEW] DesktopUpdateAllWindow: refresh all windows on the desktop.
|
||||
* [NEW] PopupDesktopMenu: pop up a menu on the desktop
|
||||
* [NEW] GetTextAlign: get the current text-alignment flags of a DC.
|
||||
* [NEW] SetTextAlign: set text-alignment flags of a DC.
|
||||
* [NEW] SetWindowMask: set non-rectangle window mask rect.
|
||||
* [NEW] SetWindowRegion: set non-rectangle window visible region
|
||||
* [NEW] LockDCEx: support for directly read and write the pixels in a DC.
|
||||
* [NEW] CreateSecondaryDC: Creates a secondary window DC of a window.
|
||||
* [NEW] SetSecondaryDC:set a window's secondary DC and the callback for double buffer window.
|
||||
* [NEW] ScaleBitmapEx: a bilinear interpolation algorithm which is better than the original.
|
||||
* [NEW] GetWindowInfo: get New structure WINDOWINFO.
|
||||
* [NEW] CreateMainWindowEx: enhance of CreeateMainWindow, compatiable with CreeateMainWindow.
|
||||
* [NEW] CreateWindowEx2:enhance of CreateWindowEx2, compatiable with CreateWindowEx2.
|
||||
* [NEW] DialogBoxIndirectParamEx: new create dialog.
|
||||
* [NEW] CreateMainWindowIndirectParamEx:new create dialog.
|
||||
* [NEW] GetWindowRendererFromName: get LF renderer by name
|
||||
* [NEW] AddWindowElementRenderer: append a LF renderer to MiniGU
|
||||
* [NEW] RemoveWindowElementRenderer: delete a LF renderer from MiniG
|
||||
* [NEW] GetDefaultWindowElementRenderer: get default LF renderer
|
||||
* [NEW] SetDefaultWindowElementRenderer: set default LF renderer
|
||||
* [NEW] SetWindowElementRenderer: set a LF renderer for one window’s render
|
||||
* [NEW] SetWindowElementAttr: set window’s attributes.
|
||||
* [NEW] GetWindowElementAttr: get window’s attributes value
|
||||
* [NEW] CreateBMPDevFont: create an bitmap device font.
|
||||
* [NEW] AddGlyphsToBMPFont: add an bitmap font glyph.
|
||||
* [NEW] DestroyBMPFont: destroy bitmap device font.
|
||||
* [NEW] SetCustomDesktopOperationSet: set the custom desktop operation set.
|
||||
* [NEW] DesktopUpdateAllWindow: refresh all windows on the desktop.
|
||||
* [NEW] PopupDesktopMenu: pop up a menu on the desktop
|
||||
* [NEW] GetTextAlign: get the current text-alignment flags of a DC.
|
||||
* [NEW] SetTextAlign: set text-alignment flags of a DC.
|
||||
* [NEW] SetWindowMask: set non-rectangle window mask rect.
|
||||
* [NEW] SetWindowRegion: set non-rectangle window visible region
|
||||
* [NEW] LockDCEx: support for directly read and write the pixels in a DC.
|
||||
* [NEW] CreateSecondaryDC: Creates a secondary window DC of a window.
|
||||
* [NEW] SetSecondaryDC:set a window's secondary DC and the callback for double buffer window.
|
||||
|
||||
|
||||
[HybridOS]: https://github.com/FMSoftCN/hybridos
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
Version 4.0.0 (2019/06/30)
|
||||
|
||||
This release needs the following resource packages:
|
||||
|
||||
* minigui-res-4.0.0.tar.gz
|
||||
|
||||
The latest samples package is:
|
||||
|
||||
* mg-samples-4.0.0.tar.gz
|
||||
@@ -0,0 +1,8 @@
|
||||
Version 4.0.4 (2019/12/24)
|
||||
|
||||
This release needs the following packages:
|
||||
|
||||
- The resource package: `minigui-res-4.0.0.tar.gz`
|
||||
- The sample package: `mg-samples-4.0.1.tar.gz`
|
||||
- The test cases package: `mg-tests-4.0.4.tar.gz`
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# rules for pc-linux
|
||||
|
||||
# set your own targaet_os
|
||||
TARGET_OS=linux
|
||||
|
||||
##################################################
|
||||
# set your compile tool #
|
||||
CC=gcc
|
||||
CXX=g++
|
||||
CPP=g++
|
||||
AR=ar
|
||||
AS=as
|
||||
RANLIB=ranlib
|
||||
MAKE=/usr/bin/make
|
||||
##################################################
|
||||
|
||||
ARFLAGS=-rc
|
||||
COFLAG=-c
|
||||
|
||||
OBJ=o
|
||||
LIBA=a
|
||||
|
||||
##################################################
|
||||
# if you don't want to create dynamic, delete it #
|
||||
LIBSO=so
|
||||
SOFLAGS=-fPIC -shared -o
|
||||
##################################################
|
||||
|
||||
|
||||
##################################################
|
||||
# set your compile flags and install prefix path #
|
||||
PREFIX=/usr/local
|
||||
CFLAGS+=-g -Wall -fPIC `pkg-config --cflags freetype2` -I/usr/local/include/harfbuzz
|
||||
LDFLAGS+=
|
||||
##################################################
|
||||
|
||||
+60
-32
@@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT(libminigui, 4.0.0)
|
||||
AC_INIT(libminigui, 4.0.4)
|
||||
AC_CONFIG_SRCDIR(src/main/main.c)
|
||||
|
||||
dnl Set various version strings - taken gratefully from the SDL sources
|
||||
@@ -16,7 +16,7 @@ dnl Set various version strings - taken gratefully from the SDL sources
|
||||
#
|
||||
MINIGUI_MAJOR_VERSION=4
|
||||
MINIGUI_MINOR_VERSION=0
|
||||
MINIGUI_MICRO_VERSION=0
|
||||
MINIGUI_MICRO_VERSION=4
|
||||
MINIGUI_INTERFACE_AGE=0
|
||||
MINIGUI_BINARY_AGE=0
|
||||
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
|
||||
@@ -62,7 +62,7 @@ dnl ========================================================================
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_HEADER_DIRENT
|
||||
AC_CHECK_HEADERS(sys/types.h sys/time.h termio.h unistd.h math.h locale.h)
|
||||
AC_CHECK_HEADERS(limits.h math.h locale.h unistd.h termio.h sys/types.h sys/time.h)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
@@ -90,10 +90,9 @@ detail_debug="no"
|
||||
trace_message="no"
|
||||
message_string="no"
|
||||
|
||||
osname="unspecified"
|
||||
runtime_mode="procs"
|
||||
|
||||
stand_alone="no"
|
||||
|
||||
incore_res="no"
|
||||
use_miniguientry="no"
|
||||
fixed_math="yes"
|
||||
@@ -265,8 +264,8 @@ enable_video_dfb="no"
|
||||
enable_video_dfb_st7167="no"
|
||||
enable_video_stgfb="no"
|
||||
|
||||
enable_video_fbcon="yes"
|
||||
enable_video_dri="yes"
|
||||
enable_video_drm="yes"
|
||||
enable_video_fbcon="no"
|
||||
enable_video_commlcd="no"
|
||||
enable_video_shadow="no"
|
||||
enable_video_mlshadow="no"
|
||||
@@ -314,10 +313,6 @@ AC_ARG_WITH(runmode,
|
||||
[ --with-runmode=procs/ths/sa the MiniGUI runtime mode <default=procs>],
|
||||
runtime_mode=$withval)
|
||||
|
||||
AC_ARG_ENABLE(standalone,
|
||||
[ --enable-standalone build MiniGUI-Standalone version <default=no>],
|
||||
stand_alone=$enableval)
|
||||
|
||||
AC_ARG_ENABLE(incoreres,
|
||||
[ --enable-incoreres use incore resource instead file IO to initialize MiniGUI <default=no>],
|
||||
incore_res=$enableval)
|
||||
@@ -754,9 +749,8 @@ AC_ARG_ENABLE(ctrlbidisledit,
|
||||
[ --enable-ctrlbidisledit include Single-Line BIDI EDIT control <default=no>],
|
||||
build_ctrl_bidisledit=$enableval)
|
||||
|
||||
dnl enable new textedit
|
||||
AC_ARG_ENABLE(newtextedit,
|
||||
[ --enable-ctrlnewtextedit include the new implementation of TEXTEDIT control <default=yes>],
|
||||
AC_ARG_ENABLE(ctrlnewtextedit,
|
||||
[ --disable-ctrlnewtextedit include the new implementation of TEXTEDIT control <default=yes>],
|
||||
build_ctrl_textedit_new=$enableval)
|
||||
|
||||
AC_ARG_ENABLE(ctrllistbox,
|
||||
@@ -892,25 +886,24 @@ dnl Find the DRM includes
|
||||
CheckDRM()
|
||||
{
|
||||
if test "x$runtime_mode" = "xprocs"; then
|
||||
enable_video_dri="no; DRI engine does not support MiniGUI-Processes runtime mode currently"
|
||||
enable_video_drm="no; DRI engine does not support MiniGUI-Processes runtime mode currently"
|
||||
else
|
||||
AC_ARG_ENABLE(videodri,
|
||||
[ --enable-videodri include Linux DRI NEWGAL engine <default=yes>],
|
||||
enable_video_dri=$enableval)
|
||||
if test "x$enable_video_dri" = "xyes"; then
|
||||
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4], video_dri="yes",
|
||||
video_dri="no; Linux DRI NEWGAL engine requires libdrm 2.4+")
|
||||
if test "x$video_dri" = "xyes"; then
|
||||
AC_DEFINE(_MGGAL_DRI, 1,
|
||||
AC_ARG_ENABLE(videodrm,
|
||||
[ --enable-videodrm include Linux DRI NEWGAL engine <default=yes>],
|
||||
enable_video_drm=$enableval)
|
||||
if test "x$enable_video_drm" = "xyes"; then
|
||||
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4], video_drm="yes",
|
||||
video_drm="no; Linux DRI NEWGAL engine requires libdrm 2.4+")
|
||||
if test "x$video_drm" = "xyes"; then
|
||||
AC_DEFINE(_MGGAL_DRM, 1,
|
||||
[Define if include Linux DRI NEWGAL engine])
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS dri"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS dri/libvideo_dri.la"
|
||||
DEP_LIBS="$DEP_LIBS -ldrm"
|
||||
need_udev="yes"
|
||||
DRM_INC_DIR="`$PKG_CONFIG --variable includedir libdrm`/drm"
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS drm"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS drm/libvideo_drm.la"
|
||||
DEP_LIBS="$DEP_LIBS -ldrm -ldl"
|
||||
DRM_INC_DIR="`$PKG_CONFIG --variable includedir libdrm`/libdrm"
|
||||
AC_SUBST(DRM_INC_DIR)
|
||||
else
|
||||
AC_MSG_WARN([$video_dri])
|
||||
AC_MSG_WARN([$video_drm])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -1486,7 +1479,7 @@ case "$with_libsuffix" in
|
||||
esac
|
||||
|
||||
AC_ARG_WITH(osname,
|
||||
[ --with-osname=linux/uclinux/ecos/ucos2/swlinux/vxworks/win32/darwin/threadx/cygwin/nucleus/ose/psos])
|
||||
[ --with-osname=linux/uclinux/rtt/rtems/freertos/ecos/ucos2/swlinux/vxworks/win32/darwin/threadx/cygwin/nucleus/ose/psos])
|
||||
|
||||
dnl configure.in file is used only for the following OSes: linux/uclinux/swlinux/ecos/darwin/cygwin
|
||||
dnl for other OSes, you should use makefile.ng or else.
|
||||
@@ -1495,18 +1488,42 @@ case "$with_osname" in
|
||||
uclinux)
|
||||
AC_DEFINE(__uClinux__, 1,
|
||||
[Define if compile for uClinux])
|
||||
osname="uClinux"
|
||||
;;
|
||||
rtt)
|
||||
AC_DEFINE(__RTTHREAD__, 1,
|
||||
[Define if compile for RT-Thread])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="RT-Thread"
|
||||
;;
|
||||
rtems)
|
||||
AC_DEFINE(__RTEMS__, 1,
|
||||
[Define if compile for RTEMS])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="RTEMS"
|
||||
;;
|
||||
freertos)
|
||||
AC_DEFINE(__FREERTOS__, 1,
|
||||
[Define if compile for FreeRTOS])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="FreeRTOS"
|
||||
;;
|
||||
ecos)
|
||||
AC_DEFINE(__ECOS__, 1,
|
||||
[Define if compile for eCos])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="eCos"
|
||||
;;
|
||||
ucos2)
|
||||
AC_DEFINE(__UCOSII__, 1,
|
||||
[Define if compile for uC/OS-II])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="uC/OS-II"
|
||||
incore_res="yes"
|
||||
use_own_malloc="yes"
|
||||
use_own_stdio="yes"
|
||||
@@ -1517,32 +1534,38 @@ case "$with_osname" in
|
||||
[Define if compile for Winbond SWLinux])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="SWLinux"
|
||||
;;
|
||||
vxworks)
|
||||
AC_DEFINE(__VXWORKS__, 1,
|
||||
[Define if compile for VxWorks])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="VxWorks"
|
||||
;;
|
||||
cygwin)
|
||||
AC_DEFINE(__CYGWIN__, 1,
|
||||
[Define if compile for Cygwin platform])
|
||||
osname="Cygwin"
|
||||
;;
|
||||
win32)
|
||||
AC_DEFINE(WIN32, 1,
|
||||
[Define if compile for Win32 platform])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="Windows"
|
||||
;;
|
||||
darwin)
|
||||
AC_DEFINE(__DARWIN__, 1,
|
||||
[Define if compile for OpenDarwin])
|
||||
osname="macOS"
|
||||
;;
|
||||
threadx)
|
||||
AC_DEFINE(__THREADX__, 1,
|
||||
[Define if compile for ThreadX])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="ThreadX"
|
||||
incore_res="yes"
|
||||
use_own_malloc="yes"
|
||||
use_own_stdio="yes"
|
||||
@@ -1553,6 +1576,7 @@ case "$with_osname" in
|
||||
[Define if compile for Nucleus])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="Nucleus"
|
||||
incore_res="yes"
|
||||
use_own_malloc="yes"
|
||||
use_own_stdio="yes"
|
||||
@@ -1563,6 +1587,7 @@ case "$with_osname" in
|
||||
[Define if compile for OSE])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="OSE"
|
||||
incore_res="yes"
|
||||
use_own_pthread="yes"
|
||||
;;
|
||||
@@ -1571,9 +1596,11 @@ case "$with_osname" in
|
||||
[Define if compile for pSOS])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
osname="pSOS"
|
||||
;;
|
||||
*)
|
||||
with_osname="linux"
|
||||
osname="Linux"
|
||||
AC_DEFINE(__LINUX__, 1,
|
||||
[Define if compile for Linux])
|
||||
;;
|
||||
@@ -2609,7 +2636,7 @@ src/font/Makefile
|
||||
src/font/in-core/Makefile
|
||||
src/newgal/Makefile
|
||||
src/newgal/fbcon/Makefile
|
||||
src/newgal/dri/Makefile
|
||||
src/newgal/drm/Makefile
|
||||
src/newgal/qvfb/Makefile
|
||||
src/newgal/pcxvfb/Makefile
|
||||
src/newgal/wvfb/Makefile
|
||||
@@ -2675,6 +2702,7 @@ AC_MSG_NOTICE([
|
||||
# Main building configuration:
|
||||
|
||||
## Global Features:
|
||||
* Operating system: ${osname}
|
||||
* Runtime mode: ${runtime_mode}
|
||||
* Incore resource: ${incore_res}
|
||||
* Developer mode: ${devel_mode}
|
||||
@@ -2685,7 +2713,7 @@ AC_MSG_NOTICE([
|
||||
* dummy: ${enable_video_dummy}
|
||||
* pc_xvfb: ${enable_video_pc_xvfb}
|
||||
* usvfb: ${enable_video_usvfb}
|
||||
* dri: ${enable_video_dri}
|
||||
* drm: ${enable_video_drm}
|
||||
* fbcon: ${enable_video_fbcon}
|
||||
* commlcd: ${enable_video_commlcd}
|
||||
|
||||
|
||||
+10
-2
@@ -22,10 +22,13 @@
|
||||
|
||||
[system]
|
||||
# GAL engine and default options
|
||||
# The equivalent environment variable: MG_GAL_ENGINE
|
||||
gal_engine=pc_xvfb
|
||||
# The equivalent environment variable: MG_DEFAULTMODE
|
||||
defaultmode=800x600-16bpp
|
||||
|
||||
# IAL engine
|
||||
# The equivalent environment variable: MG_IAL_ENGINE
|
||||
ial_engine=pc_xvfb
|
||||
mdev=/dev/input/mice
|
||||
mtype=IMPS2
|
||||
@@ -33,8 +36,8 @@ mtype=IMPS2
|
||||
# Linux IAL engine based on libinput
|
||||
# ial_engine=libinut
|
||||
|
||||
#{{ifdef _MGGAL_DRI
|
||||
[dri]
|
||||
#{{ifdef _MGGAL_DRM
|
||||
[drm]
|
||||
defaultmode=1024x768-32bpp
|
||||
|
||||
# We use DRM fourcc code to defined the pixel format of the video surface.
|
||||
@@ -44,10 +47,15 @@ pixelformat=XR24
|
||||
|
||||
# The DRI device
|
||||
device=/dev/dri/card0
|
||||
|
||||
# The resolution of the display
|
||||
# It is defined in dots (physical pixels) per inch
|
||||
# The default value is 96.
|
||||
dpi=96
|
||||
|
||||
# The filename of the shared library for the external driver.
|
||||
# The equivalent environment variable: MG_GAL_DRM_DRIVER
|
||||
exdriver=libhidrmdrivers.so.0
|
||||
#}}
|
||||
|
||||
#{{ifdef _MGIAL_LIBINPUT
|
||||
|
||||
+6
-5
@@ -50,7 +50,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -306,7 +306,8 @@ MGUI_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
|
||||
*/
|
||||
#if defined(__i386__) || defined(__ia64__) || defined(__x86_64__) || defined(__amd64) || \
|
||||
(defined(__alpha__) || defined(__alpha)) || \
|
||||
defined(__arm__) || \
|
||||
defined(__arm__) || defined(__aarch64__) || \
|
||||
defined(__riscv) || \
|
||||
(defined(__CC_ARM) && !defined(__BIG_ENDIAN)) || \
|
||||
(defined(__mips__) && defined(__MIPSEL__)) || \
|
||||
defined(__LITTLE_ENDIAN__) || \
|
||||
@@ -1963,7 +1964,7 @@ typedef struct _GAL_Rect {
|
||||
#endif
|
||||
|
||||
/* Commonly used definitions */
|
||||
#if !defined(__NOUNIX__) || defined (__ECOS__)
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
@@ -2317,7 +2318,6 @@ int init_minigui_printf (int (*output_char) (int ch),
|
||||
TCS_BROWN (stderr); \
|
||||
fprintf (stderr, "%s: ", __FUNCTION__); \
|
||||
fprintf (stderr, fmt, ##__VA_ARGS__); \
|
||||
fprintf (stderr, "\n"); \
|
||||
TCS_NONE (stderr); \
|
||||
} while (0)
|
||||
|
||||
@@ -2332,11 +2332,12 @@ int init_minigui_printf (int (*output_char) (int ch),
|
||||
# define _DBG_PRINTF(fmt, ...) \
|
||||
do { \
|
||||
TCS_YELLOW (stderr); \
|
||||
fprintf (stderr, "%s: ", __FUNCTION__); \
|
||||
fprintf (stderr, fmt, ##__VA_ARGS__); \
|
||||
TCS_NONE (stderr); \
|
||||
} while (0)
|
||||
# else
|
||||
# define _DBG_PRINTF(fmt, ...)
|
||||
# define _DBG_PRINTF(fmt, ...) do { } while (0)
|
||||
#endif
|
||||
|
||||
#ifdef _MGRM_THREADS
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+281
-90
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+182
-5
@@ -23,7 +23,7 @@
|
||||
and Graphics User Interface (GUI) support system for embedded systems
|
||||
and smart IoT devices.
|
||||
|
||||
Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd.
|
||||
Copyright (C) 2002~2019, Beijing FMSoft Technologies Co., Ltd.
|
||||
Copyright (C) 1998~2002, WEI Yongming
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -1155,7 +1155,7 @@ MG_EXPORT BOOL GUIAPI InitPolygonRegion (PCLIPRGN dst,
|
||||
#define GDCAP_DPI_MINIMAL 36
|
||||
|
||||
/**
|
||||
* \fn unsigned int GUIAPI GetGDCapability (HDC hdc, int iItem)
|
||||
* \fn Uint32 GUIAPI GetGDCapability (HDC hdc, int iItem)
|
||||
* \brief Returns a capability of a DC.
|
||||
*
|
||||
* This function returns the capability of the specified item \a iItem of
|
||||
@@ -1201,7 +1201,7 @@ MG_EXPORT BOOL GUIAPI InitPolygonRegion (PCLIPRGN dst,
|
||||
*
|
||||
* \return The capbility.
|
||||
*/
|
||||
MG_EXPORT unsigned int GUIAPI GetGDCapability (HDC hdc, int iItem);
|
||||
MG_EXPORT Uint32 GUIAPI GetGDCapability (HDC hdc, int iItem);
|
||||
|
||||
/**
|
||||
* \fn HDC GUIAPI GetDC (HWND hwnd)
|
||||
@@ -1389,6 +1389,48 @@ MG_EXPORT HDC GUIAPI CreateCompatibleDCEx (HDC hdc, int width, int height);
|
||||
*/
|
||||
MG_EXPORT BOOL GUIAPI IsCompatibleDC (HDC hdc1, HDC hdc2);
|
||||
|
||||
/**
|
||||
* \fn BOOL GUIAPI IsMemDC (HDC hdc)
|
||||
* \brief Check whether a given DC is a memory DC.
|
||||
*
|
||||
* This function checks whether a give DC \a hdc is a memory DC.
|
||||
*
|
||||
* \param hdc The handle to the DC.
|
||||
*
|
||||
* \return TRUE for memory DC, otherwise FALSE.
|
||||
*
|
||||
* \sa CreateMemDCEx
|
||||
*/
|
||||
MG_EXPORT BOOL GUIAPI IsMemDC (HDC hdc);
|
||||
|
||||
/**
|
||||
* \fn BOOL GUIAPI IsScreenDC (HDC hdc)
|
||||
* \brief Check whether a given DC is a screen DC.
|
||||
*
|
||||
* This function checks whether a give DC \a hdc is a screen DC.
|
||||
*
|
||||
* \param hdc The handle to the DC.
|
||||
*
|
||||
* \return TRUE for screen DC, otherwise FALSE.
|
||||
*
|
||||
* \sa CreateMemDCEx
|
||||
*/
|
||||
MG_EXPORT BOOL GUIAPI IsScreenDC (HDC hdc);
|
||||
|
||||
/**
|
||||
* \fn BOOL GUIAPI IsWindowDC (HDC hdc)
|
||||
* \brief Check whether a given DC is a window DC.
|
||||
*
|
||||
* This function checks whether a give DC \a hdc is a window DC.
|
||||
*
|
||||
* \param hdc The handle to the DC.
|
||||
*
|
||||
* \return TRUE for window DC, otherwise FALSE.
|
||||
*
|
||||
* \sa CreateMemDCEx
|
||||
*/
|
||||
MG_EXPORT BOOL GUIAPI IsWindowDC (HDC hdc);
|
||||
|
||||
/**
|
||||
* \fn HDC GUIAPI CreateMemDCEx (int width, int height, int depth, DWORD flags, \
|
||||
Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask,
|
||||
@@ -1911,7 +1953,7 @@ typedef int (* ON_UPDATE_SECONDARYDC)(HWND hwnd, HDC secondary_dc,
|
||||
const RECT* main_update_rc);
|
||||
|
||||
#define ON_UPDSECDC_DEFAULT ((ON_UPDATE_SECONDARYDC)0)
|
||||
#define ON_UPDSECDC_DONOTHING ((ON_UPDATE_SECONDARYDC)0xFFFFFFFF)
|
||||
#define ON_UPDSECDC_DONOTHING ((ON_UPDATE_SECONDARYDC)-1)
|
||||
|
||||
/**
|
||||
* \fn HDC GUIAPI SetSecondaryDC (HWND hwnd, HDC secondary_dc, \
|
||||
@@ -13646,6 +13688,141 @@ MG_EXPORT int GUIAPI SetUserCompositionOps (HDC hdc,
|
||||
CB_COMP_PUTHLINE comp_puthline,
|
||||
void* user_comp_ctxt);
|
||||
|
||||
/**
|
||||
* This function gets the video handle which corresponds to the given
|
||||
* device context.
|
||||
*
|
||||
* \param hdc The device context.
|
||||
*
|
||||
* \return The handle to the video; NULL on error.
|
||||
*
|
||||
* Since 4.0.4
|
||||
*/
|
||||
MG_EXPORT GHANDLE GetVideoHandle (HDC hdc);
|
||||
|
||||
#ifdef _MGGAL_DRM
|
||||
|
||||
/**
|
||||
* \defgroup gdi_drm_fns Functions for Linux DRM integration
|
||||
*
|
||||
* These functions can be used to get the DRM device file descriptor and the
|
||||
* information of the hardware surface corresponding to the DC which is
|
||||
* created by the Linux DRM engine. By using the information, we can
|
||||
* integrate MiniGUI with other graphics libraries, such as Cairo
|
||||
* (vector graphics) and Mesa (3D graphics).
|
||||
*
|
||||
* \note Only available when support for Linuxe DRM NEWGAL engine
|
||||
* (`_MGGAL_DRM`) is enabled.
|
||||
*
|
||||
* Since 4.0.4
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* This function gets the file descriptor opened by the Linux DRM engine.
|
||||
*
|
||||
* \param video The video handle returned by \a GetVideoHandle.
|
||||
*
|
||||
* \return The DRM device file descriptor opened by the Linux DRM engine;
|
||||
* >= 0 for success and < 0 on error. If \a surface is not a hardware
|
||||
* surface created by the DRM engine, this function returns -1.
|
||||
*/
|
||||
MG_EXPORT int drmGetDeviceFD (GHANDLE video);
|
||||
|
||||
/**
|
||||
* THe struct type defines the DRM surface information.
|
||||
*/
|
||||
typedef struct _DrmSurfaceInfo {
|
||||
/** The prime fd of the buffer object. */
|
||||
int prime_fd;
|
||||
/** The global name of the buffer object. */
|
||||
uint32_t name;
|
||||
/** The local handle of the buffer object. */
|
||||
uint32_t handle;
|
||||
/** The buffer identifier. */
|
||||
uint32_t id;
|
||||
/** The width of the surface. */
|
||||
uint32_t width;
|
||||
/** The height of the surface. */
|
||||
uint32_t height;
|
||||
/** The row stride of the surface. */
|
||||
uint32_t pitch;
|
||||
/** The DRM pixel format. */
|
||||
uint32_t drm_format;
|
||||
/** Size in bytes of the buffer object. */
|
||||
unsigned long size;
|
||||
} DrmSurfaceInfo;
|
||||
|
||||
/**
|
||||
* This function gets the DRM surface information from specified device context.
|
||||
*
|
||||
* \param video The handle to the video.
|
||||
* \param hdc The handle to the device context.
|
||||
* \param info The pointer to a DrmSurfaceInfo structure to hold
|
||||
* the surface information.
|
||||
*
|
||||
* \return TRUE for success, FALSE for failure.
|
||||
*/
|
||||
MG_EXPORT BOOL drmGetSurfaceInfo (GHANDLE video, HDC hdc, DrmSurfaceInfo* info);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign process and identified by a global name handle.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param name The name handle of the DRM surface.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC drmCreateDCFromName (GHANDLE video,
|
||||
uint32_t name, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign process and identified by a PRIME file descriptor.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param prime_fd The PRIME file descriptor.
|
||||
* \param size The size of the DRM surface in bytes.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC drmCreateDCFromPrimeFd (GHANDLE video,
|
||||
int prime_fd, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign graphics component.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param handle The handle of the DRM surface.
|
||||
* \param size The size of the DRM surface in bytes.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC drmCreateDCFromHandle (GHANDLE video,
|
||||
uint32_t handle, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/** @} end of gdi_drm_fns */
|
||||
|
||||
#endif /* _MGGAL_DRM */
|
||||
|
||||
/** @} end of gdi_fns */
|
||||
|
||||
#ifdef _MGGAL_HI3560
|
||||
|
||||
+3
-3
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -274,13 +274,13 @@ extern MG_EXPORT MG_Layer* mgLayers;
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn int GUIAPI InitGUI (int, const char **)
|
||||
* \fn int GUIAPI InitGUI (int argc, const char *argv[])
|
||||
* \brief Initialize MiniGUI.
|
||||
*
|
||||
* The meaning of two parameters is same with parameters of main function.
|
||||
*
|
||||
**/
|
||||
MG_EXPORT int GUIAPI InitGUI (int, const char **);
|
||||
MG_EXPORT int GUIAPI InitGUI (int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* \fn void GUIAPI TerminateGUI (int not_used)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
under the terms and conditions of the commercial license.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/en/about/licensing-policy/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user