______ ___ ___
/\ _ \ /\_ \ /\_ \
\ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ __ ___ ____
\ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ /'__`\ /\__`\ /'___/
\ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \__/\ \L\ \\/ __ \/\____`\
\ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/\_\ \ __//\____/\/\____/
\/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/\/_/\ \ \/ \/___/ \/___/
/\____/ \ \_\
Version 4.4.5 \_/__/ \/_/
A wrapper to use the Allegro library with Pascal compilers
by Ñuño Martínez, October 31th, 2015.
Allegro.pas is a wrapper to allow Pascal compilers (such as Free Pascal)
to use the Allegro library.
I wrote it to use it by myself, so I didn't included all functionality of
Allegro. Anyway, I'll fix it and complete it as I'm using it (or as other
users do). Any collaboration will be welcomed.
Changes between versions 4.4.4 y 4.4.5
* A lot of changes in "alstream" extension.
* Example exalpha runs correctly now. The problem was it used 16bit variable
instead of 32bit one.
* Some times, the demonstration game and the map editor didn't load the
datafile. Also, if the game wasn't able to load it, the message was an
EAccessViolation. Now they work properly.
* Fixed al_apply_matrix_f. Note that it looks like a bug in FreePascal!
* Fixed al_pack_fseek.
* Fixed some issues with timers on several examples. Also, default graphics
mode is windowed now in some of them.
+ New extension alGUI.
+ The example ex3d is more complex.
+ Added runtime identification of operating system, graphic modes (color
depth and resolution), and digital sound and MIDI.
+ Added al_request_refresh_rate and al_get_refresh_rate.
+ Added identifiers for several Linux and Windows drivers.
+ Added procedures for Windows and UNIX/Linux.
+ Added console switching.
+ Added another BOOLEAN type (8 bit), so now al_key can be checked as logic
value avoiding the use of "<> 0". Also, a lot of functions and procedures
use this new type, so you'll be forced to change your old code,
but it worth it: Smaller, faster and cleaner!
* Datafile type objects are constants now. This way it's faster (again!),
uses less memory and they can be used as CASE labels.
* A lot of procedures changed theyr "POINTER" parameters to "VAR" or "OUT".
This way you don't need to use the "@" operator. Also removes a lot of
"HINT" messages from compiler.
* Digital fields of joysticks are AL_BOOL now.
NOTE: I'm not able to test joysticks (my Fedora doesn't like my
arcade-style joystick :_( ) so I don't know if it actually works.
Please, let me know if you can test it.
* Some functions use now "inverse logic", that may be better:
* Some GUI procedures use ARRAY OF... instead of pointers now.
* A lot of changes on documentation. Also, it's build from the main makefile
instead of use it's own makefile.
- A lot of wrapper procedures and functions. Now the C function is called
* Procedures _al_pupixel* and _al_getpixel* rewritten to work with pointers
instead of integers, avoiding weird conversions (I still don't like to play
with pointers on Pascal anyway).
* Programmin style revised in some places.
Allegro & Allegro.pas are gift-ware. They were created by a number of people
working in cooperation, and is given to you freely as a gift. You may use,
modify, redistribute, and generally hack it about in any way you like, and
you do not have to give us anything in return. However, if you like this
product you are encouraged to thank us by making a return gift to the Allegro
community. This could be by writing an add-on package, providing a useful
bug report, making an improvement to the library, or perhaps just releasing
the sources of your program so that other people can learn from them. If you
redistribute parts of this code or make a game using it, it would be nice if
you mentioned Allegro somewhere in the credits, but you are not required to
do this. We trust you not to abuse our generosity.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.