[cairo] Problems with InvalidateRect under Windows
Adrian Lopez
adrianlopezroche at gmail.com
Mon Jun 7 13:11:24 PDT 2010
Hi. I'm using Cairo 1.8.10 (precompiled from the GTK+ for Windows page). I
don't know what version of pixman, if any, it's compiled against.
My drawing code looks like this:
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HDC memDC = CreateCompatibleDC(hdc);
RECT rect;
GetClientRect(hwnd, &rect);
HBITMAP newbitmap = CreateCompatibleBitmap(hdc, rect.right - rect.left,
rect.bottom - rect.top);
HGDIOBJ oldbitmap = SelectObject(memDC, newbitmap);
cairo_surface_t *surface = cairo_win32_surface_create(memDC);
cairo_t *cr = cairo_create(surface);
/* >>> drawing commands go here <<< */
BitBlt(hdc, 0, 0, rect.right - rect.left, rect.bottom - rect.top, memDC,
0, 0, SRCCOPY);
cairo_destroy(cr);
cairo_surface_destroy(surface);
SelectObject(memDC, oldbitmap);
DeleteObject(newbitmap);
DeleteDC(memDC);
EndPaint(hwnd, &ps);
}
On Mon, Jun 7, 2010 at 4:40 AM, Tim Teulings <tim at framstag.com> wrote:
> Hello!
>
> Thanks for your response!
>
>
> > I'm using Cairo under Windows with the same approach and have not
> > experienced any problems with InvalidateRect. InvalidateRect expects
> > coordinates in what Cairo calls device space, so make sure the rectangle
> you
> > pass to InvalidateRect is defined in device space rather than user space.
> > Call cairo_user_to_device to convert from user space to device space.
>
> I already tested converting the coordinates 10, 10 using cairo
> user_to_device and device_to_user conversion methods and in both cases got
> 10,10 back, which leads me to the assumption that user and device
> coordinates are the same in my case (identity matrix). Note also that the
> same code work perfectly if I use Windows native drawing functionality and
> using cairo under X11, so it is likely a problem in the interoperation
> between Windows and cairo.
>
> Could you send me (or point me at) the code for your windows and HDC
> initialization. Possibly there is a difference between your and my code that
> triggers my problem. Can you also state which versions of cairo and pixmap
> you use?
>
> --
>
> Gruß...
> Tim
>
>
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20100607/64e61ac5/attachment.htm>
More information about the cairo
mailing list