Time |
Nick |
Message |
00:40 |
|
Verticen joined #minetest |
00:49 |
|
mannerism joined #minetest |
01:13 |
|
smk joined #minetest |
01:16 |
|
YuGiOhJCJ joined #minetest |
01:23 |
|
proller joined #minetest |
01:25 |
|
Unit193 joined #minetest |
01:40 |
|
proller joined #minetest |
01:44 |
|
calculon joined #minetest |
02:27 |
|
Verticen joined #minetest |
03:04 |
|
YuGiOhJCJ joined #minetest |
03:52 |
|
proller joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
04:43 |
|
sagax joined #minetest |
04:45 |
|
lemonzest joined #minetest |
04:51 |
|
Verticen joined #minetest |
05:25 |
|
calcul0n joined #minetest |
07:36 |
|
fling_ joined #minetest |
09:08 |
|
mrkubax10 joined #minetest |
09:57 |
|
dv^_^ joined #minetest |
10:54 |
|
illwieckz_ joined #minetest |
10:56 |
|
illwieckz joined #minetest |
11:37 |
|
proller joined #minetest |
12:03 |
|
sys4 joined #minetest |
12:10 |
|
kilbith joined #minetest |
13:17 |
|
lemonzest joined #minetest |
13:54 |
|
cation joined #minetest |
14:51 |
|
z812 joined #minetest |
14:51 |
|
staceee joined #minetest |
15:14 |
|
sid0 joined #minetest |
15:40 |
|
wsor joined #minetest |
15:40 |
|
MisterE123 joined #minetest |
15:55 |
|
staceee joined #minetest |
15:55 |
|
z812 joined #minetest |
16:55 |
|
definitelya joined #minetest |
17:06 |
|
sparky4 joined #minetest |
17:07 |
|
Verticen joined #minetest |
17:18 |
|
LandarVargan joined #minetest |
17:31 |
|
mrkubax10 joined #minetest |
17:53 |
|
___nick___ joined #minetest |
17:58 |
|
lemonzest joined #minetest |
18:04 |
|
Talkless joined #minetest |
18:19 |
|
___nick___ joined #minetest |
18:22 |
|
___nick___ joined #minetest |
18:55 |
|
definitelya_ joined #minetest |
18:57 |
|
sparky4 joined #minetest |
19:02 |
|
Guest54 joined #minetest |
19:02 |
Guest54 |
rubenwardy have you thought about semgrep for cdb? |
19:02 |
Guest54 |
to figure out if any mods do something weird if an API is broken again |
19:04 |
ROllerozxa |
there is a grep package search feature, but only available for ruben |
19:05 |
Guest54 |
semgrep is different |
19:05 |
Guest54 |
it operates on the AST |
19:05 |
Guest54 |
ROllerozxa which means you could find stuff like “this mod uses the API in a deprecated way” and notify the author (do not forbid it, it may be compatibility code) |
19:06 |
Guest54 |
or find opportunities to dupe hehe |
19:06 |
Guest54 |
ROllerozxa https://semgrep.dev/playground/r/c.lang.security.double-free.double-free |
19:06 |
* muurkha |
finds opportunities to dope |
19:10 |
MTDiscord |
<luatic> Guest54: are you erle? |
19:12 |
MTDiscord |
<GoodClover> CDB has zipgrep, which does extended grep patterns |
19:12 |
MTDiscord |
<GoodClover> Extended with a capital E, stupidly named |
19:16 |
Guest54 |
luatic i am indeed, and i am sorry for being so unfriendly last time i was here. turned out i had two serious vitamin deficiencies, which can lead to all kinds of unfunny stuff, e.g. increased irritability. |
19:17 |
MTDiscord |
<luatic> Guest54: it's okay lol, I don't hold any grudge against you |
19:18 |
MTDiscord |
<luatic> which two vitamins were deficient (of you are comfortable sharing)? |
19:18 |
|
diceLibrarian joined #minetest |
19:18 |
Guest54 |
luatic, b12 and d |
19:18 |
Guest54 |
both are very cheap to acquire, but you actually have to know that you are lacking them |
19:18 |
Guest54 |
also, vitamin D deficiency is not tested by default |
19:22 |
Guest54 |
luatic i have worked on a gift for the community as penance |
19:22 |
Guest54 |
a pure lua text renderer so people can make signs |
19:22 |
MTDiscord |
<luatic> text renderer from TTF? |
19:22 |
Guest54 |
i do not know why everyone makes signs out of texture modifiers, can you maybe explain? it seems a bit weird |
19:23 |
MTDiscord |
<luatic> it used to be the most viable (the only) option before dynamic media / [png became a thing |
19:23 |
Guest54 |
like, i have seen people who IMO *should* know better have directories with a.png b.png c.png etc. pp. |
19:23 |
MTDiscord |
<luatic> yeah, I did the same thing when I had to render text to texture |
19:23 |
Guest54 |
why |
19:23 |
MTDiscord |
<luatic> because it was the only option |
19:24 |
MTDiscord |
<luatic> now with dynamic media it is probably indeed inferior |
19:24 |
Guest54 |
i don't really get it, you can just write the pixels to a file, am i missing anything? |
19:24 |
MTDiscord |
<luatic> you couldn't always |
19:24 |
Guest54 |
i thought people had to reload anyway to see signs in early versions, maybe i was mistaken |
19:24 |
MTDiscord |
<GoodClover> I drew pixel text in a long string and then converted it to pixels for dynamic media |
19:24 |
Guest54 |
you could always write them to a file, you could not just always send them to the client |
19:25 |
MTDiscord |
<luatic> yeah, but people don't have to reload for texture modifiers to work |
19:25 |
Guest54 |
i see. |
19:25 |
MTDiscord |
<luatic> besides, another advantage is that texmods are "on demand" |
19:25 |
Guest54 |
wdym |
19:25 |
MTDiscord |
<luatic> you send the texmods only to clients who get close to the entity |
19:25 |
MTDiscord |
<luatic> whereas with dynamic media you'd have to send it to all clients just in case they ever get close to the entity |
19:26 |
Guest54 |
anyways, here is some sample output. i am not finished yet: https://mister-muffin.de/p/Lh5L.png |
19:27 |
MTDiscord |
<luatic> wow, impressive |
19:27 |
Guest54 |
it was not too hard |
19:27 |
Guest54 |
i have not done the arabic script shaping and the bidirectional text is wonky |
19:28 |
Guest54 |
but i do intend to bring full unicode sign support to minetest 5.3 and above that way |
19:29 |
Guest54 |
luatic you can see this in the first and last line |
19:29 |
Guest54 |
the arabic in the first line is messed up |
19:29 |
Guest54 |
the letters do not connect even |
19:29 |
Guest54 |
in the last line you can see a control character being rendered (it should be processed) because i have to implemented explicit bidi control characters |
19:39 |
Guest54 |
luatic an interesting tangent, working on font rendering i have also noticed that simple deflated TGA is unexpectedly competitive on both filesize and processing speed compared to PNG for large images too. take the colorful example text i posted – gimp makes it ~104K, optipng can strip it down to 88K (and takes a while). taking the TGA and |
19:39 |
Guest54 |
compressing it with DEFLATE is 84K. |
19:43 |
Guest54 |
so for generating textures it could be *very* useful if minetest transparently compressed TGA on the wire (if the client supports it and it is actually smaller) |
19:50 |
Guest54 |
a quick example: the devtest checkerboard is about 5061 bytes (thanks to minetest.encode_png()), the same file as a deflated TGA is 165 bytes. which is funny, because i thought it would be easy to undercut that using optipng, but the best optipng can do is 236 bytes. |
19:51 |
MTDiscord |
<luatic> TGA is presumably a simpler format with less overhead |
19:51 |
Guest54 |
it's not really about the overhead i think |
19:51 |
Guest54 |
for me it's more about encoding speed |
19:51 |
Guest54 |
we are talking dynamically generated textures after all |
19:52 |
MTDiscord |
<luatic> I vaguely remember benchmarking encoding speed and I don't think it was an issue |
19:52 |
MTDiscord |
<luatic> optimizing e.g. using optipng would of course slow things down though |
19:52 |
Guest54 |
that's the point |
19:53 |
Guest54 |
deflating the TGA makes it instantly smaller than the best thing optipng can do (for the checkerboard) |
19:53 |
Guest54 |
like at literally no runtime |
19:53 |
Guest54 |
optipng runtime even on the best machines i have seen can be measured in seconds per file |
19:54 |
mrkubax10 |
every machine currently implemented in IndustrialTest: https://0x0.st/HoiH.png |
19:54 |
Guest54 |
luatic the issue is that i did not think that non-prefiltered compression could ever be that good. no one did, apparently. |
19:55 |
Guest54 |
even though i did use it, i just never compared it for non-maps |
19:56 |
Guest54 |
anyways, it's an unexpectedly elegant solution that's quite simple to implement in a backwards compatible way to speed up texture transfer. |
19:57 |
Guest54 |
(and storage, if you really want to, but you probably do not) |
19:58 |
Guest54 |
luatic i also found out what the deal is with “sqlite is faster than the filesystem” people. they do not read the part of the description of the benchmark where “SQLite does not perform as well as direct I/O when experiments are run using a cold filesystem cache”. |
20:00 |
Guest54 |
basically, what it proves is that you can read data fast if you have it in the cache |
20:00 |
Guest54 |
which … is useful if you compare it to a lot of little reads and writes (which is a common database access pattern) |
20:03 |
|
mazes_80 joined #minetest |
20:05 |
Guest54 |
GoodClover luatic muurkha do you have any proposals on how the font rendering should work? currently you have to create a font object (i.e. table) and configure properties on it (like foreground and background color) and load glyphs (to allow for loading several fonts) first, unless you really like U+FFFD REPLACEMENT CHARACTER (it is the only glyph |
20:05 |
Guest54 |
my lua code knows by default) |
20:06 |
Guest54 |
and then you do stuff like: tga_encoder.image( font:render_text( "(*ˊᗜˋ*)/ᵗᑋᵃᐢᵏ ᵞᵒᵘ*" ) ):save("unicode.tga") |
20:06 |
Guest54 |
i originally had it non-object-oriented and it was much harder to develop and use |
20:07 |
Guest54 |
because you usually want the same font with the same color etc. for several renderings |
20:08 |
Guest54 |
if you do it like that you will get white on black grayscale text, so i guess people *may* want to learn font and encoding options |
20:08 |
Guest54 |
but i think that's a good default |
20:08 |
Guest54 |
also if someone of you knows arabic or hebrew, go read up on bidi text and help me (later) please |
20:09 |
Guest54 |
AFAIK arabic letters look different depending on their surroundings |
20:15 |
|
kilbith joined #minetest |
20:15 |
Guest54 |
luatic btw i do not render from TTF but from GNU unifont (or any hexfont) |
20:15 |
Guest54 |
kilbith i bet you have opinions on font rendering, do you? |
20:16 |
|
Markow joined #minetest |
20:16 |
Guest54 |
also i did recently dive into how the french do their stuff vs the germans and it seems you were right about the french kinda electing a king |
20:18 |
kilbith |
?? |
20:18 |
Guest54 |
you said something like that a long time ago |
20:18 |
Guest54 |
i think? |
20:18 |
Guest54 |
maybe i remember it wrong |
20:19 |
Guest54 |
anyways, i am rendering unicode in pure lua: https://mister-muffin.de/p/Lh5L.png and the API is kinda like font.render_text("foo bar baz") would that be acceptable to you? |
20:19 |
Guest54 |
i ask you because you would probably not hold back with expletives if it was not |
20:43 |
|
gxt__ joined #minetest |
20:49 |
MTDiscord |
<luatic> seems fine to me |
20:49 |
MTDiscord |
<luatic> though font. rather than font:? |
20:52 |
MTDiscord |
<Flamore> no font is complete without U+130B8 |
20:53 |
Guest54 |
luatic i apologize it is font:render_text() |
20:55 |
Guest54 |
luatic is hexfont a good font format? do you know a better one? |
20:56 |
Guest54 |
btw, i have been testing minetest on a machine with a hidpi screen (Xft.dpi: 284) and i wonder, what is the option to upscale everything? that + undersampling should fix the small fonts ig |
20:58 |
Guest54 |
Flamore shockingly, unicode is lacking that important character! |
20:58 |
Guest54 |
unifont |
20:58 |
Guest54 |
i mean |
20:58 |
Guest54 |
> *Note: Scripts such as Cuneiform, Egyptian Hieroglyphs, and Bamum Supplement will not be drawn on a 16-by-16 pixel grid. There are plans to draw these scripts on a 32-by-32 pixel grid in the future. |
20:58 |
Guest54 |
https://unifoundry.com/unifont/index.html |
20:59 |
Guest54 |
i guess that means you can not send dick pics by means of unicode characters using my renderer, which pleases me |
20:59 |
MTDiscord |
<luatic> Guest54: I'm not that familiar with fonts :P |
20:59 |
Guest54 |
luatic the thing is, am i missing something obvious? like the : vs . lol |
21:00 |
Guest54 |
e.g. do users want a default direction of text? do they want to render text to a canvas that has a specific size? etc. pp. |
21:00 |
MTDiscord |
<luatic> doesn't sound like it from your description |
21:00 |
MTDiscord |
<luatic> yeah, users usually only care about left-to-right I think |
21:00 |
Guest54 |
is “grayscale 1bpp output with white text on black background” a good default? |
21:01 |
Guest54 |
don't laugh, i had grayscale 1bpp output with black text on slightly more black background before |
21:02 |
Guest54 |
because it made it easier to create palette images |
21:02 |
Guest54 |
but it was not idiot proof |
21:02 |
Guest54 |
(me being the idiot) |
21:03 |
muurkha |
luatic: right now Minetest users don't care about right-to-left text because Minetest doesn't support their languages at all |
21:03 |
Guest54 |
luatic i have very stupid kerning, it removes up to 1 line left and 1 line right of the character to make them variable width |
21:03 |
Guest54 |
oh btw |
21:04 |
Guest54 |
i am not doing this because it is easy |
21:04 |
Guest54 |
i am doing it because i thought it was easy when i started |
21:04 |
muurkha |
heh |
21:04 |
muurkha |
"We do these things not because they are easy! We do them because we thought they would be easy." |
21:04 |
Guest54 |
it's also kinda true, if you don't care about bidi text |
21:05 |
Guest54 |
like, the worst bug that i can find right now is that control characters i do not explicitly handle are printed, which is kinda neat (because it shows what i should handle) |
21:05 |
muurkha |
that is cool |
21:05 |
MTDiscord |
<luatic> Guest54: I know this sentiment |
21:05 |
Guest54 |
well it is the default if you use unifont, since it does have a picture for each control character (presumably in case you accidentally render the glyph instead of going to the next tab stop or so) |
21:06 |
MTDiscord |
<luatic> That's how I wrote a b3d to glTF converter in like 2-3 days |
21:06 |
MTDiscord |
<luatic> (but it currently doesn't have provisions for "neutral bones" i.e. static geometry, I'll have to add them when I have time) |
21:07 |
Guest54 |
i have a task at work where i have to do a complicated pairing with an android device and a hardware prototype |
21:07 |
Guest54 |
i thought it was easy to test the pairing 100 times |
21:07 |
Guest54 |
turns out that this can fail in so many ways that are non-recoverable in software |
21:08 |
Guest54 |
e.g. you can end up with a bluetooth pairing device list in which your device is … twice … and still fail to connect |
21:08 |
MTDiscord |
<luatic> oof |
21:09 |
Guest54 |
also the hardware prototype has a powersaving feature that makes it go into standby after 2 minutes. now i also got a special fake battery so i can turn the power on and off again. basically it goes into a wall socket on on end and in the battery compartment on the other end. |
21:09 |
Guest54 |
now if the device goes into standby it does not react to bluetooth stuff AFAIK |
21:10 |
Guest54 |
but i want to do a lot of things that require turning power off and on again |
21:10 |
Guest54 |
guess what it loses … yes, the powersaving setting! if i ever turn it off as part of a test, it will turn itself to standby mode after 2 minutes. |
21:10 |
Guest54 |
and the thing has permanent storage |
21:10 |
|
proller joined #minetest |
21:11 |
Guest54 |
it's just someone in the firmware department was not thinking of the “battery is empty” case |
21:11 |
Guest54 |
which leads to it forgetting a lot of things when i use the special battery adapter |
21:12 |
Guest54 |
to wake it up from standby you have to physically press a button on the device |
21:12 |
Guest54 |
if i can not fix that in software, i am going to fix it by means of lego technic |
21:12 |
Guest54 |
though the majority of my old lego technic motors have locked up |
21:15 |
Guest54 |
luatic is there anything regarding signslib etc. i should know before cluelessly claiming i have a new method of text rendering that is superior? |
21:17 |
MTDiscord |
<luatic> I don't think so, but I'm not familiar with signslib |
21:18 |
Guest54 |
well, the way i am envisioning it is “render text to image, send image to client”. |
21:25 |
|
book` joined #minetest |
21:26 |
|
diceLibrarian joined #minetest |
21:46 |
|
Guest54 joined #minetest |
21:51 |
|
nuala joined #minetest |
21:58 |
Guest54 |
does anyone know what prompted mineclone2 devs to rip out all textures from the mods and make a single texture directory and also rename some of them? it seems like what people would do who constantly have issues with mod dependencies (i.e. make a big ball of mud) but i don't really know if there is a technical reason (i doubt it, but asking can't |
21:58 |
Guest54 |
hurt). |
22:28 |
|
sparky4 joined #minetest |
22:34 |
Guest54 |
Warr1024 you probably also want to render text, anything that a font:render_text() unicode text rendering function should do that i may be missing? |
22:35 |
Guest54 |
i mean i take it from this: https://github.com/minetest/minetest/issues/9946 |
22:35 |
Guest54 |
> if this can be done without engine changes, I'm open to suggestion |
22:37 |
|
sparky4 joined #minetest |
22:39 |
|
YuGiOhJCJ joined #minetest |
23:00 |
|
proller joined #minetest |
23:27 |
|
diceLibrarian joined #minetest |
23:29 |
|
Guest54 joined #minetest |
23:39 |
|
YuGiOhJCJ joined #minetest |
23:40 |
|
Evergreen joined #minetest |