Простой графический движок, распространяемый с открытым исходным кодом с целью обучения начинающих программистов основам компьютерной графики и программирования игр.

Perfect Engine не стоит на месте и постоянно развивается. Актуальную версию движка вы всегда можете скачать на данном сайте по ссылкам, указанным ниже.

SaiLight@mail.ru   

vk.com/sailight

Bcnj{nosearch}</span

Текущая версия: 2.1, обновлена 31.05.2015...

 

Версия 2.2 создается:

ИСПРАВЛЕНО:

  1. Ошибка с определением некоторых версий OpenGL (peRender_OpenGL)

 


В версии 2.1 было:

ИСПРАВЛЕНО:

  1. Ошибка при освобождении ресурсов от загруженных программно шрифтов (ресурсы не освобождались)
  2. Ошибка с выводом полигона функцией pDrawPolyline (peRender_OpenGL)

ДОБАВЛЕНО:

  1. Совместимость функций, использующих PAnsiChar с новыми версями Delphi (peRender_Canvas)
  2. Совместимость модуля peRender_OpenGL с новыми версиями Delphi
  3. Проверка минимальной версии OpenGL (peRender_OpenGL). При отсутствии поддержки минимальной версии объект TPerfectEngine не создается
  4. Функции для работы со строками (peRoutine):
    1. Замена внутри строки одной подстроки на другую (routReplaceStr)
    2. Замена всех вхождений подстроки в строку (routReplaceAllStr)

ИЗМЕНЕНО

  1. Все типы String на AnsiString для совместимости с Delphi версий старше 2009

 


В версии 2.0 было:

ИСПРАВЛЕНО:

  1. Исчезновение объектов при масштабировании области вывода
  2. Неверная проверка попадания прямоугольника на экран
  3. Неверная проверка попадания текстуры на экран при рисовании с vIsCenter = False
  4. Неверная проверка попадания текстовой строки на экран
  5. Неверная проверка попадания окружности на экран
  6. Неверная проверка попадания многоугольника на экран
  7. Ошибка при выводе текстур с прозрачными пикселями Canvas-рендером
  8. Ошибка с полной остановкой вывода при отсутствии любого изображения (-1)
  9. Ошибка рисования при выходе за диапазон кадров в функции pDrawFrame
  10. Проблема с отключением расширенных параметров текстуры при ошибочном вызове функции рисования

ДОБАВЛЕНО:

  1. Простой Рендер OpenGL
  2. Функция обновления Handle при его потере
  3. Возможность масштабирования буфера вывода
  4. Оптимизирована работа с областью, ограничивающей перемещение камеры
  5. Функция преобразования мировых координат в экранные
  6. Функция преобразования экранных координат в мировые
  7. Функция pDrawFigure (ранее pDrawPolygon), выводящая многоугольник
  8. Функция pDrawPolyline, выводящая незамкнутую линию по массиву точек
  9. Параметр vIsClose в функции pDrawPolygon Рендера, дающий возможность выводить как Polygon (замкнутая фигура), так и Polyline (незамкнутая). Соответствующие функции Движка различны
  10. Функция fIsRectAtScreen как перегруженная с параметром типа TRect
  11. Функция fGetBoundingRect для вычисления ограничивающего полигон прямоугольника
  12. Функцияя pGetPosAtScreen (private) переименована в pApplyCamera, воизбежание путаницы с одноименной функцией (public), доступной внешнему пользователю для преобразования мировых координат в экранные
  13. Усовершенствована работа с функциями Рендера в текстуру:
    1. Функция fCreateTexture заменена на fCreateRenderTarget
    2. Добавлена функция pDrawRenderTarget, обеспечивающая правильную работу Движка при отсутствии поддержки функции Рендера в текстуру текущим Рендером
    3. Функция pClearRenderTarget вызывается из pBindRenderTarget автоматически
  14. Свойство UsedRender, отображающее имя используемого Рендера
  15. Параметр vDefaultSize в функцию pLoadFont для программной генерации шрифта
  16. Прозрачный фон для текста, выводимого Canvas-Рендером
  17. Возможность загрузки шрифта из ttf-файла по указанному пути. Не отнимает у Рендера возможности загружать шрифт любым необходимым ему способом
  18. Тип данных TAlphaColor, хранящий значения RGBA в виде одного числового значения
  19. Функции перевода цвета между различными цветовыми типами (в модуль peRoutine)
  20. Функция вычисления трансформации поворота (в модуль peRoutine)
  21. Константы, отвечающие за Режимы наложения текстур
  22. Функция для вычисления размера текстовой строки
  23. Возможность остановки таймера (TimerInterval = 0)
  24. Параметр vIsCenter для функции pTextOut

ИЗМЕНЕНО:

  1. Порядок параметров функции pSetBrushParams
  2. В функциях, принимающих цветовые значения, типы этих значений изменены с TColor на TAlphaColor
  3. В функциях, принимающих значение прозрачности отключен параметр 'Alpha'
  4. Параметр 'Angle' в Движке теперь передает углы в градусах, а не в радианах
  5. Внутренний объект Движка переименован в 'vEngine'

УТИЛИТЫ:

  1. Написана программа Perfect Palette, позволяющая удобно выбирать цвет из цветовой палитры HSL, а также, получать код цвета в формате TAlphaColor для использования в Perfect Engine
Perfect Light Design Project, 2015