[comp.windows.x] Does XUI support dual screen?

hara@ASC.SLB.COM (10/20/90)

	 Does anybody know whether XUI (DecWindows) supports two COLOR screens?
	I know that XUI (DecWindows) works fine on SUN4/110 which has bwtwo 
	(B&W) and cgfour (color), but it doesn't work on SparcStation 330 which 
	has cgsix and cgtwo.

	Thanks for your any information,
	K. Hara

klee@wsl.dec.com (Ken Lee) (10/23/90)

In article <9010191827.AA09551.hara@ika.ASC.SLB.COM>, hara@ASC.SLB.COM writes:
|> 	 Does anybody know whether XUI (DecWindows) supports two COLOR screens?
|> 	I know that XUI (DecWindows) works fine on SUN4/110 which has bwtwo 
|> 	(B&W) and cgfour (color), but it doesn't work on SparcStation 330 which 
|> 	has cgsix and cgtwo.

XUI should work properly with any server supporting any number of
screens.  I have seen it working properly on a DECstation with 3 color
screens.  Do X applications other than XUI work properly on your
SparcStation X server?

-- 
Ken Lee
DEC Western Software Laboratory, Palo Alto, Calif.
Internet: klee@wsl.dec.com
uucp: uunet!decwrl!klee

klee@wsl.dec.com (Ken Lee) (10/23/90)

In article <1990Oct22.151539.2062@thyme.jpl.nasa.gov>, kaleb@thyme.jpl.nasa.gov (Kaleb Keithley	) writes:
|> With regards to Dec, their product engineers told me/us that their server
|> does support multiple screens.  However, none of their hardware supports 
|> multiple screens.  Yet another case of software surpassing the capabilities
|> of hardware.

The DECstation 5000 (hardware and X server) supports up to 3 screens.

-- 
Ken Lee
DEC Western Software Laboratory, Palo Alto, Calif.
Internet: klee@wsl.dec.com
uucp: uunet!decwrl!klee

kaleb@thyme.jpl.nasa.gov (Kaleb Keithley ) (10/23/90)

In article <9010191827.AA09551.hara@ika.ASC.SLB.COM> hara@ASC.SLB.COM writes:
>
>	 Does anybody know whether XUI (DecWindows) supports two COLOR screens?
>	I know that XUI (DecWindows) works fine on SUN4/110 which has bwtwo 
>	(B&W) and cgfour (color), but it doesn't work on SparcStation 330 which 
>	has cgsix and cgtwo.
>

When I last spoke to Dec's support engineers, they indicated that the Dec 
server will support multiple screens, however there is no Dec hardware
that supports multiple screens.

As for Xsun supporting multiple screens, you are correct, the cgfour gives
you two virtual screens on a single monitor.  Let me take this opportunity
to plug the JPL Xsun multi-screen patches.  If you want Xsun to support
a cgsix and a cgtwo, you have to send me a request for the JPL Xsun
multi-screen patches.  The JPL patches have been tested on the following
equipment configurations:
1, 2, and 3 cgtwos in a Sun 4 VME-BUS.
1 cgfour in a Sun 4/110.
1 cgthree in a Sun 4 S-BUS.

The patches have not been tested (for lack of the hardware, but should
work) on the following configurations:
1, 2, and three cgthrees in a Sun 4 S-BUS (SparcStation.)
1 cgsix and 1 cgthree in a Sun 4 S-BUS (SparcStation.)
1 cgsix and 1-3 cgtwos in a Sun 4 VME-BUS.

-- 
Kaleb Keithley                      Jet Propulsion Labs
kaleb@thyme.jpl.nasa.gov

causing trouble again.

kaleb@thyme.jpl.nasa.gov (Kaleb Keithley ) (10/23/90)

In article <1990Oct22.103700@wsl.dec.com> klee@wsl.dec.com writes:
>In article I wrote:
>|> With regards to Dec, their product engineers told me/us that their server
>|> does support multiple screens.  However, none of their hardware supports 
>|> multiple screens.  Yet another case of software surpassing the capabilities
>|> of hardware.
>
>The DECstation 5000 (hardware and X server) supports up to 3 screens.
>

Well, I guess I should have qualified when they told me that, which was
over a year ago.

-- 
Kaleb Keithley                      Jet Propulsion Labs
kaleb@thyme.jpl.nasa.gov

causing trouble again.

hara@ASC.SLB.COM (10/23/90)

>	
>For starters, you will never find a Sun 4/330 with a cgsix in it, cgsix
>is an S-BUS product that goes in Sun 4/60 and 4/65s (SparcStations).  
>Maybe you mean a cgeight, which is the GX (???) 8 bit accelerated 
>VME-BUS product.  At the risk of speaking for the consortium, the MIT 
>server sun ddx layer, which I understand was written by Sun for MIT, 
>does not support the cgeight.  Someone did post some source in 
>comp.sources.x for a cgeight server.  Similarly, there is no support 
>in the MIT server or the Sun X11/NeWS server for cgnine GXP (???) 24 bit
>accellerated VME-BUS product.
>

	 Anyways/somehow, MIT X11R4 server works (seems to work) on Sun4/330 
	with two color screens (cgtwo,cgsix).

