ZenGL is a cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics, handling input, sound output, etc.
Product's homepage
Here are some key features of "ZenGL":
Main:
· can be used as so/dll/dylib or statically compiled with your application
· rendering to own or any other prepared window
· resource loading from files, memory and zip archives
· multithreaded resource loading
Configuration of:
· antialiasing, screen resolution, refresh rate and vertical synchronization
· aspect correction
Input:
· handling keyboard, mouse and joystick input
· handling of Unicode text input
Textures:
· supports tga, png, jpg and pvr
· correct work with NPOT textures
· render targets for rendering into texture
Text:
· textured Unicode-font
· rendering UTF-8 text
· rendering text with alignment and other options like size, color and count of symbols
2D-subsystem:
· batch render for high-speed rendering
· sprite engine
· rendering static and animated sprites and tiles
· rendering distortion grid
· control the blend mode and color mix mode
· additional sprite transformations(flipping, zooming, vertices offset)
· fast clipping of invisible sprites
· 2D camera with ability to zoom and rotate the scene
Sound:
· works through OpenAL or DirectSound, depends on configuration or OS
· supports wav and ogg as sound samples
· playing audio files in separate thread
· control the volume and playback speed
Video:
· decoding video frames into texture
· supports theora codec in ogv container
What's New in This Release: [ read full changelog ]
· [Direct3D9]now scissor_* functions use SetScissorRect and D3DRS_SCISSORTESTENABLE
· [Direct3D]fixed saving texture data when pass texture to rtarget_Add
· fixed some problems with scissor_* functions when using render targets
· fixed some range check errors in zgl_particles_2d unit
· fixed "memory leaks" in zgl_resources unit(problem with heaptrc)
· fixed range check errors zglChipmunk unit(replaced "array of" with correct alternative)
· now SND_STATE_TIME and SND_STATE_PERCENT can be used with snd_Get for sounds