kaleb@mars.jpl.nasa.gov (Kaleb Keithley) (01/18/90)
Not long before R4, I was successful in getting the Xsun to work with two CG2 color frame buffers. I achieved this by setting up additional frame buffer, visual, and depth structures for each screen, and changed the ddx code to reference the appropriate structure. Now I am trying to do the same for the R4 Xsun server. Like R3, I have added the additional frame buffer, visual, and depth structures. The problem I am experiencing has to do with the devPrivates which seem to be new to R4. It is not intuitively obvious (to me anyway) just how these are being used. As written, the various PrivateIndexes in mi, mfb, and cfb get initialized when AddScreen is called for screen zero, during which it appears that privates get added to screen zeros devPrivate. However when AddScreen gets called for screen one, some (defensive?) checking prevents the allocation of privates for screen one and the matching initialization of the PrivateIndexes. Some questions come to mind: Should ddx code ever call ResetWindowPrivates? ResetGCPrivates? Why is ResetScreenPrivates static? Is there some text documentation of how privates are used in the server? In AllocateScreenPrivates, a call is made to xrealloc for devPrivate or DevPrivates (don't remember which, and my news machine is not connected to my R4 machine, so I can't check), with winPrivateCount as a parameter. Since this is done before any window privates are allocated, what is this supposed to be doing? Can anyone offer any tips or suggestions about where to go from here? Thanks in advance. Chewey, get us outta here! kaleb@mars.jpl.nasa.gov (818)354-8771 Kaleb Keithley