Difference between revisions of "ZenGL/ru"

From Free Pascal wiki
Jump to navigationJump to search
m (Fix typo)
Line 15: Line 15:
  
 
'''Лицензия''': [http://zengl.org/license.html zlib]
 
'''Лицензия''': [http://zengl.org/license.html zlib]
 +
 +
В данное время библиотека дорабатывается.
  
 
== Ссылки ==
 
== Ссылки ==
Line 24: Line 26:
 
*[http://zengl.org/forum Официальный Форум]
 
*[http://zengl.org/forum Официальный Форум]
 
*[http://code.google.com/p/zengl/issues/list Bugtracker]
 
*[http://code.google.com/p/zengl/issues/list Bugtracker]
 +
*[https://github.com/Seenkao/New-ZenGL Новая версия]
  
 
== Обучающие примеры ==
 
== Обучающие примеры ==
 +
 +
'''Внимание!''' Все примеры содержатся в скачиваемой версии библиотеки. На данное время это актуально для всех версий ZenGL.
  
 
[[ZenGL Tutorial]]: Первый пример для ZenGL знакомит с самой библиотекой. Рассказывается о том как скачать, установить библиотеку. Настроить компилятор (среду разработки) для компиляции проектов. Сборка проекта как статической так динамической библиотекой ZenGL. А так же рассматривается одна и программ-примеров 'Initialization', которая входит в библиотеку ZenGL.
 
[[ZenGL Tutorial]]: Первый пример для ZenGL знакомит с самой библиотекой. Рассказывается о том как скачать, установить библиотеку. Настроить компилятор (среду разработки) для компиляции проектов. Сборка проекта как статической так динамической библиотекой ZenGL. А так же рассматривается одна и программ-примеров 'Initialization', которая входит в библиотеку ZenGL.
Line 34: Line 39:
  
 
*Основные
 
*Основные
** библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека
+
** библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека (в обновлённой версии только статическая компиляция)
** вывод графики в окно, созданное самой библиотекой, так и внешним кодом
+
** рендеринг как в собственное, так и в заранее подготовленное окно (LCL, VCL)
 
** журнал событий  
 
** журнал событий  
 
** загрузка ресурсов из файлов, памяти и '''zip''' архивов
 
** загрузка ресурсов из файлов, памяти и '''zip''' архивов
 
** многопоточная загрузка ресурсов
 
** многопоточная загрузка ресурсов
** лёгки способ добавления новых форматов ресурсов
+
** возможность расширить количество поддерживаемых форматов данных
 
* Возможности настройки графики
 
* Возможности настройки графики
 
** Сглаживание (antialiasing), разрешение и частоту обновления экрана (screen resolution, refresh rate) а так же контролировать вертикальную синхронизацию (v-sync)
 
** Сглаживание (antialiasing), разрешение и частоту обновления экрана (screen resolution, refresh rate) а так же контролировать вертикальную синхронизацию (v-sync)
** aspect correction
+
** коррекция пропорций выводимого изображения относительно заданных размеров
** изменять заголовок, позицию и размер окна  
+
** управление заголовком и размером окна, наличие автоматического центрирования
** коcursor visibility in window space
+
** управление видимостью курсора в пределах окна
 
* Устройства ввода
 
* Устройства ввода
** чтение данных от клавиатуры, мышки и джойстика
+
** обработка событий клавиатуры, мыши и джойстика
 
** ввод Unicode символов
 
** ввод Unicode символов
** возможность ограничить ввод только латинской раскладки
+
** возможность ограничить ввод только латинской раскладкой
 
*Вывод Текстур
 
*Вывод Текстур
 
** поддержка форматов '''tga''', '''png''', '''jpg''' и '''pvr'''
 
** поддержка форматов '''tga''', '''png''', '''jpg''' и '''pvr'''
 
** поддержка текстур размером не кратным 2 (Non Power Of Two)
 
** поддержка текстур размером не кратным 2 (Non Power Of Two)
** control the filter parameters
+
** управление параметрами фильтрации
** masking
+
** работа с масками
 
** ''render targets'' отрисовка в текстуры
 
** ''render targets'' отрисовка в текстуры
 
*Вывод текста
 
*Вывод текста
 
** реализация Unicode шрифты на основе текстур
 
** реализация Unicode шрифты на основе текстур
 
** вывод UTF-8 текста
 
** вывод UTF-8 текста
** rendering text with alignment and other options like size, color and count of symbols
+
** управление отступами, размером, цветом вершин и количеством символов в тексте
*2D подсистему
+
*2D подсистема
** ''batch render'' for high-speed rendering
+
** ''batch render'' для повышения производительности рендеринга
** отрисовка различных видов примитивов
+
** рендеринг основных видов примитивов
 
** спрайтовый движок
 
** спрайтовый движок
 
** вывод статических и анимированных спрайтов и тайлов
 
** вывод статических и анимированных спрайтов и тайлов
** rendering distortion grid
+
** рендеринг трансформирующейся сетки
** rendering sprites with new texture coordinates (with the pixel dimension and the usual 0..1)
+
** рендеринг спрайтов с ручным указанием текстурных координат(с пиксельной размерностью и обычным 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
+
** наличие 2D камеры с возможностью увеличения и поворота содержимого сцены
 
* Звук
 
* Звук
 
** вывод звука с помощью библиотек OpenAL или DirectSound (зависит от настроек проекта и операционной системы)
 
** вывод звука с помощью библиотек OpenAL или DirectSound (зависит от настроек проекта и операционной системы)
 
** возможность правильной работы, даже при отсутствии звуковой карты  
 
** возможность правильной работы, даже при отсутствии звуковой карты  
 
** поддержка форматов '''wav''' и 'ogg'''
 
** поддержка форматов '''wav''' и 'ogg'''
** воспроизведение файлов во вспомогательных потоках
+
** потоковое воспроизведение аудио-файлов
 
** контроль за громкостью звука и темпом воспроизведения
 
** контроль за громкостью звука и темпом воспроизведения
** перемещение источников звука в 3D пространстве
+
** трехмерное позиционирование источника звука в пространстве
 
* Видео
 
* Видео
 
** декодирование видео заставок в текстуры  
 
** декодирование видео заставок в текстуры  
 
** поддержка кодека '''theora''' в формате '''ogv'''  
 
** поддержка кодека '''theora''' в формате '''ogv'''  
 
* Математический вычисление  
 
* Математический вычисление  
** дополнительные математические функции
+
** базовый набор вспомогательных мат. функций
** тригонометрические функции
+
** необходимый набор функций для триангуляции
 
** простейшие функции проверки столкновений  
 
** простейшие функции проверки столкновений  
* И ещё!
+
* Доплнительно
 
** чтение и запись INI файлов
 
** чтение и запись INI файлов
 
** дополнительные функции для работы с файлами и памятью
 
** дополнительные функции для работы с файлами и памятью
 +
 +
== В обновлённой версии ==
 +
 +
*Корректирована компиляция под android под версию FPC 3.2.0 и выше.
 +
*Перебран основной код для коррекции работы библиотеки
 +
*Редактирована работа с Windows 64
 +
*Исправлены мелкие баги
 +
*Редактированы некоторые демо-версии (для FPC и iOS демки не правились, перебраны демо-версии для Lazarus и Delphi)
 +
*Введены дефайны
 +
** дефайн USE_EXIT_ESCAPE - выход. Возможность не писать дополнительный код для выхода из программы по нажатию клавиши Escape
 +
** дефайн USE_INIT_HANDLE - для использования ZenGL в уже созданное окно (LCL, VCL)
  
 
{{AutoCategory}}
 
{{AutoCategory}}

Revision as of 02:04, 31 October 2020

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


ZenGL/ru | Tutorial 1 | Tutorial 2 | Tutorial 3 | Edit


ZenGL - кросс-платформенная библиотека, разработанная, чтобы обеспечить необходимый функционал для отрисовки двухмерных игр, обработки устройств ввода, воспроизведение звука и музыки.

Поддерживаемые ОС: GNU/Linux(32/64), Windows(32/64), macOS(Carbon), iOS, Android 2.1+

Компиляторы: Free Pascal, Delphi

Графические API: OpenGL, OpenGL ES 1.x, Direct3D 8/9

Аудио API: OpenAL, DirectSound

Лицензия: zlib

В данное время библиотека дорабатывается.

Ссылки

Обучающие примеры

Внимание! Все примеры содержатся в скачиваемой версии библиотеки. На данное время это актуально для всех версий ZenGL.

ZenGL Tutorial: Первый пример для ZenGL знакомит с самой библиотекой. Рассказывается о том как скачать, установить библиотеку. Настроить компилятор (среду разработки) для компиляции проектов. Сборка проекта как статической так динамической библиотекой ZenGL. А так же рассматривается одна и программ-примеров 'Initialization', которая входит в библиотеку ZenGL.

ZenGL Tutorial 2: Второй пример рассказывает о том, как создавать шрифты и выводить текст на экран.

Возможности библиотеки

  • Основные
    • библиотека может быть скомпилирована статически к проекту, или использоваться, как динамическая библиотека (в обновлённой версии только статическая компиляция)
    • рендеринг как в собственное, так и в заранее подготовленное окно (LCL, VCL)
    • журнал событий
    • загрузка ресурсов из файлов, памяти и zip архивов
    • многопоточная загрузка ресурсов
    • возможность расширить количество поддерживаемых форматов данных
  • Возможности настройки графики
    • Сглаживание (antialiasing), разрешение и частоту обновления экрана (screen resolution, refresh rate) а так же контролировать вертикальную синхронизацию (v-sync)
    • коррекция пропорций выводимого изображения относительно заданных размеров
    • управление заголовком и размером окна, наличие автоматического центрирования
    • управление видимостью курсора в пределах окна
  • Устройства ввода
    • обработка событий клавиатуры, мыши и джойстика
    • ввод Unicode символов
    • возможность ограничить ввод только латинской раскладкой
  • Вывод Текстур
    • поддержка форматов tga, png, jpg и pvr
    • поддержка текстур размером не кратным 2 (Non Power Of Two)
    • управление параметрами фильтрации
    • работа с масками
    • render targets отрисовка в текстуры
  • Вывод текста
    • реализация Unicode шрифты на основе текстур
    • вывод UTF-8 текста
    • управление отступами, размером, цветом вершин и количеством символов в тексте
  • 2D подсистема
    • batch render для повышения производительности рендеринга
    • рендеринг основных видов примитивов
    • спрайтовый движок
    • вывод статических и анимированных спрайтов и тайлов
    • рендеринг трансформирующейся сетки
    • рендеринг спрайтов с ручным указанием текстурных координат(с пиксельной размерностью и обычным 0..1)
    • управление режимом блендинга и смешивания цвета
    • возможность назначения цвета и альфы отдельным вершинам спрайтов и примитивов
    • дополнительные трансформации спрайтов(зеркальное отражения, увеличение, смещение вершин)
    • быстрое отсечение спрайтов выходящих за пределы видимости
    • наличие 2D камеры с возможностью увеличения и поворота содержимого сцены
  • Звук
    • вывод звука с помощью библиотек OpenAL или DirectSound (зависит от настроек проекта и операционной системы)
    • возможность правильной работы, даже при отсутствии звуковой карты
    • поддержка форматов wav и 'ogg
    • потоковое воспроизведение аудио-файлов
    • контроль за громкостью звука и темпом воспроизведения
    • трехмерное позиционирование источника звука в пространстве
  • Видео
    • декодирование видео заставок в текстуры
    • поддержка кодека theora в формате ogv
  • Математический вычисление
    • базовый набор вспомогательных мат. функций
    • необходимый набор функций для триангуляции
    • простейшие функции проверки столкновений
  • Доплнительно
    • чтение и запись INI файлов
    • дополнительные функции для работы с файлами и памятью

В обновлённой версии

  • Корректирована компиляция под android под версию FPC 3.2.0 и выше.
  • Перебран основной код для коррекции работы библиотеки
  • Редактирована работа с Windows 64
  • Исправлены мелкие баги
  • Редактированы некоторые демо-версии (для FPC и iOS демки не правились, перебраны демо-версии для Lazarus и Delphi)
  • Введены дефайны
    • дефайн USE_EXIT_ESCAPE - выход. Возможность не писать дополнительный код для выхода из программы по нажатию клавиши Escape
    • дефайн USE_INIT_HANDLE - для использования ZenGL в уже созданное окно (LCL, VCL)