Menu

Eng

Serge

ZenGL - it is a library that creates window context for working with OpenGL on different platforms. With its help you can create cross-platform games and programs.

Important to know! You don't need to know OpenGL to use this library. The ZenGL library provides many library features for any programmer who knows Pascal and does not know OpenGL.

Development environment

Lazarus/FreePascal
Delphi

Supported platforms for Lazarus/FreePascal:

Windows 32/64
Linux 32/64
Android - ARM32 (v5, v6, v7a)/ARM64(v8a)/x86/x86_64
MacOS Cocoa - beta version
Portable gaming computers (Steam Deck, Rog Ally, Ayaneo and others based on Linux or Windows).

Supported Platforms for Delphi:

Windows 32/64 (Windows 64 only with dynamic libraries, although a certain part can be run statically)

See the changes in the Update_ZenGL.txt file. Sorry, the information is only in Russian. :(

There were no ways to work with 3D initially. You will need to do this manually. The 19th demo has been added, which shows how this can be done. This demo is designed only for Lazarus.
Video where I disassembled this demo. (Rus)

Features:

Main

  • can be used as so/dll/dylib or statically compiled with your application (in this version only static compilation)
  • rendering to own or any other prepared window
  • logging
  • resource loading from files, memory and zip archives
  • multithreaded resource loading
  • easy way to add support for new resource format

Configuration of

  • antialiasing, screen resolution, refresh rate and vertical synchronization
  • aspect correction
  • title, position and size of window
  • cursor visibility in window space

Input

  • handling of keyboard, mouse, joystick and touchscreen input for mobile devices
  • handling of Unicode text input
  • possibility to restrict the input to the Latin alphabet

Textures

  • supports tga, png, jpg and pvr
  • correct work with NPOT textures
  • control the filter parameters
  • masking
  • 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
  • rendering different primitives
  • sprite engine
  • rendering static and animated sprites and tiles
  • rendering distortion grid
  • rendering sprites with new texture coordinates (with the pixel dimension and the usual 0..1)
  • control the blend mode and color mix mode
  • control the color and alpha of vertices of sprites and primitives
  • 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
  • correct work without soundcard
  • supports wav and ogg as sound sample formats
  • playing audio files in separate thread
  • control volume and playback speed
  • moving sound sources in 3D space

Video

  • decoding video frames into texture
  • supports theora codec in ogv container

Math

  • basic set of additional math functions
  • triangulation functions
  • basic set of collision functions

Additional

  • reading and writing INI files
  • functions for working with files and memory

Also added an internal engine running on ZenGL - Green Engine


Contact: M12Mirrel@yandex.ru
You can also contact me on the Lazarus forums and express your wishes and shortcomings.

You can support the project through VTB: 2200 2414 1473 2952


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.