Re: Allegro for Euphoria
- Posted by Ray & Debbie Smith <smithr at IX.NET.AU> Nov 01, 2000
- 484 views
Hi Sid > Am I correct in assuming that because Allegro is a wrapper for DirectX (in > Windows at least), your wrapper is adding another level of "wrapperness" to > this? Will this in turn not make the whole thing a tad slower? Yes, it is another wrapper on top of DirectX and I have no idea how much slower it will be because of that. I'm hoping just a small amount. Allegro is a very mature library with hundres/thousands of users mainly still in DOS using DJGPP. > Obviously, ease of use might override this somewhat, so is it a lot easier to > use than exoticaX? I have never used exoticaX so I can't comment on it either way. I have used Allegro a little in C before and found it very easy to use. (C was the thing that a hated!!!!) My initial aim is to wrap as many of the functions required to convert the example programs that come with the Allegro distribution. This should give me a good indication of how good the Euphoria wrapper can be. > If it is then you may certainly count me in. Thats great, I'm hoping to have a demo with a few dozen functions available this weekend. So far the wrapping of the functions seems to be easy. I tested a couple of the timer routines and they seem to work ok, I was expecting the worst in this area because of the call_back routines but so far everything is coming along great ... and I'm only 1 and half days into the wrapper! The tricky past was installing Mingw, followed by Allegro, compiling Allegro, then making a DLL with Mingw that links to the Allegro DLL. But now that all of that is done, I'm hoping to actually produce something of interest. Ray Smith PS. Below is an extract from the Allegro readme file: ------------------------------ ================================== ============ Features ============ ================================== Cross-platform support for DOS, Windows, Unix, and BeOS systems. Drawing functions including putpixel, getpixel, lines, rectangles, flat shaded, gouraud shaded, and texture mapped polygons, circles, floodfill, bezier splines, patterned fills, masked, run length encoded, and compiled sprites, blitting, bitmap scaling and rotation, translucency/lighting, and text output with proportional fonts. Supports clipping, and can draw directly to the screen or to memory bitmaps of any size. DOS graphics drivers for VGA mode 13h, mode-X (twenty three tweaked VGA resolutions plus unchained 640x400 Xtended mode), and SVGA modes with 8, 15, 16, 24, and 32 bit color depths, taking full advantage of VBE 2.0 linear framebuffers and the VBE/AF hardware accelerator API if they are available. Additional video hardware support is available from the FreeBE/AF project (http://www.talula.demon.co.uk/freebe/). Windows graphics drivers using DirectX in fullscreen and windowed modes, plus routines for drawing onto GDI device contexts. Unix graphics drivers for X, DGA, fbcon, GGI, SVGAlib, VBE/AF, mode-X, and standard VGA. Hardware scrolling and triple buffering (where available), mode-X split screens, and palette manipulation. FLI/FLC animation player. Plays background MIDI music and up to 64 simultaneous sound effects, and can record sample waveforms and MIDI input. Samples can be looped (forwards, backwards, or bidirectionally), and the volume, pan, pitch, etc, can be adjusted while they are playing. The MIDI player responds to note on, note off, main volume, pan, pitch bend, and program change messages, using the General MIDI patch set and drum mappings. DOS version currently supports Adlib, SB, SB Pro, SB16, AWE32, MPU-401, ESS AudioDrive, Ensoniq Soundscape, and Windows Sound System. Windows version uses DirectSound and the system MIDI drivers. Unix version supports OSS, ESD, and ALSA sound drivers. All versions provide software wavetable MIDI playback. Easy access to the mouse, keyboard, joystick, and high resolution timer interrupts, including a vertical retrace interrupt simulator in the DOS version. Routines for reading and writing LZSS compressed files. Multi-object data files and a grabber utility. Math functions including fixed point arithmetic, lookup table trig, and 3d vector/matrix/quaternion manipulation. GUI dialog manager and file selector. -----------------