111 lines
2.9 KiB
Groff
111 lines
2.9 KiB
Groff
.TH MiniLibX 3 "September 19, 2002"
|
|
.SH NAME
|
|
MiniLibX - Simple Window Interface Library for students
|
|
.SH SYNOPSYS
|
|
#include <mlx.h>
|
|
|
|
.nf
|
|
.I void *
|
|
.fi
|
|
.B mlx_init
|
|
();
|
|
|
|
.SH DESCRIPTION
|
|
MiniLibX is an easy way to create graphical software,
|
|
without any X-Window/X11 programming knowledge under Unix/Linux, nor
|
|
any AppKit programming knowledge under MacOS. It provides
|
|
simple window creation, a drawing tool, image and basic events
|
|
management.
|
|
|
|
.SH Unix/Linux: X-WINDOW CONCEPT
|
|
|
|
X-Window is a network-oriented graphical system for Unix.
|
|
It is based on two main parts:
|
|
.br
|
|
On one side, your software wants to draw something on the screen and/or
|
|
get keyboard & mouse entries.
|
|
.br
|
|
On the other side, the X-Server manages the screen, keyboard and mouse
|
|
(It is often refered to as a "display").
|
|
.br
|
|
A network connection must be established between these two entities to send
|
|
drawing orders (from the software to the X-Server), and keyboard/mouse
|
|
events (from the X-Server to the software).
|
|
.br
|
|
Nowadays, most of the time, both run on the same computer.
|
|
|
|
.SH MacOS: WINDOW SERVER AND GPU
|
|
|
|
Your software interacts directly with the Window server who handles the
|
|
cohabitation on the screen with other software and the event system,
|
|
and interacts with the GPU to handle all drawing stuff.
|
|
|
|
.SH INCLUDE FILE
|
|
.B mlx.h
|
|
should be included for a correct use of the MiniLibX API.
|
|
It only contains function prototypes, no structure is needed.
|
|
|
|
.SH LIBRARY FUNCTIONS
|
|
.P
|
|
First of all, you need to initialize the connection
|
|
between your software and the display.
|
|
Once this connection is established, you'll be able to
|
|
use other MiniLibX functions to send and receive the messages from
|
|
the display, like "I want to draw a yellow pixel in this window" or
|
|
"did the user hit a key?".
|
|
.P
|
|
The
|
|
.B mlx_init
|
|
function will create this connection. No parameters are needed, ant it will
|
|
return a
|
|
.I "void *"
|
|
identifier, used for further calls to the library routines.
|
|
.P
|
|
All other MiniLibX functions are described in the following man pages:
|
|
|
|
.TP 20
|
|
.B mlx_new_window
|
|
: manage windows
|
|
.TP 20
|
|
.B mlx_pixel_put
|
|
: draw inside window
|
|
.TP 20
|
|
.B mlx_new_image
|
|
: manipulate images
|
|
.TP 20
|
|
.B mlx_loop
|
|
: handle keyboard or mouse events
|
|
|
|
.SH LINKING MiniLibX
|
|
To use MiniLibX functions, you may need to link
|
|
your software with several libraries, including the MiniLibX library itself.
|
|
On Unix/Linux, simply add the following arguments at linking time:
|
|
|
|
.B -lmlx -lXext -lX11
|
|
|
|
On MacOS, the dynamic Metal library will find on its own the missing components:
|
|
|
|
.B -lmlx
|
|
|
|
and still on MacOS, the static OpenGL version will need:
|
|
|
|
.B -lmlx -framework OpenGL -framework AppKit -lz
|
|
|
|
You may also need to specify the path to these libraries, using
|
|
the
|
|
.B -L
|
|
flag.
|
|
|
|
|
|
.SH RETURN VALUES
|
|
If
|
|
.B mlx_init()
|
|
fails to set up the connection to the display, it will return NULL, otherwise
|
|
a non-null pointer is returned as a connection identifier.
|
|
|
|
.SH SEE ALSO
|
|
mlx_new_window(3), mlx_pixel_put(3), mlx_new_image(3), mlx_loop(3)
|
|
|
|
.SH AUTHOR
|
|
Copyright ol@ - 2002-2019 - Olivier Crouzet
|