Internal-wm/rootless observations

Alexander Gottwald
Wed Dec 1 14:53:00 GMT 2004

On Wed, 1 Dec 2004, Kensuke Matsuzaki wrote:

> Could you give me diff? I want to try that.

Actually not. Most changes where done in gdb with "set var ...." ;)

let's do it from memory: 

in winMWExtWMStartDrawing:

	  hdcNew = CreateCompatibleDC (pRLWinPriv->hdcScreen);
	  /* Describe shadow bitmap to be created */
	  pRLWinPriv->pbmihShadow->biWidth = pRLWinPriv->pFrame->width;//pRLWinPriv->dwWidth;
	  pRLWinPriv->pbmihShadow->biHeight = -pRLWinPriv->pFrame->height;//pRLWinPriv->dwHeight;
+	  pRLWinPriv->pbmihShadow->biBitCount = 32;
	  /* Create a DI shadow bitmap with a bit pointer */

in winAdjust

- /* Query GDI for current display depth */
- dwBPP = GetDeviceCaps (hdc, BITSPIXEL);
+ /* Set the colordepth to 32 to please rootless code */
+ dwBPP = 32;

  /* GDI cannot change the screen depth */

This is in no way safe and should be wrapped with a check for -internalwm but
safe for testing

> I think we have no reason to use winshadgdi.c in mwextwm mode and some
> code in winshadgdi.c don't match mwextwm. I have to write winshadrootless?

I don't think so. We have way too much code anyway i think. 5 different engines, to code 
for handling windowed, pseudorootless and rootless code. If we find a safe way to blit 
from 32bit planes to 16bit planes then this will be quite useful in shadow GDI mode 
too. Sebastian Haby told me the 8bit pseudocolor patch he made has similar code 
(blitting from a 8bit plane to 32/24/16 bit). I'll have to check the mail archives 
at home for this code

--           ICQ: 126018723

More information about the Cygwin-xfree mailing list