ОГРОМНОЕ обновление ImGui сломало всё. Часть 1 // Renderer 2025 // Hazel Engine Stream (04.06.2025)
Автор: Cherno Unplugged
Загружено: 2025-06-20
Просмотров: 1793
Смотреть прямую трансляцию ► / thecherno
Discord-канал для прямых трансляций ► / discord
00:00 - Открытие и цели трансляции
Вступительное слово от Cherno на трансляции - Сессия разработки 4 июня
Цель: завершить проект рендерера к концу июня, проведя несколько трансляций
Обзор крупного обновления ImGui с предыдущей трансляции с форка 2,5-летней давности до последней стыковочной ветки
Успешное объединение пользовательских функций и исправление критических изменений API
02:30 - Проблемы с конфликтом идентификаторов ImGui
Новые инструменты отладки ImGui выявляют ошибки «два видимых элемента с конфликтующими идентификаторами»
Проблема затрагивает иерархию сцен и панели браузера контента с древовидной структурой узлов
Исследование поведения кнопки, требующей тот же идентификатор, что и у узлов дерева для корректной связи
Ошибка возникает, в частности, при наведении курсора на элементы иерархии
07:30 - Устранение неполадок с графическим драйвером Краткое содержание
Проблемы с предыдущей трансляцией: Vulkan приводил к полному зависанию компьютера при перетаскивании панелей
Проблемы с мерцанием панелей при закреплении окон в главном интерфейсе
Решение: Драйверы Nvidia Studio обновлены до последних версий Game Ready
Исправлены проблемы с зависанием и визуальными сбоями
11:00 - Подробный анализ кода поведения кнопок
Анализ функции узла отрисовки сущности и её использования поведения кнопок с общими идентификаторами
Исследование необходимости дублирования идентификаторов для корректного взаимодействия с пользовательским интерфейсом
Исследование внутренней системы обнаружения конфликтов идентификаторов ImGui
Обнаружение ItemFlags_AllowDuplicateId как потенциального решения
19:00 - Реализация исправления
PushItemFlag с AllowDuplicateId применены к панели иерархии сцен
Успешно устранены ошибки конфликта идентификаторов с сохранением функциональности
Расширено то же исправление для иерархии каталогов панели обозревателя контента
Подтверждено, что обе панели теперь работают без предупреждений ImGui
23:00 - Анализ ошибки перемещения панели
Критическая проблема: Первая панель области просмотра становится полностью неподвижной
Странное поведение: Панель прикреплена к окну области просмотра, её невозможно закрепить в любом месте
Необычное изменение размера: Изменение размера вертикального края влияет на оба измерения одновременно
Проблема сохраняется независимо от того, какая панель «первая»
26:00 - Проблема с обнаружением щелчков в строке меню
Строка меню отображается, но полностью не реагирует на щелчки
Проблема возникла после обновления ImGui, с новым рендерером всё работало нормально
Попытка отладки с временными кнопками для проверки обнаружения щелчков
Исследование поведения кнопок и кода выбора пунктов меню
28:00 - Обсуждение философии разработки
Вопрос аудитории о шаблонах панелей пользовательского интерфейса и API для разработчиков
Философия Cherno: Прямая модификация C++ вместо сложных систем плагинов
Преимущества: Полный контроль, отсутствие затрат на обслуживание, более быстрая итерация, чем в Unity/Unreal
Видение: Бесплатный исполняемый файл в виде «облегчённой» версии, доступ к исходному коду как премиум-доступ к разработчику
31:00 - Подход к настройке движка
Сравнение с Unity/Unreal: Hazel разработан для удобной модификации C++
Цель: Разработчики могут легко создавать ответвления и настраивать движок под свой рабочий процесс
Лёгкая компиляция обеспечивает разумное время итераций для модификации движка
Акцент на расширение возможностей разработчиков за счёт доступа к исходному коду, а не написания скриптов API
35:00 - Отладка панели меню продолжается
Исследование поведения выбираемых элементов и кнопок в системе меню
Анализ причин, по которым пункты меню не регистрируют события нажатия
Трансляция завершена, проблема со строкой меню всё ещё исследуется
Краткое содержание трансляции от Клода Соннета 4
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: