public inbox for cygwin-xfree@sourceware.org
help / color / mirror / Atom feed
From: Jeremy Wilkins <jeb@jeremywilkins.freeserve.co.uk>
To: cygwin-xfree@cygwin.com
Subject: Re: XWin Architecture
Date: Thu, 11 Mar 2004 21:20:00 -0000	[thread overview]
Message-ID: <404EFBED.4030104@jeremywilkins.freeserve.co.uk> (raw)
In-Reply-To: <404E93A3.6080602@msu.edu>

Hi,

Mostly curious - I fired off the email a bit quickly, I found some of 
the answers in the contributors guide later on, rtfm would've been a 
fair reply.

I've been following the Y-windows mailing list where they talked about 
about an X compatibility layer, I was just considering how this would be 
done. I doubt I'd have the time to implement it. Since I use cygwin/x a 
lot seemed like a good template.

After a bit of hunting I found the miext/rootless code, I've been 
struggling to understand the Objective C code using it though. I'd be 
curious to read Torrey's draft on how it works (obviously I wouldn't 
redistribute it).

jeremy

Harold L Hunt II wrote:
> Jeremy,
> 
> Jeremy Wilkins wrote:
> 
>> Hi,
>>
>> I'm curious about how the cygwin XWin server works?
> 
> 
> Curious, or interested in helping?  If just curious, then please wait a 
> few days or dig through the archives... I have described it in detail a 
> few times.  Perhaps the following answers will be all you need.
> 
>> My understanding is it is similar to an X Server on linux but instead 
>> of rendering to the graphics card framebuffer, it is rendered to an 
>> offscreen surface and then bitblt'd to an on screen pixmap using 
>> direct draw, or GDI if dd is unavailable.
> 
> 
> That is correct.
> 
>> Does the MacOS X Xserver work in the same way?
> 
> 
> Yes.
> 
>> Does this use a lot of existing code, eg from either vnc or xvfb servers?
> 
> 
> Yes, but not from vnc or xvfb.  There is a generic layer written by 
> Keith Packard called "fb" that draws to framebuffers using the cpu. This 
> "fb" layer replaced the old "cfb" and "mfb" layers that did the same 
> thing but were crufty and designed for the cpu being the constraint 
> (think 1980's) rather than the buses to and from memory and other 
> peripherals being the constraint (think today).
> 
>> How does the rootless stuff work, does this just figure out where the 
>> top level windows are and only bitblt those but into separate 
>> surfaces/windows.
> 
> 
> Well, that is sort of a dangerous question.  There is the original 
> "rootless" mode that Kensuke wrote a while back.  That mode just keeps 
> track of the top-level X11 windows and clips transfers to our single 
> Win32 window to the region that is occupied by X11 windows, thus 
> preventing the root window from being drawn.  You will note that all of 
> the X11 windows appear to float in the same plane when you use -rootless 
> in the current versions of XWin.exe.
> 
> There is also multi-window, but that is a little more complex in that it 
> has an internal window manager and it creates a Win32 window for each 
> top-level X11 window and provides management of those windows.  This one 
> does bitblt to particular Win32 windows, whereas the aforementioned 
> rootless mode only had a single Win32 window.
> 
>> I've read somewhere that there is some generic rootless code in the xc 
>> tree, where abouts is this?
> 
> 
> That is in xc/programs/Xserver/miext/rootless.  Kensuke's latest work 
> has centered around getting this to work.  He has a new window manager 
> written that is more complete than the current multi-window window 
> manager.  However, there are still significant bugs in this 
> implementation and we are not even building releases from the source 
> tree with that code in it yet.
> 
> Torrey Lyons just sent me a draft description of how miext/rootless 
> works.  Hopefully he will finish it soon so I can point you to it.  It 
> really is an interesting layer and it allows optimization of some simple 
> cases that will have quite a large performance impact.
> 
> Harold
> 



  reply	other threads:[~2004-03-11 21:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-08 19:50 Jeremy Wilkins
2004-03-10  4:03 ` Harold L Hunt II
2004-03-11 21:20   ` Jeremy Wilkins [this message]
2004-03-11 21:32     ` Harold L Hunt II
2004-03-18 21:13       ` Jeremy Wilkins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=404EFBED.4030104@jeremywilkins.freeserve.co.uk \
    --to=jeb@jeremywilkins.freeserve.co.uk \
    --cc=cygwin-xfree@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).