[prev in list] [next in list] [prev in thread] [next in thread]
List: freedesktop-xorg
Subject: Re: XRender With Vsync
From: Ryan McClue <re.mcclue () protonmail ! com>
Date: 2021-09-23 1:35:04
Message-ID: HIdIxrqFrQyMBtBwVYhHVg9qEAJmCCfPL2MtbTFZFwbK1DoUXBvocSD_izFws3b-ONacaXgDGXWcyJ0msa16Yl19w2_8LNctdzACr4Si7Zw= () protonmail ! com
[Download RAW message or body]
I'm trying to use XPresent, however I seem unable to receive GenericEvent. I initialize:
int present_op = 0, event = 0, error = 0;
XPresentQueryExtension(xlib_display, &present_op, &event, &error);
XPresentSelectInput(xlib_display, xlib_window, PresentCompleteNotifyMask);
In my event loop:
XEvent xlib_event = {};
while (XPending(xlib_display) > 0)
{
XNextEvent(xlib_display, &xlib_event);
switch (xlib_event.type)
{
case GenericEvent:
{
XGenericEventCookie *cookie = (XGenericEventCookie *)&xlib_event.xcookie;
if (cookie->extension == present_op)
{
XGetEventData(xlib_display, cookie);
if (cookie->evtype == PresentCompleteNotify)
{
XRenderComposite(display, PictOpSrc, src_pict, 0, dst_pict,
0, 0, 0, 0, 0, 0,
window_width, window_height);
}
XFreeEventData(xlib_display, cookie);
} break;
}
}
I never receive any GenericEvent.
Am I doing something wrong?
--
Ryan McClue, Sydney
------- Original Message -------
On Thursday, September 23rd, 2021 at 3:33 AM, Keith Packard <keithp@keithp.com> wrote:
> Ryan McClue re.mcclue@protonmail.com writes:
>
> > I want this to sync with the monitor's VBLANK, i.e. vsync.
> >
> > How can this be achieved?
>
> Draw to an offscreen pixmap and use the Present extension.
>
> -------------------------------------------------------------
>
> -keith
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic