Search
Tuesday, 12th of January 2021, 2:15:08 UTC
12:06:21
Shinmera
Fixed the Trial problem where dymanic insertions (compile-into-pass) would not properly reinstate the order.
12:06:41
Shinmera
As a side effect there's now the functions ENTER* and LEAVE* that should be used for dynamic insertions.
12:07:07
Shinmera
ENTER and LEAVE from before should only be used for things that don't require rendering, or during a static load block.
12:18:25
selwyn
what do you mean by 'dynamic insertion'
12:18:34
Shinmera
when an entity is added dynamically
12:18:44
Shinmera
while the game is running
12:18:59
Shinmera
as opposed to statically during a dedicated load zone
12:20:36
selwyn
look forward to using the new functions
12:21:16
Shinmera
I've also been thinking about ripping out Flare and replacing the indexed-set thingy with something better.
12:21:25
Shinmera
Not quite sure yet how that would work, though.
12:26:02
Shinmera
Maybe something like a flat vector with a deletion counter and compaction only once the counter gets too high.
12:26:25
Shinmera
or splitting into chunks of limited size so the maximum work per deletion is always bounded.
12:26:51
Shinmera
Could probably also get away with an unsorted table iteration for a lot of things.\
12:31:00
selwyn
why would you make such a change? for speed?
12:38:40
Shinmera
Well, 1) flare is barely used so it's a whole system and complexity that's kinda shitty to have around
12:38:56
Shinmera
2) yes, speed. The indexed set uses a doubly-linked list, which is not great for what you do most with it: iteration
12:50:44
selwyn
hopefully avoiding wasteful re-renders will help the situation, but alloy is weirdly slow
12:51:07
selwyn
when i put a lot of text in a textbox, the frame rate goes up by 6x
12:51:51
Shinmera
text is reuploaded to the gpu every frame because of the allocation problems I talked about
12:51:59
Shinmera
so all text shares the same vertex buffer.
12:52:10
Shinmera
the more text, the slower it goes.
12:52:51
Shinmera
if we can allocate a buffer for every text that problem goes away entirely, but then we have to know when and how to deallocate.
12:54:59
selwyn
i am slowly getting used to alloy
12:55:52
selwyn
is the focus invariant you mentioned that only one thing can have strong focus in the tree?
12:56:44
Shinmera
The invariant is more complex.
12:57:57
Shinmera
At any time there's always exactly one thing that has strong focus. Additionally, an element can only be weakly focused if either its parent is strongly focused, or a child in the tree is strongly focused.
12:58:17
Shinmera
I had a case where an element should have had strong focus, and in fact it was still set as the focused element, but its focus value was nil.
12:58:34
Shinmera
Couldn't take the time to debug how.
13:22:31
Shinmera
and we don't even have stuff like input methods or screen readers yet :)
13:23:52
selwyn
well, i suppose it's somewhat acceptable to postpone that in a ui toolkit that's meant for games
13:24:09
Shinmera
just like proper text layouting :y
Tuesday, 12th of January 2021, 14:15:08 UTC