Rob, > I've made serious progress, but I'm having trouble with two things. > > 1) The mouse - I'm not getting any WM_MOUSEMOVE messages to the app > windows. Anyone seen this before? > 2) I've broken fillspans for DRAWABLE_WINDOWs. I can fix it by drawing > into the root window hdc always, > but that's defeating the purpose - all we gain is the pretty task bar > entries :[. > > 2) I'm working on, I suspect it's a coordinate translation thing. I get > lovely background stipple but not (AFAICT solid fills).
Interesting... I'll say more when I have time to think about it (working today). > Creating a single combined clipping region using CombineRgn will allow > you to move the for (iX= ..)loop from within the while (nbox--) loop, > thus saving multiple selectClipRgn+deleteObject + bitblt calls, which > may make the native engine quite a bit faster. I *will* do this > optimisation here and elsewhere, but only after I get the fills working > for 'native' windows first. That's Alan's domain... I'll let him look into it. Harold > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]]On Behalf Of Robert Collins > Sent: Tuesday, April 09, 2002 11:48 AM > To: Cygwin-Xfree > Subject: Just a note - nativegdi engine > > > I've made serious progress, but I'm having trouble with two things. > > 1) The mouse - I'm not getting any WM_MOUSEMOVE messages to the app > windows. Anyone seen this before? > 2) I've broken fillspans for DRAWABLE_WINDOWs. I can fix it by drawing > into the root window hdc always, > but that's defeating the purpose - all we gain is the pretty task bar > entries :[. > > 2) I'm working on, I suspect it's a coordinate translation thing. I get > lovely background stipple but not (AFAICT solid fills). > > Anyway, the reason for the email: > > Harold: > I thought you might like to see the little todo: I've added. > > Creating a single combined clipping region using CombineRgn will allow > you to move the for (iX= ..)loop from within the while (nbox--) loop, > thus saving multiple selectClipRgn+deleteObject + bitblt calls, which > may make the native engine quite a bit faster. I *will* do this > optimisation here and elsewhere, but only after I get the fills working > for 'native' windows first. > > Rob > > /* TODO: create a single commbined clipping region */ > nbox = REGION_NUM_RECTS (pClip); > pbox = REGION_RECTS (pClip); > while (nbox--) > { > hrgn = CreateRectRgn (pbox->x1, pbox->y1, pbox->x2, > pbox->y2); > SelectClipRgn (pGCPriv->hdcMem, hrgn); > DeleteObject (hrgn); > hrgn = NULL; > > for (iX = fullX1; iX < fullX2; iX += > pStipple->drawable.width) > { > int width; > > if ((iX + pStipple->drawable.width) > fullX2) > width = fullX2 - iX; > else > width = pStipple->drawable.width; > > BitBlt (pGCPriv->hdcMem, > iX, fullY1, > width, 1, > hdcStipple, > 0, > fullY1 % pStipple->drawable.height, > g_copyROP[pGC->alu]); > } > > pbox++; > }
