Документация API плагинов
Плагины в Quark Engine представляют собой динамические библиотеки (DLL или .so), которые позволяют расширять функционал движка, создавать новые инструменты и модифицировать поведение сцены в реальном времени.
Быстрый старт
Каждый плагин должен экспортировать функцию get_plugin(). Это единственная точка входа, которую ищет движок.
#include "Plugin.h"
void on_update(PluginContext* ctx) {
// Логика каждый кадр
}
PLUGIN_EXPORT Plugin* get_plugin() {
static Plugin my_plugin = {
"Example Plugin",
"1.0.0",
nullptr, // on_load
nullptr, // on_unload
on_update,
nullptr // on_draw_ui
};
return &my_plugin;
}
Жизненный цикл
on_load
Вызывается один раз при загрузке библиотеки. Используйте для инициализации ресурсов.
on_update
Вызывается каждый кадр перед рендерингом. Доступен delta_time для вычислений.
on_draw_ui
Специальный проход для отрисовки интерфейса плагина через встроенные функции UI.
on_unload
Вызывается перед выгрузкой плагина. Обязательно освободите всю выделенную память.
Функциональные возможности
Интерфейс (UI)
Движок предоставляет Immediate-mode UI систему:
ui_begin / ui_end— создание окон.ui_button— обработка нажатий.ui_slider_float— управление параметрами.ui_color_edit3— выбор цветов.
Работа с сущностями
Полный контроль над объектами в сцене:
- Чтение:
entity_get_position,get_name. - Мутация:
entity_set_scale,set_rotation. - Управление:
scene_spawn,scene_delete.
Внимание: Не сохраняйте указатель
PluginContext между вызовами функций. Движок может пересоздавать контекст в каждом кадре для обновления данных о выделенных объектах и статистике.