Загрузка видео...

Не удалось загрузить видео

На главную

Hot take: retained-mode was a premature optimization. We built Membrane using rust and egui and never looked back. When our IDE was react-based we had to worry about reflows and re-renders. With immediate-mode every frame is a re-render! But it only takes 900us

89,828 просмотров • 1 год назад •via X (Twitter)

Комментарии: 10

Фото профиля Juan Campa
Juan Campa1 год назад

Retained-mode made sense when GPUs didn't exist but these days virtually every device has a powerful enough GPU to continually paint what amounts to a bunch of rectangles.

Фото профиля static_assert(false)
static_assert(false)1 год назад

Nice UI! … now let’s see the battery life

Фото профиля Juan Campa
Juan Campa1 год назад

It uses 0.9ms out of 16.6ms which translates to ~6% usage of a single CPU core! I’m okay with that. (assuming 60hz display, double for 120hz) GPU might actually be less than DOM-based apps because there’s no layer compositor. I haven’t measured though. Everything is rendered in a single pass. It does nothing while idle or backgrounded. Only when being interacted with.

Фото профиля WerWolv
WerWolv1 год назад

Had the exact same experience when making ImHex! Immediate Mode is great. I did make one optimization though. By default we render at the screen refresh rate but if the window isn't focused or no input events have happened for a few seconds, we lower it to 5 FPS

Фото профиля Patryk Zoltowski
Patryk Zoltowski1 год назад

This maybe makes sense for some desktop apps but definitely not for mobile apps or OS ui - would drain battery too much. Imagine all windows OS gui and apps written in immediate mode and battery would be dead much faster.

Фото профиля ____ _____
____ _____1 год назад

Look into lazy evaluation! You can use an immediate mode API with retained mode performance if you do it right. That's what I did on my own project at least.

Фото профиля Juan Campa
Juan Campa1 год назад

Isn’t that exactly what react does?

Фото профиля Johannes Schickling
Johannes Schickling1 год назад

Damn this UI looks awesome!

Фото профиля Patrick Smith
Patrick Smith1 год назад

React is a retained virtual DOM because the other retained system, the DOM, has a slow API. Which is then transformed by the browser into another retained layout tree, and that into a retained paint tree. It’s multiple levels of retained.

Фото профиля Johann Woelper
Johann Woelper1 год назад

I did the same with my image viewer: Never looked back. The most important part is that UI is fun again now.

Похожие видео