1 |
673 |
markom |
<html>
|
2 |
|
|
|
3 |
|
|
<head>
|
4 |
|
|
<meta http-equiv="Content-Language" content="en-us">
|
5 |
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
6 |
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
|
7 |
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
8 |
|
|
<title></title>
|
9 |
|
|
</head>
|
10 |
|
|
|
11 |
|
|
<body>
|
12 |
|
|
|
13 |
|
|
<h1><img border="0" src="file:///C:/My%20Documents/My%20Webs/myweb2/images/evearth.gif" WIDTH="36" HEIGHT="36"> Microwindows Frequently Asked
|
14 |
|
|
Questions</h1>
|
15 |
|
|
|
16 |
|
|
<p>1999/12/04 Microwindows FAQ - <a href="mailto:greg@censoft.com">greg@censoft.com</a></p>
|
17 |
|
|
|
18 |
|
|
<h3>What is Microwindows?</h3>
|
19 |
|
|
|
20 |
|
|
<p>Microwindows is an Open Source project that brings some of the features of modern
|
21 |
|
|
graphical windowing systems to the programming community not wanting or requiring the
|
22 |
|
|
large disk and ram requirements of higher-end windowing systems like Microsoft Windows or
|
23 |
|
|
the X Window System. Microwindows does not require any operating system or other
|
24 |
|
|
graphics system support, as it writes directly to the display hardware, although it runs
|
25 |
|
|
well on Linux framebuffer systems. Microwindows is designed to be portable, and can
|
26 |
|
|
run in a wide variety of hardware and software environments. One the of more
|
27 |
|
|
interesting targets is the emerging market of portable handheld and pocket PC's running
|
28 |
|
|
Linux, also known as LinuxCE. </p>
|
29 |
|
|
|
30 |
|
|
<h3>What does Microwindows run on?</h3>
|
31 |
|
|
|
32 |
|
|
<p>Microwindows currently runs on 32-bit Linux systems with kernel framebuffer support, or
|
33 |
|
|
through the popular SVGAlib library. In addition, it has been ported to 16-bit Linux
|
34 |
|
|
ELKS, and real-mode MSDOS. Microwindows screen drivers for 1, 2, 4, 8, 16 and 32
|
35 |
|
|
bits-per-pixel have been written, as well as a VGA 16 color 4 planes driver.
|
36 |
|
|
Microwindows has been ported to a number of Handheld and Pocket PC's, as well. The
|
37 |
|
|
Microwindows graphics engine is capable of running on any system that supports readpixel,
|
38 |
|
|
writepixel, drawhorzline and drawvertline, and setpalette. Blitting support is
|
39 |
|
|
optional, but if implemented allows enhanced functionality. All bitmap, font, cursor
|
40 |
|
|
and color support is implemented on top of these routines. Support for 8, 15, 16 and
|
41 |
|
|
32 bit truecolor systems as well as 1, 2, 4 and 8bpp palletized systems is implemented.<br>
|
42 |
|
|
<br>
|
43 |
|
|
Recently, an X11 driver was completed that allows Microwindows applications to be run on
|
44 |
|
|
top of the X Window desktop. This driver emulates all of Microwindows' truecolor and
|
45 |
|
|
palette modes so that an application can be previewed using the target system's display
|
46 |
|
|
characteristics directly on the desktop display, regardless of the desktop display
|
47 |
|
|
characteristics.</p>
|
48 |
|
|
|
49 |
|
|
<h3>What CPU's are supported?</h3>
|
50 |
|
|
|
51 |
|
|
<p>Microwindows is extremely portable, and completely written in C, although some routines
|
52 |
|
|
have been recoded in assembly for speed. It has been ported to the Intel 16 and 32
|
53 |
|
|
bit cpu's, as well as MIPS R4000 (NEC Vr41xx) and ARM chips found on popular handheld and
|
54 |
|
|
pocket PC's.</p>
|
55 |
|
|
|
56 |
|
|
<h3>How big is Microwindows?</h3>
|
57 |
|
|
|
58 |
|
|
<p>On 16 bit systems, the entire system, including screen, mouse and keyboard drivers runs
|
59 |
|
|
in less than 64k. On 32-bit systems, support includes proportional fonts and
|
60 |
|
|
applications are typically less than 100k.</p>
|
61 |
|
|
|
62 |
|
|
<h3>What is Microwindows' architecture and what API's are supported?</h3>
|
63 |
|
|
|
64 |
|
|
<p>Microwindows is essentially a layered design that allows different layers to be used or
|
65 |
|
|
rewritten to suite the needs of the implementation. At the lowest level, screen,
|
66 |
|
|
mouse/touchpad and keyboard drivers provide access to the actual display and other
|
67 |
|
|
user-input hardware. At the mid level, a portable graphics engine is implemented,
|
68 |
|
|
providing support for line draws, area fills, polygons, clipping and color models.
|
69 |
|
|
At the upper level, various API's are implemented providing access to the graphics
|
70 |
|
|
applications programmer. These APIs may or may not provide desktop and/or window
|
71 |
|
|
look and feel. Currently, Microwindows supports the Win32 and Nano-X APIs.
|
72 |
|
|
These APIs provide close compatibility with the Win32 and X Window systems, allowing
|
73 |
|
|
programs to be ported from other systems easily.</p>
|
74 |
|
|
|
75 |
|
|
<h3>What's the difference between Microwindows and NanoGUI?</h3>
|
76 |
|
|
|
77 |
|
|
<p>Microwindows' origin is with NanoGUI. NanoGUI was created by Alex Holden by
|
78 |
|
|
taking David Bell's mini-X server and Alan Cox's modifications and adding client/server
|
79 |
|
|
networking. Greg Haerr then took interest in the NanoGUI project and began making
|
80 |
|
|
extensive enhancements and modifications to NanoGUI. Around version 0.5, Greg Haerr
|
81 |
|
|
added support for multiple API's, and began distributing Microwindows. In
|
82 |
|
|
Microwindows 0.84, all previous NanoGUI changes were incorporated and since then
|
83 |
|
|
Microwindows has been the combined NanoGUI/Microwindows distribution.</p>
|
84 |
|
|
|
85 |
|
|
<h3>What is Nano-X?</h3>
|
86 |
|
|
|
87 |
|
|
<p>Nano-X is the X-like API that Microwindows supports. It is based on David Bell's
|
88 |
|
|
mini-X server API, and includes X-like primitives for low-level window and graphics
|
89 |
|
|
operations. Window management is not included, and the window look and feel must be
|
90 |
|
|
created through a widget set or directly by the applications programmer. Currently,
|
91 |
|
|
there are a number of people working on widget sets for Nano-X. There is some
|
92 |
|
|
discussion about converting the Nano-X API to be X Window System compatible.</p>
|
93 |
|
|
|
94 |
|
|
<h3>What is the Microwindows API?</h3>
|
95 |
|
|
|
96 |
|
|
<p>Microwindows supports an API based on the Win32 graphics device interface
|
97 |
|
|
module, and implements a large portion of it. The function calls try to be 100%
|
98 |
|
|
compatible, so that code compiled for other operating systems can usually be
|
99 |
|
|
compiled with no source code changes. In addition, a portion of the Win32
|
100 |
|
|
USER module is implemented, which contains routines for window dragging, title
|
101 |
|
|
bars, message passing, and generating required window messages.
|
102 |
|
|
Because of this, window manager support is built into the system, and a single
|
103 |
|
|
API for applications programs can be used that doesn't change based on the
|
104 |
|
|
widget set being used.<br>
|
105 |
|
|
<br>
|
106 |
|
|
Since the WinCE API is mostly a subset of the Win32 API for graphics-related
|
107 |
|
|
functions, the Microwindows API is also WinCE compatible, and can be used to
|
108 |
|
|
implement WinCE graphics functions on platforms Microwindows is running on.</p>
|
109 |
|
|
|
110 |
|
|
<h3>What are Microwindows' graphics features?</h3>
|
111 |
|
|
|
112 |
|
|
<p>Microwindows features full RGB color support, color mapping, optimized palette bitmap
|
113 |
|
|
drawing, truecolor and palletized displays, and a 3d look-and-feel. Overlapped and child
|
114 |
|
|
windows are supported, with complete window and client area clipping. Proportional and
|
115 |
|
|
fixed fonts are supported, along with utilities for converting fonts or bitmap files.
|
116 |
|
|
Optimized painting algorithms are used to allow maximum response while the user is moving
|
117 |
|
|
windows on the screen. Offscreen drawing and bit-blit routines are implemented for
|
118 |
|
|
flicker-free drawing and animation. Polygon draws, fills and arbitrary region clipping are
|
119 |
|
|
also supported.</p>
|
120 |
|
|
|
121 |
|
|
<h3>What license is Microwindows under?</h3>
|
122 |
|
|
|
123 |
|
|
<p>The project is licensed under the MPL. Alternatively, the software can be
|
124 |
|
|
licensed under the GPL, if desired. This means that the standard Microwindows
|
125 |
|
|
distribution can be used for commercial purposes, and supports the needs of developers
|
126 |
|
|
working under non-disclosure or writing proprietary device drivers. Modifications to
|
127 |
|
|
source code supplied in the standard distribution must stay open source. Or the
|
128 |
|
|
entire project can be converted to GPL, with files added by a developer considered GPL
|
129 |
|
|
only.</p>
|
130 |
|
|
|
131 |
|
|
<h3>Where is the most current source?</h3>
|
132 |
|
|
|
133 |
|
|
<p>The FTP site <a href="ftp://microwindows.censoft.com/pub/microwindows">ftp://microwindows.censoft.com/pub/microwindows</a>
|
134 |
|
|
is the primary distribution point for all releases. The home web site is at <a href="http://microwindows.censoft.com">http://microwindows.censoft.com</a>. I can be
|
135 |
|
|
reached at <a href="mailto:greg@censoft.com">greg@censoft.com</a>. I am working on
|
136 |
|
|
getting the development tree moved to CVS, stay tuned.</p>
|
137 |
|
|
|
138 |
|
|
<h3>Are there screenshots and/or demos available?</h3>
|
139 |
|
|
|
140 |
|
|
<p>There are demos for Linux, ELKS and MSDOS, as well as screenshots, available at:</p>
|
141 |
|
|
|
142 |
|
|
<blockquote>
|
143 |
|
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ScreenShots</a></p>
|
144 |
|
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/LinuxExamples</a>
|
145 |
|
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ElksExamples</a>
|
146 |
|
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/DosExamples</a></p>
|
147 |
|
|
</blockquote>
|
148 |
|
|
|
149 |
|
|
<h3>Is there a mailing list?</h3>
|
150 |
|
|
|
151 |
|
|
<p>The mailing list is <a href="mailto:nanogui@linuxhacker.org">nanogui@linuxhacker.org</a></p>
|
152 |
|
|
|
153 |
|
|
<p>To subscribe, send an empty email to:</p>
|
154 |
|
|
|
155 |
|
|
<p> <a href="mailto:nanogui-subscribe@linuxhacker.org">nanogui-subscribe@linuxhacker.org</a></p>
|
156 |
|
|
|
157 |
|
|
<p>To unsubscribe, send an empty email to:</p>
|
158 |
|
|
|
159 |
|
|
<p> <a href="mailto:nanogui-unsubscribe@linuxhacker.org">nanogui-unsubscribe@linuxhacker.org</a></p>
|
160 |
|
|
|
161 |
|
|
<h3>What can I do to help?</h3>
|
162 |
|
|
|
163 |
|
|
<p>We need help in all sorts of areas. There are currently projects to port base
|
164 |
|
|
level widget sets and custom controls to Microwindows. Fast screen drivers and
|
165 |
|
|
blitting routines are also on the list. There are lots of folks interested in
|
166 |
|
|
getting the system to run on one of the many new Handheld or Pocket PC's. Please
|
167 |
|
|
join the list and join the fun.</p>
|
168 |
|
|
|
169 |
|
|
<p> </p>
|
170 |
|
|
</body>
|
171 |
|
|
</html>
|