15:14 < bridge> [teeworlds] I actually don't even know how I'll handle selection over linebreaks :/ 15:16 < bridge> [teeworlds] for the copy-paste PR? 15:16 < bridge> [teeworlds] yeah 15:16 < bridge> [teeworlds] any fundamental problem? 15:16 < bridge> [teeworlds] Well I was rendering it in 3 pieces, the part before the selection, the selection, the part after the selection 15:17 < bridge> [teeworlds] That obviously won't work if the parts are not inline 15:17 < bridge> [teeworlds] how does it behave atm? 15:17 < bridge> [teeworlds] I'm building it right now to check 15:22 < bridge> [teeworlds] hm it selects on the wrong line, but even worse the rendering for multiline is horrible 15:22 < bridge> [teeworlds] the cursor moving around reflows the text 15:23 < bridge> [teeworlds] hm I wonder if my patch breaks that 15:25 < bridge> [teeworlds] nope it's awful in master 15:25 < bridge> [teeworlds] oh I bet it's awful only for a long uninterrupted string because it's looking for a wordstop to break 15:34 < bridge> [teeworlds] You know what would be great? A way to specify the background color for a cursor 15:36 < bridge> [teeworlds] I have no way to know where the last line ended :/ 15:36 < bridge> [teeworlds] Poll: Do I hack in the ending of last line into the cursor or background color? 15:37 < bridge> [teeworlds] Oh or bonus option, `CTextRender::TextBackground()` 15:38 < bridge> [teeworlds] oh boy that looks dirty 15:38 < bridge> [teeworlds] but `CTextRender` is already a pile of dirt I guess :D 15:39 < bridge> [teeworlds] Tbh selections are supposed to be an overlay not background color 15:39 < bridge> [teeworlds] I actually don't know the UI best practices in that regards 15:41 < bridge> [teeworlds] Yeah it's supposed to be an overlay, sooo `class CTextCursor { bool m_Selecting; vec4 m_SelectionColor; }`? 15:42 < bridge> [teeworlds] meh, everything I can think of actually sounds awfully dirty, I wonder how other projects do it 15:47 < bridge> [teeworlds] Btw, why did matricks think that the old `CTextRender` interface was foolish? 15:58 < bridge> [teeworlds] Also turns out rendering a rectangle isn't actually trivial when you don't have `CRenderTools` 😄 16:07 < bridge> [teeworlds] Actually this is quite impossible to do like this, you can't change textures while drawing, I bet it'd kill performance to begin and end after each character 16:17 < bridge> [teeworlds] he mentioned too many virtual calls 16:35 < bridge> [teeworlds] Okay, I actually don't know how to fix this 16:35 < bridge> [teeworlds] Any suggestions are very welcome 16:53 < bridge> [teeworlds] You could do a third pass in addition to outline and text. But querying all the characters a third time (with a linear lookup) won't help performance =\ 16:53 < bridge> [teeworlds] I've written something so ugly it'll make your hair fall out 16:53 < bridge> [teeworlds] but I'll commit it see if oy will have a seizure 16:53 < bridge> [teeworlds] Great :D 17:00 < bridge> [teeworlds] It'd be good if text selection rendering did not worse text rendering performance when there is no text selection 17:00 < bridge> [teeworlds] I can only hope god will forgive me for this https://github.com/teeworlds/teeworlds/pull/2521/commits/6ee9edbaa462dc4c8e9dd88a98da4c9f762092d7 17:00 < bridge> [teeworlds] text rendering is already very bad 17:00 < bridge> [teeworlds] An extra branch per batch shouldn't(tm) matter much about performance 17:02 < bridge> [teeworlds] At least this solution won't hurt performance :) 17:03 < bridge> [teeworlds] The text reflowing when you have multiline text is very annoying btw 17:04 < bridge> [teeworlds] Now onto the console one, how do I get a linebreak in the console? 17:09 < bridge> [teeworlds] The console has linebreaks? 17:10 < bridge> [teeworlds] Well Oy said: "When there's a line break in the console the cursor isn't shown anymore and when you select sth it's not rendered correctly." 17:10 < bridge> [teeworlds] I don't understand how you can get a line break in the console 17:10 < bridge> [teeworlds] enter sends the command 17:11 < bridge> [teeworlds] I tried \ to escape the newline but that doesn't do it either 17:11 < bridge> [teeworlds] a very long line doesn't wrap for me either 17:11 < bridge> [teeworlds] removing linebreaks from text or executing in the case of the console would be preferralke imo. 17:12 < bridge> [teeworlds] preferrable* 17:12 < bridge> [teeworlds] just ask oy how to reproduce