NAME¶
mouse_x, mouse_y, mouse_z, mouse_w, mouse_b, mouse_pos - Global variable with
the mouse position/button state. Allegro game programming library.
SYNOPSIS¶
#include <allegro.h>
extern volatile int mouse_x;
extern volatile int mouse_y;
extern volatile int mouse_z;
extern volatile int mouse_w;
extern volatile int mouse_b;
extern volatile int mouse_pos;
DESCRIPTION¶
Global variables containing the current mouse position and button state.
Wherever possible these values will be updated asynchronously, but if
mouse_needs_poll() returns TRUE, you must manually call poll_mouse() to update
them with the current input state. The `mouse_x' and `mouse_y' positions are
integers ranging from zero to the bottom right corner of the screen. The
`mouse_z' and `mouse_w' variables hold the current vertical and horizontal
wheel position, when using an input driver that supports wheel mice. The
`mouse_b' variable is a bitfield indicating the state of each button: bit 0 is
the left button, bit 1 the right, and bit 2 the middle button. Additional non
standard mouse buttons might be available as higher bits in this variable.
Usage example:
if (mouse_b & 1)
printf("Left button is pressed\n");
if (!(mouse_b & 2))
printf("Right button is not pressed\n");
The `mouse_pos' variable has the current X coordinate in the upper 16 bits and
the Y in the lower 16 bits. This may be useful in tight polling loops where a
mouse interrupt could occur between your reading of the two separate
variables, since you can copy this value into a local variable with a single
instruction and then split it up at your leisure. Example:
int pos, x, y;
pos = mouse_pos;
x = pos >> 16;
y = pos & 0x0000ffff;
SEE ALSO¶
install_mouse(3alleg4),
poll_mouse(3alleg4),
mouse_needs_poll(3alleg4),
exalpha(3alleg4),
exlights(3alleg4),
exmouse(3alleg4),
exshade(3alleg4),
exspline(3alleg4),
extrans(3alleg4)