DragonFly On-Line Manual Pages
mouse_x(3) Allegro manual mouse_x(3)
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(3), poll_mouse(3), mouse_needs_poll(3), exalpha(3),
exlights(3), exmouse(3), exshade(3), exspline(3), extrans(3)
Allegro version 4.4.2 mouse_x(3)