[imgui] округление

Tema05

Известный
Автор темы
1,471
435
Версия MoonLoader
.026-beta
Функции SameLine, SetColumnWidth, PushItemWidth округляют значения в меньшую сторону или нужно добавлять функцию math.floor?
 

Tema05

Известный
Автор темы
1,471
435
Надо округлять вручную, эти функции принимают значения типа float, а значит чувствительны к дробным значениям.
Если что я говорю про moonimgui. Когда я в функции imgui.GetWindowDrawList():AddLine задаю дробное значение линия становится мыльной. С функциями описанными выше такого нет, они всегда чётко отображаются. Может они принимаю значение а потом отбрасывают дробную часть?
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Может они принимаю значение а потом отбрасывают дробную часть?
это слишком затратная операция, учитывая что тип входных данных можно было бы в таком случае установить просто int.

это происходит из-за нахождения среднего цвета и округления его. Ты хочешь дробное кол-во пикселей, а пиксель это целая величина, ее нельзя пополам разделить, поэтому линия просто мылится на краях(FXAA выходит)
 
  • Нравится
Реакции: Tema05

ImPasha

Software Developer & System Administrator
Друг
1,788
2,141
Если что я говорю про moonimgui. Когда я в функции imgui.GetWindowDrawList():AddLine задаю дробное значение линия становится мыльной. С функциями описанными выше такого нет, они всегда чётко отображаются. Может они принимаю значение а потом отбрасывают дробную часть?
Здесь даже о причинах такого поведения можно ничего не говорить, ты всё описал в первом предложении. В Lua все числа по сути хранятся типом double, и не важно есть там плавающая точка или нет, по мнению Lua она есть везде по умолчанию. Возможно, проблема возникает из-за этой особенности.