This is the mail archive of the
cygwin-xfree@sourceware.cygnus.com
mailing list for the Cygwin project.
Additions to new Beta X Server README.
- To: "Cygwin-Xfree at Sourceware dot Cygnus. Com" <cygwin-xfree at sourceware dot cygnus dot com>
- Subject: Additions to new Beta X Server README.
- From: "Suhaib M. Siddiqi" <ssiddiqi at InspirePharm dot Com>
- Date: Wed, 8 Mar 2000 16:46:52 -0500
I forgot to attach a copy of Dr. Busch message. It contains some very
useful
information and suggestions for developers who wish to extend the
functionality of
the Display Driver.
Please append it to README file.
Thanks
Suhaib
----------------
Dear Suhaib,
Thanks for reply. Here are first code parts.
Encouraged by your reply I would like to pursue my proposition 2 of my
last mail.
In order to avoid problems with the release of parts of my original code
I decided to
write a new virtual NT graphics driver.
This first version of the driver (called xfddx) provides framebuffer
mapping,
stub code for the kernel GCops calls and dynamic load/unload support of
extension
modules..
In its current form it may be used to output-enable a framebuffer based
X server.
Anyone who wants to extend its functionality can either fill the GCops
stubs or write
an Extension Driver which provides specific GC support.
I decided to support dynamically runtime-loadable extension drivers to
enhance
flexibility, extensibility and to speed up the development cycles.
The xfddx.tgz archieve contains the driver, its sources and a small
README file which
describes the xfddx module, its design extension drivers in more detail.
The rest of the code is for demo / testing purposes only.
I messed around a simple output-only version of an xvfb-based
framebuffer
server which uses the xfddx functionality.
It is built from the X11R6.4 code tree with the cygwinb19 package. In
its current form
it works correctly only in 256 color mode due to some limitations of in
the module it uses
to call the xfddx driver mapping functionality.
It passed my tests, espacially the xbench and the xieperf test.
This demonstrator uses the xfddx driver via a gcc-generated library
(get_surf) to which the
xvfb statically links. The get_surf library (libget_surf.a) links
dynamically to a MSVC
generated Dll (ntux_ddx) which provides frame buffer mapping by calling
the xfddx driver via
the Win32 ExtEscape call.
(The raison d'etre for the MSVC generated module is the fact that the
framebuffer mapping
is invalidated on each desktop switch (screen saver activation, switch
to the, logon desktop)
and should be restored automatically if access to the mapped frame
buffer raises an access
violation via a __try / __except based exception handler wich requires
the MSVC compiler).
There is also a small test application (I took no effort to make it
nice), called maptest for the
test of the xfddx functions. It shows how to map the framebuffer, to
call the GC functions in
the xfddx driver and how to load extension modules (a simple dummy
driver (nt2xv.dll) is
included, it must be copied to the <WIN_DIR>/system32 directotry).
I append the following archieves to this mail
xfddx.tgz : contains the xfddx virtual display driver
maptest.tgz : simple test code for the xfddx driver
ntux_ddx.tgz : Win32 Dll wrapper for the gcc-generated get_surf library
xvfb_8_bit_only.tgz : cygwinb19 X11R6.4 framebuffer server sources in
xc/programs/XServer/hw/vfb
x_binaries.tgz : binaries and misc stuff for testing purposes
P.S.:
Some code parts of xfddx are from a collegue, Jürgen David. Therefore
Jürgens name appears in some of the source files
Best regards
Peter