In Xlib, How can I animate until an event occurs?

Posted by Animateur on Stack Overflow See other posts from Stack Overflow or by Animateur
Published on 2010-05-22T19:09:43Z Indexed on 2010/05/22 19:10 UTC
Read the original article Hit count: 183

Filed under:
|
|

Hi,

I've been trying to animate in a C program using Xlib and I wanna do something when an event occurs, otherwise I wanna keep animating. Here's an example code snippet of what I am doing currently:

while( 1 ) 
{
 //  If an event occurs, stop and do whatever is needed. 
 // If no event occurs, skip this if statement.
    if ( XEventsQueued( display, QueuedAlready ) > 0 ) 
 {
        XNextEvent( display, &event )
        switch ( event.type ) 
  {
   // Don't do anything
   case Expose:
    while ( event.xexpose.count != 0 )
    break;

   // Do something, when a button is pressed
   case ButtonPress:
    ...
    break;

   // Do something, when a key is pressed
   case KeyPress:
    ...
    break;
        }
 }
    animate(); // Do animation step i.e. change any drawings...
    repaint(); // Paint again with the new changes from animation...
}

So basically, I wanna keep looping if the user hasn't clicked the mouse OR pressed a key in the keyboard yet. When the user presses a key OR clicks the mouse, I wanna stop and do a specific action. The problem in my above code is that, it doesnt stop whenever I do an action. If I remove the if statement, the animation blocks until an event occurs, however I do not want this. It's a simple problem, but I'm kinda new to Xlib/animations so any help would be highly appreciated. Thanks.

© Stack Overflow or respective owner

Related posts about c

    Related posts about animation