Description

Author

Requirements

Documentation

ezxdisp is a simple graphics library for 2D/3D graphical applications. (The official distribution can be found here).

Initialize/Finalize a window

[procedure](ezx-init SIZE_X SIZE_Y WINDOW_NAME)

This procedure returns a EZX object all other procedures accept.

[procedure](ezx-quit EZX)

Update the graphics in the window

[procedure](ezx-redraw EZX)

Erase the graphics in the window/layer

[procedure](ezx-wipe EZX)[procedure](ezx-wipe-layer EZX LAYER)

LAYER should be an exact integer between 0 and 8.

Get the pointer coordinates

[procedure](ezx-sensebutton EZX)

Returns the current pointer coordinates as three values: BUTTON, X and Y

[procedure](ezx-pushbutton EZX)

Block until an event is received. Returns three values: BUTTON, X and Y

The BUTTON result is 1, 2 or 3 for the first, second and third mouse button, respectively. The button number is additionally bitwise OR'd with 8 if the shift key is pressed and with 16 if the control key is pressed.

The POINTS argument should be a SRFI-4 f64vector containing the X, Y and Z coordinates of each point.

Event handling

[procedure](ezx-next-event EZX)

Removes the next event from the event queue and returns the event-specific information. If there is no event data in the event queue, this function blocks until the next event occurs. The procedure returns 5 values: the type of the event, the X- and Y-coordinates of the mouse pointer at the time of the event, the button- or keyboard-state mask and the button- or key-code of the event.

The following variables contain the event-types that may occur:

ezx:BUTTON-PRESS or ezx:BUTTON-RELEASE

ezx:KEY-PRESS or ezx:KEY-RELEASE

ezx:MOTION-NOTIFY

ezx:CLOSE

These button-codes are defined:

Code

Button

1

left

2

middle

3

right

4

wheel up

5

wheel down

State mask values that may be returned:

Mask

State

1

shift key

2

control key

4

left button

8

middle button

16

right button

For keyboard events, some special keys will return a platform independent keycode:

Home

#xff50

Left

#xff51

Up

#xff52

Right

#xff53

Down

#xff54

The result values will be undefined for events for which they are not used. This table summarizes what results are valid:

Event

Results

ezx:CLOSE

ezx:BUTTON-PRESS ezx:BUTTON-RELEASE

x, y, state, k/b

ezx:KEY-PRESS ezx:KEY-RELEASE

x, y, state, k/b

ezx:MOTION-NOTIFY

x, y, state

Miscellaneous functions

[procedure](ezx-select-layer EZX LAYER)

Focuses on the layer.

[procedure](ezx-raise-window EZX)

Raises the window.

[procedure](ezx-window-name EZX STRING)

Sets a name of the window.

[procedure](ezx-set-background EZX COLOR)

Sets the background color of the window.

Colors

[procedure](make-ezx-color R G B)

This procedure returns a "color object", which is internally encoded as a f64vector. The red, green and blue components should be between 0 and 1.

License

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA