#c #user-interface #scope #imgui
#c #пользовательский интерфейс #область видимости #imgui
Вопрос:
До меня только что дошло, что с ImGui
if(CollapsingHeader("MyHeader"))
{
if(Button("B"))
{
// Do stuff
}
}
Рендеринг отличается от:
if(CollapsingHeader("MyHeader"))
{
}
if(Button("B"))
{
// Do stuff
}
В первом случае кнопка вложена в заголовок, во втором — вне заголовка.
Каким образом ImGui может определить, что в первой версии функция button вложена в if, а во второй — нет?
Комментарии:
1. Это не имеет ничего общего с используемой вами библиотекой, а все связано с синтаксисом языка C . Первый фрагмент вызывается
Button("B")
, только еслиCollapsingHeader("MyHeader")
возвращаетtrue
, и выполняетсяDo stuff
, только если оба возвращаютtrue
. Второй фрагмент игнорирует результатCollapsingHeader("MyHeader")
и выполняетсяDo stuff
, еслиButton("B")
возвращаетtrue
, независимо от того, чтоCollapsingHeader("MyHeader")
возвращает. Это две разные программы, выполняющие две разные вещи.2. Я идиот, вы правы. Сегодня я слишком долго программировал.