This is the mail archive of the cygwin-xfree@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Goals of the test releases


I looked over Suhaib's recommended reading, "Design of eXcursion Version 2
for Windows", and it gave me an interesting perspective and insight on how
to implement the non-frame buffer X server.  For those of you that haven't
read it, the document being referred to is at:
http://www.digital.com/DTJL03/DTJL03.HTM

Apparently, the writers of that document were able to map nearly all X
graphics functions directly to Windows GDI graphics calls, with the
exception of three classes of operations:
1)  Transparent stipple fills - the GDI function necessary was available
	on NT, but not on Windows 95/3.1
2)  Image requests - direct access to video memory was not available,
	and bitmaps acquired through the GDI had a reverse
	scan line order compared to X bitmaps, so GDI bitmaps had
	to be cached and flipped before they could be returned to the 
	X server
3)  Plane masking - masking was available on NT, but not on 95/3.1,
	nor was direct video memory access available

"Design of eXcursion Version 2 for Windows", was last updated in May of
1996, and a lot of things have happened on the Win32 API front since that
time.  Most significantly, DirectDraw was released.

A combination of Windows GDI and DirectDraw will probably be the most
likely, and best performing, solution for implementing the non frame buffer
X server.  Windows GDI functions will be used for all graphics operations
except the three listed above, while DirectDraw will be used when one of the
three operation above needs to be performed.  DirectDraw provides support
for each of the three operations listed above and DirectDraw can be used in
combination with Windows GDI calls to provide a total solution.

Working on the offscreen frame buffer X server seems pretty boring in
comparison to the non frame buffer X server, so I'll probably just start
working on the non frame buffer X server now, rather than later.

Harold

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]