Difference between revisions of "ZenGL"

From Lazarus wiki
Jump to navigationJump to search
 
(32 intermediate revisions by 12 users not shown)
Line 1: Line 1:
== Main ==
+
{{ZenGL}}
ZenGL - cross-platform game development library.
 
  
'''Supported OS''': GNU/Linux, Windows, MacOS X<br>
+
{{ZenGL Tutorial Index}}
'''Supported compilers''': FreePascal, Delphi<br>
+
 
'''Graphics API''': OpenGL, Direct3D 8/9<br>
+
== About ==
'''Sound API''': OpenAL, DirectSound<br>
+
 
'''License''': GNU LGPL version 3
+
'''ZenGL''' - a cross-platform game development library, designed to provide necessary functionality for rendering 2D graphics, handling input, sound output, etc.
 +
 
 +
*'''Supported OS''': GNU/Linux, Windows, macOS, iOS, Android 2.1+
 +
 
 +
*'''Supported compilers''': [[Free Pascal]], [[Delphi]]
 +
 
 +
*'''Graphics API''': [[OpenGL]], OpenGL ES 1.x, Direct3D 8/9
 +
 
 +
*'''Sound API''': OpenAL, DirectSound
 +
 
 +
*'''License''': zlib
 +
 
 +
*'''Authors''': Andrey "Andru" Kemka, Sergey "Seenkao" Shutkin
 +
 
 +
== Links ==
 +
 
 +
