This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Just a note - nativegdi engine


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: cygwin-xfree-owner@cygwin.com
> [mailto:cygwin-xfree-owner@cygwin.com]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++;
>                 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]