>
>With regards to Dec, their product engineers told me/us that their server
>does support multiple screens.  However, none of their hardware supports 
>multiple screens.  Yet another case of software surpassing the capabilities
>of hardware.
>

	 We're NOT using DEC's server, but using MIT's original server.
	Generally, it works fine on dual screen (Sun4/330 cgtwo+cgsix), but if 
	I run some application	which uses XUI (DecWindows) on the second 
	screen, we get some X protocol errors such as "Bad Match" or "Bad GC"
	when drawing text widgets.  Of cource, if I display all pictures from 
	the program on the first screen, it works perfectly.

	Any clues?

	Kenzo Hara
	hara@asc.slb.com

jimf@SABER.COM (10/23/90)

|Maybe you mean a cgeight, which is the GX (???) 8 bit accelerated 
|VME-BUS product.

Are you sure?  I thought cgeight was the 24-bit board (most common in
4/110's) that never worked right....

jim frost
saber software
jimf@saber.com

hara@ASC.SLB.COM (10/23/90)

	 I think I find the bug in XUI code,i.e.,

	------------------- GCManager.c file --------------------	
....
static Drawable GCparents[256]; /* static initialized to zero, K&R ss 4.9 */
....

GC XtGetGC(widget, valueMask, values)
             Widget     widget;
    register XtGCMask   valueMask;
             XGCValues  *values;
{
....

    if (XtWindow(widget) == NULL) {
        /* Have to create a bogus pixmap for the GC.  Stupid X protocol. */
        if (GCparents[depth] != 0) {
            drawable = GCparents[depth];		<--- [0]
        } else {
            if (depth == DefaultDepthOfScreen(screen))
                drawable = RootWindowOfScreen(screen);
            else
                drawable = XCreatePixmap(cur->dpy, screen->root, 1, 1, depth);
           GCparents[depth] = drawable;
        }
    } else {
        drawable = XtWindow(widget);
    }
    cur->gc = XCreateGC(cur->dpy, drawable, valueMask, values);	<--- [1]

	......
	
    ----------------------------------------------------------------------

 	The program breaks at [1] with "Bad Match" error, and if you look
	at the staic variable  GCparents, it's shared if "widget" has the same 
	depth. And here is the problem, i.e., if a widget which has the 
	different root window as before (in our case "depth" is always 8) 
	is created, the same "same" drawable will be sent to XCreateGC.

	Is this already fixed? If so, can I get it? If not, I'll fix it here.

	B.T.W., the last update of our GCManager.c file was done Feb/27/'88.

	Thanks much,
	Kenzo HARA

	hara@asc.slb.com 

asente@adobe.com (Paul Asente) (10/24/90)

In article <9010230144.AA11585.hara@ika.ASC.SLB.COM> hara@ASC.SLB.COM writes:
>
>	 I think I find the bug in XUI code,i.e.,
...
>	Is this already fixed? If so, can I get it? If not, I'll fix it here.

XUI is based upon a fairly old version of the Intrinsics.  This bug has been
fixed in the MIT distribution.

Your options are
	- Fix it yourself locally (since you seem to have the source!)
	- Switch to a newer toolkit -- may I suggest Motif 1.1?

	-paul asente

New address!	asente@adobe.com	...decwrl!adobe!asente

hara@ASC.SLB.COM (10/25/90)

>
>XUI is based upon a fairly old version of the Intrinsics.  This bug has been
>fixed in the MIT distribution.
>
>Your options are
>	- Fix it yourself locally (since you seem to have the source!)
>	- Switch to a newer toolkit -- may I suggest Motif 1.1?
>
>	-paul asente
>

	I took the first option, and now it works perfectly , and here is 
	the "diff" of GCManager.c file;

diff X11/GCManager.c /uha0/xuisrc/lib/dwt
71d70
< #if 0
73,83d71
< #endif
< 
< typedef struct _GCParentRec {
<       Screen             *screen;
<       Cardinal           depth;
<       Drawable           drawable;
<       struct _GCParentRec *next;
< } GCParentRec;
< 
< static GCParentRec *GCParent = NULL;
< 
152,153d139
<            GCParentRec *tmp_gcp;
<            GCParentRec *cur_gcp;
182,183d167
< 
< #if 0 /* original code by DEC */
197,223d180
<     }
< #endif
< 
<     /*  
<     ** Fix for multi color screen support 
<     ** by Kenzo Hara  (ASC/WS)   Oct 23 '90
<     */
<     if ((drawable = XtWindow(widget)) == NULL) {
<       for (cur_gcp=GCParent;cur_gcp != NULL;cur_gcp = cur_gcp->next) {
<               if (screen == cur_gcp->screen && depth == cur_gcp->depth) {
<                       drawable = cur_gcp->drawable;
<                       break;
<               }
<       }
<       if (!drawable) {
<           if (depth == DefaultDepthOfScreen(screen)) {
<               drawable = RootWindowOfScreen(screen);
<           } else { 
<               drawable = XCreatePixmap(cur->dpy, screen->root, 1, 1, depth);
<           }
<           tmp_gcp = XtNew(GCParentRec);
<           tmp_gcp->screen = screen;
<           tmp_gcp->depth = depth;
<           tmp_gcp->drawable = drawable;
<           tmp_gcp->next = GCParent;
<           GCParent = tmp_gcp;
<       }


	K. Hara 
	hara@asc.slb.com
	Schlumberger Well Services