*[https://code.google.com/archive/p/zengl/ Download ZenGL before version 3.12]
 +
*[https://github.com/skalogryz/zengl ZenGL Mirror on GitHub]
 +
*[http://code.google.com/p/zengl/issues/list Bugtracker]
 +
---
 +
*[https://github.com/Seenkao/New-ZenGL ZenGL up to version 4.2 (version 4.2 has been archived and not tested, see version on SourceForge)]
 +
*[https://sourceforge.net/projects/new-zengl/ SourceForge - ZenGL 4.2 and higher source code]
 +
 
 +
== Tutorial ==
 +
 
 +
'''Attention!''' All examples are contained in the downloaded version of the library. At this time, this is relevant for all versions of ZenGL.
 +
These tutorials are not fully compatible with the latest version of ZenGL.
 +
 
 +
[[ZenGL Tutorial]]: This is a first tutorial for ZenGL: download, installation, source paths, compilation (statically or with so/dll/dylib) (Windows dll), and the First program 'Initialization' that comes with ZenGL.
 +
 
 +
[[ZenGL Tutorial 2]]: This is the second tutorial on how to create a font and draw text in the window.
  
 
== Features ==
 
== Features ==
  
    * Main
+
  * '''Main'''
          o can be used as so/dll/dylib or statically compiled with your application
+
    o can be used as so/dll/dylib or statically compiled with your application  
          o rendering to own or any other prepared window
+
    o rendering to own or any other prepared window
          o logging
+
    o logging
          o resource loading from files and memory
+
    o resource loading from files, memory and '''zip''' archives
          o easy way to add supporting for new resource format
+
    o multithreaded resource loading
    * Configuration of
+
    o easy way to add support for new resource format
          o antialiasing, screen resolution, refresh rate and vertical synchronization
+
  * '''Configuration of'''
          o aspect correction
+
    o antialiasing, screen resolution, refresh rate and vertical synchronization
          o title, position and size of window
+
    o aspect correction
          o cursor visibility in window space
+
    o title, position and size of window
    * Input
+
    o cursor visibility in window space
          o handling keyboard, mouse and joystick input
+
  * '''Input'''
          o handling of Unicode text input
+
    o handling of keyboard, mouse and joystick input
          o possibility to restrict the input to the Latin alphabet
+
    o handling of Unicode text input
    * Textures
+
    o possibility to restrict the input to the Latin alphabet
          o supports tga, png and jpg
+
  * '''Textures'''
          o correct work with NPOT textures
+
    o supports '''tga''', '''png''', '''jpg''' and '''pvr'''
          o control the filter parameters
+
    o correct work with NPOT textures
          o masking
+
    o control the filter parameters
          o render targets for rendering into texture
+
    o masking
    * Text
+
    o ''render targets'' for rendering into texture
          o textured Unicode-font
+
  * '''Text'''
          o rendering UTF-8 or ANSI text
+
    o textured Unicode font
          o rendering text with alignment and other options like size, color and count of symbols
+
    o rendering UTF-8 text
    * 2D-subsystem
+
    o rendering text with alignment and other options like size, color and count of symbols
          o batch render for high-speed rendering
+
  * '''2D subsystem'''
          o rendering different primitives
+
    o ''batch render'' for high-speed rendering
          o sprite engine
+
    o rendering different primitives
          o rendering static and animated sprites and tiles
+
    o sprite engine
          o rendering distortion grid
+
    o rendering static and animated sprites and tiles
          o rendering sprites with new texture coordinates(with the pixel dimension and the usual 0..1)
+
    o rendering distortion grid
          o control the blend mode and color mix mode
+
    o rendering sprites with new texture coordinates (with the pixel dimension and the usual 0..1)
          o control the color and alpha of vertices of sprites and primitives
+
    o control the blend mode and color mix mode
          o additional sprite transformations(flipping, zooming, vertices offset)
+
    o control the color and alpha of vertices of sprites and primitives
          o fast clipping of invisible sprites
+
    o additional sprite transformations (flipping, zooming, vertices offset)
          o 2D camera with ability to zoom and rotate the scene
+
    o fast clipping of invisible sprites
    * Sound
+
    o 2D camera with ability to zoom and rotate the scene
          o works through OpenAL or DirectSound? in depends on configuration or OS
+
  * '''Sound'''
          o correct work without soundcard
+
    o works through OpenAL or DirectSound; depends on configuration or OS
          o supports wav и ogg as sound samples
+
    o correct work without soundcard
          o playing audio files in separate thread
+
    o supports '''wav''' and '''ogg''' as sound sample formats
          o control the volume and playback speed
+
    o playing audio files in separate thread
          o moving sound sources in 3D space
+
    o control volume and playback speed
     * Mathematic
+
    o moving sound sources in 3D space
          o basic set of additional math functions
+
  * '''Video'''
          o triangulation functions
+
    o decoding video frames into texture
          o basic set of collision functions
+
     o supports '''theora''' codec in '''ogv''' container
    * Additional
+
  * '''Math'''
          o reading and writing ini-files
+
    o basic set of additional math functions
          o functions for work with files and memory
+
    o triangulation functions
 +
    o basic set of collision functions
 +
  * '''Additional'''
 +
    o reading and writing INI files
 +
    o functions for working with files and memory
 +
 
 +
== In the updated version ==
  
== Download ==
+
'''Attention!''' Basic information in Russian! Thank you for understanding.
 +
* Corrected compilation for android for FPC 3.2.0 and higher.
 +
* Moved the main code to correct the library
 +
* Edited work with Windows 64
 +
* Fixed minor bugs
 +
* Edited some demo versions (for FPC and iOS demos were not corrected, demo versions for Lazarus and Delphi were revised)
 +
* Introduced defines
 +
** define USE_EXIT_ESCAPE - exit. Ability not to write additional code to exit the program by pressing the Escape key
 +
** USE_INIT_HANDLE definition - for using ZenGL in an already created window (LCL/VCL)
 +
* Introduced support for MacOS Cocoa
  
[http://zengl.org/download.html Download ZenGL]
+
Documentation is maintained inside ZenGL modules in Russian and English.
[http://zengl.org/extra.html Extra Downloads]
 
  
== Links ==
+
Also see the updates in the file ''Update _ZenGL.txt'' (in Russian).
  
[http://code.google.com/p/zengl/issues/list ZenGL Bugtracker]
+
[[Category:Components]]
[http://zengl.org/ ZenGL Home]
+
[[Category:Graphics]]
 +
[[Category:Audio]]
 +
[[Category:Multimedia]]
 +
[[Category:Video]]
 +
[[Category:Game Development]]
 +
[[Category:Games]]

Latest revision as of 23:41, 30 September 2023

Deutsch (de) English (en) español (es) français (fr) русский (ru)


ZenGL | Tutorial 1 | Tutorial 2 | Tutorial 3 | Edit

About

ZenGL - a cross-platform game development library, designed to provide necessary functionality for rendering 2D graphics, handling input, sound output, etc.

  • Supported OS: GNU/Linux, Windows, macOS, iOS, Android 2.1+
  • Graphics API: OpenGL, OpenGL ES 1.x, Direct3D 8/9
  • Sound API: OpenAL, DirectSound
  • License: zlib
  • Authors: Andrey "Andru" Kemka, Sergey "Seenkao" Shutkin

Links

---

Tutorial

Attention! All examples are contained in the downloaded version of the library. At this time, this is relevant for all versions of ZenGL. These tutorials are not fully compatible with the latest version of ZenGL.

ZenGL Tutorial: This is a first tutorial for ZenGL: download, installation, source paths, compilation (statically or with so/dll/dylib) (Windows dll), and the First program 'Initialization' that comes with ZenGL.

ZenGL Tutorial 2: This is the second tutorial on how to create a font and draw text in the window.

Features

 * Main
   o can be used as so/dll/dylib or statically compiled with your application 
   o rendering to own or any other prepared window
   o logging
   o resource loading from files, memory and zip archives
   o multithreaded resource loading
   o easy way to add support for new resource format
 * Configuration of
   o antialiasing, screen resolution, refresh rate and vertical synchronization
   o aspect correction
   o title, position and size of window
   o cursor visibility in window space
 * Input
   o handling of keyboard, mouse and joystick input
   o handling of Unicode text input
   o possibility to restrict the input to the Latin alphabet
 * Textures
   o supports tga, png, jpg and pvr
   o correct work with NPOT textures
   o control the filter parameters
   o masking
   o render targets for rendering into texture
 * Text
   o textured Unicode font
   o rendering UTF-8 text
   o rendering text with alignment and other options like size, color and count of symbols
 * 2D subsystem
   o batch render for high-speed rendering
   o rendering different primitives
   o sprite engine
   o rendering static and animated sprites and tiles
   o rendering distortion grid
   o rendering sprites with new texture coordinates (with the pixel dimension and the usual 0..1)
   o control the blend mode and color mix mode
   o control the color and alpha of vertices of sprites and primitives
   o additional sprite transformations (flipping, zooming, vertices offset)
   o fast clipping of invisible sprites
   o 2D camera with ability to zoom and rotate the scene
 * Sound
   o works through OpenAL or DirectSound; depends on configuration or OS
   o correct work without soundcard
   o supports wav and ogg as sound sample formats
   o playing audio files in separate thread
   o control volume and playback speed
   o moving sound sources in 3D space
 * Video
   o decoding video frames into texture
   o supports theora codec in ogv container
 * Math
   o basic set of additional math functions
   o triangulation functions
   o basic set of collision functions
 * Additional
   o reading and writing INI files
   o functions for working with files and memory

In the updated version

Attention! Basic information in Russian! Thank you for understanding.

  • Corrected compilation for android for FPC 3.2.0 and higher.
  • Moved the main code to correct the library
  • Edited work with Windows 64
  • Fixed minor bugs
  • Edited some demo versions (for FPC and iOS demos were not corrected, demo versions for Lazarus and Delphi were revised)
  • Introduced defines
    • define USE_EXIT_ESCAPE - exit. Ability not to write additional code to exit the program by pressing the Escape key
    • USE_INIT_HANDLE definition - for using ZenGL in an already created window (LCL/VCL)
  • Introduced support for MacOS Cocoa

Documentation is maintained inside ZenGL modules in Russian and English.

Also see the updates in the file Update _ZenGL.txt (in Russian).