/
Zamar_Terrier
/
TigorEngine
Обзор
Документация
Войти
/
Zamar_Terrier
/
TigorEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
includes/Core/graphicsObject.h
122 строки
6 KB
Zamar_Terrier
Офигенное обновление движка
31 июл 2026, 21:03
Верифицирован
31 июл 2026, 21:03
1682686
Код
Авторство
О чём код?
/** * @file graphicsObject.h * @brief Управление объектами рендеринга и их настройка * @details Предоставляет функции для инициализации, настройки и управления * объектами рендеринга, включая установку шейдеров, вершинных данных и * создание элементов отрисовки. Реализует механизмы подготовки объектов * к рендерингу через Vulkan пайплайны. */ #ifndef GRAPHICSOBJECT_H #define GRAPHICSOBJECT_H #include "Variabels/engine_includes.h" #include "graphicsItems.h" #include "e_blue_print.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Инициализирует объект рендеринга * @details Инициализирует структуру объекта рендеринга заданным типом, * устанавливает начальные значения и подготавливает объект к дальнейшей * настройке и использованию. * * @param graphObj Указатель на объект рендеринга для инициализации * @param type Тип объекта рендеринга (треугольники, линии, точки и т.д.) */ void GraphicsObjectInit(GraphicsObject* graphObj, uint32_t type); /** * @brief Устанавливает шейдер с униформными данными в объект рендеринга * @details Настраивает объект рендеринга для использования указанного * шейдера с униформными данными из указанного пакета. * * @param graphObj Указатель на объект рендеринга * @param shader Указатель на объект шейдера * @param pack_indx Индекс пакета униформных данных */ void GraphicsObjectSetShaderWithUniform(GraphicsObject* graphObj, ShaderObject *shader, uint32_t pack_indx); /** * @brief Устанавливает шейдер в объект рендеринга * @details Настраивает объект рендеринга для использования указанного * шейдера с заданным типом и индексом пакета. * * @param graphObj Указатель на объект рендеринга * @param shader Указатель на объект шейдера * @param pack_ind Индекс пакета шейдера * @param shader_type Тип шейдера (вершинный, фрагментный и т.д.) */ void GraphicsObjectSetShader(GraphicsObject* graphObj, ShaderObject *shader, uint32_t pack_ind, uint32_t shader_type); /** * @brief Устанавливает вершинные данные в объект рендеринга * @details Настраивает вершинные данные для объекта рендеринга с указанными * параметрами размера и индексами. * * @param graphObj Указатель на объект рендеринга * @param vert Указатель на вершинные данные * @param type_v_size Размер одного вершинного элемента в байтах * @param inx Указатель на массив индексов * @param vi Указатель на итератор вершин */ void GraphicsObjectSetVertex(GraphicsObject* graphObj, void *vert, uint32_t type_v_size, uint32_t *inx, VertextIterator *vi); /** * @brief Создаёт элементы отрисовки для объекта рендеринга * @details Создаёт все необходимые элементы отрисовки (command buffers, * pipeline caches и т.д.) для объекта рендеринга, подготавливая его к * выполнению команд рендеринга. * * @param graphObj Указатель на объект рендеринга */ void GraphicsObjectCreateDrawItems(GraphicsObject* graphObj); /** * @brief Очищает пайплайны объекта рендеринга * @details Уничтожает все Vulkan пайплайны, связанные с объектом рендеринга, * и освобождает ресурсы, не уничтожая сам объект. * * @param graphObj Указатель на объект рендеринга */ void GraphicsObjectCleanPipelines(GraphicsObject *graphObj); /** * @brief Очищает объект рендеринга * @details Очищает объект рендеринга, удаляя все созданные элементы, * но сохраняя базовую структуру для последующего переиспользования. * * @param graphObj Указатель на объект рендеринга */ void GraphicsObjectClean(GraphicsObject* graphObj); /** * @brief Уничтожает объект рендеринга * @details Полностью уничтожает объект рендеринга, освобождая все * связанные ресурсы, включая пайплайны, буферы и дескрипторы. * * @param graphObj Указатель на объект рендеринга */ void GraphicsObjectDestroy(GraphicsObject* graphObj); /** * @brief Устанавливает пути к шейдерам для объекта рендеринга * @details Настраивает пути к вершинному и фрагментному шейдерам для * последующей загрузки и компиляции. * * @param graphOb Указатель на объект рендеринга * @param vert Путь к вершинному шейдеру * @param frag Путь к фрагментному шейдеру */ void GraphicsObjectSetShadersPath(GraphicsObject* graphOb, const char* vert, const char* frag); #ifdef __cplusplus } #endif #endif // GRAPHICSOBJECT_H