OSMesa software OpenGL driver

This one is a little tricky, there are both a device driver 'nfosmesa.xdd' required for MiNT, and a library 'osmesa.ldg' for Atari applications. LDG (14) must be installed for the library to be loaded/usable by applications. OSMesa is an OpenGL offscreen renderer, i.e. it renders images using host CPU in RAM. The result is then passed to the Atari application for final display.

For OSMesa to operate properly, you must have OSMesa host's libraries compiled and installed, see Mesa (16) project page for more informations. Then, fill the [NFOSMESA] section of the ARAnyM configuration file:

[NFOSMESA]
ChannelSize = 0
LibGL = /path/to/libGL.so
LibOSMesa = /path/to/libOSMesa.so

Channel size is the number of bits per color channel. Default is 8 (0 in config file), it means that one colour component (R,G,B,A) will use 8 bits. Other values are 16 and 32. It means a single pixel could use 8 or 16 bytes to be stored.

If you have ARAnyM compiled with OpenGL support, and this implementation is not coming from Mesa, then the libraries will conflict. For example if you have installed drivers from your video card's vendor, then you can't use both with ARAnyM (i.e. libGL for your card and libGL from Mesa).

However, if you have ARAnyM compiled with OpenGL support, you can use OSMesa if you use the 16 or 32 bits per channel version (libOSMesa16 or libOSMesa32), because they embed Mesa's libGL implementation, so no conflict in this case.

Let me do a list of what can/can not be used:

ARAnyM compiled
with OpenGL
ARAnyM compiled
with NFOSMesa
NFOSMesa availability
for Atari applications
No No None
Yes No None
No Yes All libOSMesa implementations
Yes Yes Only with libOSMesa16 and libOSMesa32

If you use libOSMesa16 or libOSMesa32, you must put the corresponding value in 'ChannelSize' (i.e. 16 or 32), and LibGL= will not be used. If you use default libOSMesa, set ChannelSize to 0, and libGL= will be used. In all cases, you must set correctly libOSMesa=.