Войти
ПрограммированиеФорумГрафика

Центральный GUI тред (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
(Правка: 10:02) 9:59, 17 окт. 2019

Джек Аллигатор
Если прикрутишь imgui к своей программе.
То интересно было бы увидеть FPS с imgui и без imgui.

Например на таком меню:

+ Показать


#16
10:01, 17 окт. 2019

Suslik
Это, получается, у контролов должен быть какой-то уникальный идентификатор? Чтобы система понимала, где какой?

#17
(Правка: 11:01) 10:56, 17 окт. 2019

BUzer
> Это, получается, у контролов должен быть какой-то уникальный идентификатор?
> Чтобы система понимала, где какой?
конечно. идентификатор строковый, по умолчанию — это текст объекта. например, если ты создал кнопку с надписью "OK", это и будет её именем. чтобы сделать имя уникальным, можно добавить в него ##: "OK##actually_unique_string", тогда вторая часть после ## не будет отображаться, но будет считаться частью идентификатора.

ronniko
> То интересно было бы увидеть FPS с imgui и без imgui.
рендеринг настолько простого интерфейса на imgui обычно занимает меньше измеримого времени (то есть от 0.1ms до 0.5ms).

#18
11:05, 17 окт. 2019

этих ваших gui как говна грибов после дождя уже понаделали, ввиде сингл-хидер библиотек

#19
11:26, 17 окт. 2019

Misanthrope
>ввиде сингл-хидер библиотек
Блевать тянет от этих сингл хидер...

#20
12:12, 17 окт. 2019

nes
> Блевать тянет от этих сингл хидер...
а чо, прицепил и забыл, или ты кастомизатор ?

#21
(Правка: 13:25) 13:12, 17 окт. 2019

Suslik
Я картинку не спроста привел меню.
Там возможен филлрейт.

Так что от 0.1ms до 0.5ms может и не успеть.
И как быстро imgui формирует список для отрисовки на CPU тоже вопрос интересный.

#22
(Правка: 16:54) 14:13, 17 окт. 2019

ronniko
> Я картинку не спроста привел меню.
> Там возможен филлрейт.
ну так и я эти числа как бы не из задницы достал. вот похожая сцена, вместе с моим наколеночным гигапрофайлером, время рендеринга которого тоже входит в ImGuiPass:

+ Показать

на CPU формирование команд imgui и запись их в command buffer вулкановский занимает 0.23ms, на GPU оно рендерится 0.15ms в разрешении 1080p на GTX1060.
#23
(Правка: 14:18) 14:15, 17 окт. 2019

Suslik
За тест и  конкретику спасибо.

#24
15:40, 17 окт. 2019

Читаю тред и не могу понять одного: Какая разница в подходе immdediate или persistent если
в первом (immediate) в вызове:

bool ImGui::Button(const char* caption )
{
   //Здесь добавляем в display list
}

//И где то в рендере вызывается
void    ImGui_ImplAnyGPULib_RenderDrawData(ImDrawData* draw_data)
{
  //Отрисовка display list'ов командами API
}

А в  persistent

//Есть класс PushButton с методом:
void PushButton::Draw() override
{
  //Здесь добавляем в display list
}

//И где то в рендере вызывается
void PersistentGui::Draw()
{
  ////Отрисовка display list'ов командами API
}

Где здесь разница? По хорошему ImGui можно запросто в persistent обернуть так что и не заметно будет.

#25
(Правка: 16:55) 16:55, 17 окт. 2019

Директс 10 посмотри как там гуи устроено

#26
16:57, 17 окт. 2019

TheLightWay
> Где здесь разница? По хорошему ImGui можно запросто в persistent обернуть так
> что и не заметно будет.
можно и из буханки хлеба автобус сделать, только зачем? фишка immediate mode в том, что ни память не надо выделять, ни освобождать, ни иерархию объектов выстраивать, ни делегаты не надо назначать, ни события обрабатывать.

#27
17:42, 17 окт. 2019

ronniko
> То интересно было бы увидеть FPS с imgui и без imgui.
>
>
imgui делает 1 чтение из текстуры на пиксель
производительность imgui=отображению 1 текстуры на весь экран

#28
18:26, 17 окт. 2019

Danilw
> imgui делает 1 чтение из текстуры на пиксель

что за бред? готовить текстуры всё равно нужно, одним рисованием текста можно упороться.

#29
(Правка: 18:50) 18:49, 17 окт. 2019

Объесняла Danilw :)
Все показал на одном пикселе !
Красаучег !

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика