Time |
Nick |
Message |
00:09 |
|
Puka joined #minetest-dev |
00:33 |
nore |
hmmm, with all new keybindings of #1439, I screwed up the keybindings menu, any idea how to fix that? |
00:33 |
ShadowBot |
https://github.com/minetest/minetest/issues/1439 -- Add configurable key bindings for selecting next/previous hotbar item and changing the volume by Wuzzy2 |
00:40 |
nore |
#5598 |
00:40 |
ShadowBot |
https://github.com/minetest/minetest/issues/5598 -- Add configurable key bindings for selecting next/previous hotbar item and changing the volume by Ekdohibs |
00:42 |
nore |
^ I need those rebased PRs quickly reviewed please, and I would like to know what I should do about the screwed up keybindings menu as well |
00:49 |
|
kaeza joined #minetest-dev |
01:19 |
|
Tmanyo joined #minetest-dev |
01:49 |
|
Tmanyo joined #minetest-dev |
02:57 |
|
Tmanyo joined #minetest-dev |
03:47 |
|
XtremeHacker joined #minetest-dev |
05:46 |
|
diegom joined #minetest-dev |
05:59 |
|
DS-minetest joined #minetest-dev |
06:07 |
|
cx384 joined #minetest-dev |
06:52 |
|
Hunterz joined #minetest-dev |
07:07 |
|
YuGiOhJCJ joined #minetest-dev |
07:14 |
|
nerzhul joined #minetest-dev |
07:15 |
celeron55 |
could we have something like minetest.conf.example.extra or whatever that would house all the stuff that isn't generated from builtin/settingtypes.txt |
07:16 |
DS-minetest |
+ |
07:16 |
celeron55 |
having to manually put settings into two places would already be ridiculous, but currently there are THREE places |
07:16 |
celeron55 |
it's like someone deliberately wants us to not have settings |
07:18 |
nerzhul |
celeron55, i agree the duplicate settings is anoying, i don't know what is the interest of builtin/settingstypes.txt but it's a big dup |
07:18 |
celeron55 |
builtin/settingstypes.txt is the canonical setting listing as it stands now; it has the most information in the most parseable format |
07:19 |
celeron55 |
there's an uncommentable line at the end of mainmenu/dlg_settings_advanced.lua that causes the main menu to generate minetest.conf.example and src/settings_translation_file.cpp |
07:19 |
nerzhul |
why not use it to generate minetest.conf.example then ? :p |
07:19 |
celeron55 |
it can, but currently minetest.conf.example contains extra things it doesn't generate |
07:19 |
nerzhul |
oh |
07:20 |
celeron55 |
they need to be moved elsewhere |
07:20 |
nerzhul |
maybe we should finish that work to simplify our work |
07:20 |
celeron55 |
that's what my first line there ^ says |
07:21 |
celeron55 |
are people ok with adding a file called minetest.conf.example.extra and putting the extra mapgen parameter topic from minetest.conf.example into there? |
07:21 |
nerzhul |
sorry, i just got up :p |
07:23 |
celeron55 |
alternatively builtin could be modified to understand extra sections in builtin/settingstypes.txt that aren't related to any setting in particular and ignore them for the settings menu but copy them as-is to minetest.conf.example in the place they belong, but that's probably more work than anyone wants to do right now |
07:32 |
|
Warr1024 joined #minetest-dev |
07:47 |
nerzhul |
omg i found a very very anoying bug on android |
07:48 |
nerzhul |
when you open task list on android and kill mt from tasklist, mt stays opened in background |
07:48 |
nerzhul |
the only wait to exit is to stay on the task and do a force stop |
07:48 |
nerzhul |
nore merging #5596 tested it now with a fresh build |
07:48 |
ShadowBot |
https://github.com/minetest/minetest/issues/5596 -- Disable android leveldb by default by Ekdohibs |
07:57 |
nerzhul |
celeron55, do you want me to test your PR on android ? |
07:58 |
nerzhul |
i just don't know see how can i test it really on android :p |
08:00 |
celeron55 |
wait a moment, i just pushed a thing to it |
08:01 |
nerzhul |
no problem, i'm working on a progressbar fix for android, it's too little for android screens |
08:01 |
celeron55 |
https://github.com/minetest/minetest/pull/5595#issuecomment-294339233 |
08:04 |
nerzhul |
sounds interesting and the overhead is quite nice :) |
08:07 |
celeron55 |
the 94% comes from the ratio of 1 MapBlock per 3*3*3 MapBlocks, which is 96% |
08:07 |
celeron55 |
i mean, 3*3*3-1 MapBlocks per 3*3*3 MapBlocks |
08:09 |
celeron55 |
actually, 94% is pretty much exactly 1 - 1./(3*3*2), which sounds accurate as usually one complete 1*3*3 side of the 3*3*3 (block + all neighbors) has to be updated in that situation, which is map loading |
08:10 |
celeron55 |
in a situation where a block keeps updating in the middle of loaded blocks, 96% might be reached; not sure |
08:11 |
celeron55 |
yeah, holy shit, it actually works that way |
08:11 |
celeron55 |
on the VE-S server i see 96 hit% |
08:12 |
celeron55 |
standing still, with 5 MB of cache use (at 20 MB setting) |
08:13 |
nerzhul |
a strange thing, on Android the progress bar seems a little bit upper and repeat |
08:16 |
nerzhul |
celeron55, #601 strange no ? i'm not an irrlicht expert and it only shows on android |
08:16 |
ShadowBot |
https://github.com/minetest/minetest/issues/601 -- Install "build" and "survival" games with "make install" by kaeza |
08:16 |
nerzhul |
#5601 * |
08:16 |
ShadowBot |
https://github.com/minetest/minetest/issues/5601 -- Android progressbar fix by nerzhul |
08:19 |
celeron55 |
the width is ok but the height isn't? |
08:23 |
celeron55 |
can't guess, seems weird |
08:26 |
celeron55 |
some android devices have issues with non-2^x sized textures |
08:28 |
celeron55 |
https://github.com/minetest/minetest/issues/5403 |
08:28 |
celeron55 |
that's what people are guessing here too |
08:30 |
celeron55 |
so if you just resize it to like 512x64, it will work |
08:34 |
nerzhul |
yeah it's that |
08:34 |
nerzhul |
i resized to 1024*128 and it's nice |
08:35 |
nerzhul |
see #5601 heh :) |
08:35 |
ShadowBot |
https://github.com/minetest/minetest/issues/5601 -- Android progressbar fix by nerzhul |
08:39 |
nerzhul |
celeron55, are you okay with it ? |
08:43 |
celeron55 |
having a separate image that is stretched like that is a pretty crude solution |
08:43 |
celeron55 |
really the original image should be rendered on a 2^x texture by MT and used from it, but... eh, whatever lol |
08:44 |
nerzhul |
okay, look for scaling image then |
08:44 |
celeron55 |
there's a function called Align2Npot2 in client/tile.cpp that is used for a similar purpose |
08:45 |
celeron55 |
i would imagine it probably does something useful 8) |
08:46 |
celeron55 |
the TextureSource isn't available in the loading screen, i guess it would be able to automate all that |
08:46 |
celeron55 |
or is it? |
08:46 |
nerzhul |
i have a ITexture and AlignNpot2 take IImage |
08:48 |
nerzhul |
oh maybe i can use a template function it should work |
08:49 |
celeron55 |
uh oh maybe not |
08:50 |
celeron55 |
what if you pass the client's m_tsrc (or the client and use Client::getTextureSource()) and then just ask tsrc->getTexture("progress_bar.png") |
08:51 |
nerzhul |
i don't have client in this function, hmm |
08:56 |
celeron55 |
(the texture source is one thing that could be global; it's thread-safe and it's not strictly meant to exist as parallel to the environment or server or anything) |
08:58 |
celeron55 |
(and it's... kind of useful, lol) |
09:00 |
nerzhul |
a such refactor 1 month before release is too huge for me :) |
09:00 |
nerzhul |
okay drawloadscreen is called by client, and should be part of it maybe instead of being a standalone funciton, no ? |
09:03 |
celeron55 |
it's called by Game too |
09:03 |
celeron55 |
but it owns the client |
09:04 |
nerzhul |
yeah but game has access to client |
09:06 |
celeron55 |
i think you should just add ITextureSource as a parameter to draw_load_screen; then if we have non-client related UIs that need load screens, it's already there and the function won't be stuck to the client with no reason if TextureSource is made global some day |
09:06 |
nerzhul |
okay, only texture_update_progress is a problem now |
09:07 |
celeron55 |
it should be client's method |
09:07 |
nerzhul |
not simple as it's a callback function |
09:07 |
nerzhul |
i'm adding it to callbvack args |
09:08 |
celeron55 |
oh... oops, true |
09:09 |
celeron55 |
i for sure hope TextureSource actually does something useful, for all this hassle |
09:11 |
nerzhul |
i'm trying it, we will see :) |
09:14 |
nerzhul |
it's not good in fact |
09:14 |
nerzhul |
client was not created at this moment :p |
09:14 |
celeron55 |
oops, lol |
09:14 |
nerzhul |
oh the problem can be fixed for first, we create texture_src just after |
09:15 |
nerzhul |
hmmm anoying |
09:15 |
nerzhul |
spagheti fix |
09:15 |
nerzhul |
i think it's better to use my method for a first fix and we will cleanup later no ? :p |
09:15 |
celeron55 |
the texture source becomes a prerequisite of showing the load screen instead of being a thing loaded under the load screen; that's kind of weir |
09:15 |
celeron55 |
+d |
09:15 |
nerzhul |
too many things to refactor to make it working |
09:16 |
nerzhul |
showOverlayMessage(wgettext("Loading..."), 0, 0); |
09:16 |
nerzhul |
texture_src = createTextureSource(device); |
09:16 |
nerzhul |
:) |
09:17 |
celeron55 |
createTextureSource is very cheap though, it doesn't actually load anything |
09:17 |
celeron55 |
you could just move it above |
09:19 |
nerzhul |
oh yeah it's a call member |
09:19 |
nerzhul |
class* |
09:19 |
celeron55 |
if you won't do it, i will do it :P |
09:19 |
nerzhul |
okay it works bug i cannot load texture image :p |
09:19 |
nerzhul |
(the native client not android) |
09:20 |
nerzhul |
generateImage(): Could not load image "/home/nerzhul/Devel/minetest-stock/textures/base/pack/progress_bar.png" while building texture |
09:20 |
nerzhul |
strange |
09:20 |
nerzhul |
the path is good but it is not happy |
09:21 |
celeron55 |
i've never seen that happen |
09:21 |
nerzhul |
it seems it waits for a normal map... |
09:21 |
nerzhul |
if (part_of_name.find("_normal.png") == std::string::npos){ |
09:21 |
celeron55 |
no it doesn't |
09:21 |
celeron55 |
i just says a different error if it's a normal map |
09:22 |
nerzhul |
exact |
09:22 |
celeron55 |
driver->createImageFromFile() fails for some reason |
09:22 |
celeron55 |
in the old code driver->getTexture() for the same file works |
09:22 |
celeron55 |
that's weird |
09:23 |
celeron55 |
actually, there's an info message that you might not see |
09:23 |
DS-minetest |
already 4 people have confirmed that something is wrong with the daily ppa https://forum.minetest.net/viewtopic.php?f=6&t=17212 |
09:24 |
nerzhul |
2017-04-16 11:24:00: INFO[Main]: SourceImageCache::getOrLoad(): No path found for "/home/nerzhul/Devel/minetest-stock/textures/base/pack/progress_bar.png" |
09:24 |
nerzhul |
wtf |
09:24 |
celeron55 |
lol i should know how this is supposed to work |
09:25 |
celeron55 |
wait what do you pass to tsrc->getTexture? |
09:25 |
celeron55 |
the full path? it wants only the file name |
09:25 |
nerzhul |
oh |
09:25 |
nerzhul |
i'm in draw_load_screen then i have full path only due to texture packs |
09:25 |
celeron55 |
it's able to automatically load from textures/base/pack/ |
09:26 |
nerzhul |
okay trying to hardcore path |
09:26 |
nerzhul |
hardcode* |
09:26 |
nerzhul |
nice ! |
09:26 |
|
kilbith joined #minetest-dev |
09:26 |
nerzhul |
it works as intended and simplify the code |
09:26 |
nerzhul |
now i'm testing it on android |
09:27 |
celeron55 |
and also it will search texture packs first which means the selected texture pack can modify the load screen |
09:27 |
* VanessaE |
peeks in |
09:27 |
nerzhul |
yeah, it permit to have unified code between loading texture and other textures, as it's not the case atm :) good |
09:28 |
nerzhul |
strange adventure, i just wanted to fix an image on android and i fixed the loading screen to use the texture source :p |
09:29 |
nerzhul |
okay now i need to upscale image |
09:31 |
celeron55 |
you should be able to just multiply the values in img_size |
09:31 |
nerzhul |
yeah |
09:31 |
celeron55 |
or wherever they go |
09:31 |
nerzhul |
or just fixed it for a decent android size ? |
09:32 |
celeron55 |
just override imgW and imgH to fixed values? seems fine enough for now |
09:32 |
nerzhul |
the current image was not corrected, i have same problem as before, i returned back to previous behaviour |
09:33 |
kilbith |
this fix is utterly incorrect, I'll leave a comment |
09:33 |
kilbith |
"fix" |
09:33 |
celeron55 |
there are many issues and at least one is fixed already |
09:34 |
celeron55 |
kilbith: what do you think is the correct fix to... i mean whatever is utterly incorrect? |
09:34 |
nerzhul |
celeron55, yes, but not the visible part :p |
09:35 |
kilbith |
celeron55: https://github.com/minetest/minetest/pull/5601/files#diff-3caa81f71bc3ee0838c9b7a1cfcfa6acR640 |
09:35 |
celeron55 |
getting the texture from tsrc didn't make it x^2-sized? |
09:35 |
kilbith |
this is not scaling on a power of 2 |
09:35 |
nerzhul |
yeah i was fixing it, but it's a rangelim and image doesn't respect it |
09:36 |
kilbith |
and besides, manually scaling the current images to 1024px is fucking ugly |
09:36 |
celeron55 |
it's just the size it's rendered at |
09:36 |
nerzhul |
when i hardcode height and width it doesn't work, the texture is upscales but the repeat bug remains |
09:36 |
|
calculon joined #minetest-dev |
09:37 |
kilbith |
try out this patch instead : https://github.com/minetest/minetest/issues/5403#issuecomment-288161942 |
09:37 |
celeron55 |
nerzhul: are you trying to scale it unproportionally? |
09:37 |
nerzhul |
it's the case yes |
09:38 |
nerzhul |
seems normal then |
09:41 |
celeron55 |
trying kilbith's suggestion won't hurt i guess |
09:41 |
nerzhul |
trying |
09:42 |
kilbith |
you'll need to change the header to <GLES/glew.h> |
09:42 |
kilbith |
I think |
09:42 |
nerzhul |
this header doesn't exists |
09:42 |
nerzhul |
this header doesn't exists |
09:42 |
nerzhul |
oops sorry |
09:43 |
celeron55 |
i don't get it though; why is gles1 tiling the texture in one direction but not the other? |
09:44 |
kilbith |
celeron55: width is at 256px |
09:44 |
nerzhul |
i will try directly without version checking first |
09:46 |
nerzhul |
okay texture disappears |
09:46 |
nerzhul |
it's not the fix |
09:47 |
nerzhul |
oh ! |
09:47 |
nerzhul |
no my fault |
09:47 |
nerzhul |
u32 imgW = get_POT_size(imgW) |
09:47 |
nerzhul |
why compiler let me write this ? |
09:47 |
nerzhul |
imgW doesn't exist :p |
09:47 |
nerzhul |
create + function + affect |
09:48 |
nerzhul |
sorry but with the POT texture is exactly same as before |
09:48 |
nerzhul |
no change |
09:48 |
celeron55 |
i guess the compiler is pretending it's first constructed and then assigned into |
09:50 |
celeron55 |
gles1 is supposed to be able to render any texture in any position on the screen, it won't tile anything at that point; the tiling happens when an image loaded from the disk is converted to a texture, if the image isn't converted to 2^n first |
09:50 |
celeron55 |
as far as what i would suppose |
09:51 |
nerzhul |
strange my client crashew now after sayling loading textures, since the tsrc change |
09:52 |
nerzhul |
how can i get backtrace... |
09:52 |
celeron55 |
lol maybe we should revert all of it and do something else |
09:52 |
nerzhul |
my first commit works well, not the best but it works |
09:53 |
nerzhul |
oh an assertion failure |
09:53 |
nerzhul |
04-16 11:52:29.935 27126 27142 E Minetest: 2017-04-16 11:52:29: ERROR[Main]: jni/../jni/src/client/tile.cpp:319: virtual void TextureSource::rebuildImagesAndTextures(): An engine assumption 'img->getDimension().Height == npot2(img->getDime |
09:53 |
nerzhul |
nsion().Height)' failed. |
09:53 |
nerzhul |
. |
09:54 |
nerzhul |
this change is good for PC but android doesn't like it :p |
09:54 |
kilbith |
you don't need to change anything for the desktop |
09:54 |
nerzhul |
i talked about the texture source usage to unify loading the progress bar |
09:55 |
nerzhul |
assertion is in android code part |
09:56 |
nerzhul |
okay i think it's the check to ensure our texture is good for android no ? :p |
09:56 |
|
calculon joined #minetest-dev |
09:57 |
celeron55 |
umm |
09:57 |
celeron55 |
i think that code is wrong |
09:57 |
celeron55 |
Align2Npot2 can return a non-2^x image if the system says that it supports 2^x images |
09:58 |
celeron55 |
this means your system is saying it supports them, while not supporting them, and additionally MT is always broken if android says it supports them (???) |
09:58 |
celeron55 |
lol wut |
09:59 |
nerzhul |
if i use a properly scaled image no problem |
09:59 |
celeron55 |
but the code can only fail if there are non-2^x images in the game |
09:59 |
celeron55 |
as otherwise Align2Npot2 doesn't do anything |
10:01 |
celeron55 |
wait, no |
10:01 |
celeron55 |
or maybe yes |
10:01 |
celeron55 |
TextureSource::rebuildImagesAndTextures() is called only in Client::afterContentReceived, and it does have all game textures at that point, so yes, what i said is true |
10:03 |
celeron55 |
so the two sanity checks should be removed, they're wrong |
10:03 |
celeron55 |
but additionally your android is telling Align2Npot2 it supports x^2 textures while it doesn't |
10:03 |
celeron55 |
comment out the if (extensions.find("GL_OES_texture_npot")) line in tile.cpp and see what happens |
10:04 |
nerzhul |
okay i will lunch and test that after |
10:04 |
celeron55 |
this is ridiculous, i didn't expect both MT _and_ android to be so broken |
10:06 |
celeron55 |
kilbith's check for GL version might work better for android, but not for desktop because on desktop opengl 1 usually supports non-x^2 textures just fine |
10:07 |
kilbith |
seems to be not entirely true : https://www.khronos.org/opengl/wiki/NPOT_Texture |
10:11 |
celeron55 |
it just lists some gl2 cards that are broken and says nothing about gl1 |
10:12 |
kilbith |
Core since version2.0 |
10:13 |
celeron55 |
afaik usually when you stumble upon gl1 or something like that, its a windows system without some sort of a gaming video card |
10:20 |
celeron55 |
like https://i.ytimg.com/vi/iXEm41r1mFk/maxresdefault.jpg |
10:21 |
celeron55 |
i'm pretty sure whatever that is running on can use npot without any issues whatsoever |
10:24 |
kilbith |
I only see 16x16px textures on your screenshot |
10:25 |
celeron55 |
a gpu is free to support any gl extensions and on desktop npot tends to be important so they support it even at gl1 |
10:25 |
celeron55 |
but won't show up as gl2 because they can't do the stuff gl2 requires mainly for fancy games |
10:26 |
kilbith |
well, the Khronos group claims the opposite |
10:27 |
celeron55 |
the only thing that page says is that it's mandatory for gl2 and some gl2 cards are broken |
10:28 |
celeron55 |
khronos' recommendations mean nothing to me |
11:17 |
nerzhul |
celeron55, the part you want me to comment fixes the problem |
11:19 |
|
DS-minetest joined #minetest-dev |
11:20 |
|
MoNTE48 joined #minetest-dev |
11:22 |
celeron55 |
ok, hmm |
11:23 |
celeron55 |
i mean, it doesn't show up as tiled then? |
11:24 |
nerzhul |
no, it's the perfect texture, no repeat |
11:25 |
nerzhul |
i'm writing an upscaling formula to make texture fit phone screens properly |
11:25 |
celeron55 |
ok, then checking for the GL_OES_texture_npot opengl extension isn't sufficient as the system erroneously reports it |
11:25 |
celeron55 |
maybe the detection logic in kilbith's patch is required |
11:26 |
nerzhul |
you mean verify if GL 1 + extension ? |
11:27 |
|
rubenwardy joined #minetest-dev |
11:28 |
celeron55 |
i would try this: if ((gl version is 1) || (extensions.find("GL_OES_texture_npot") != std::string::npos)) |
11:29 |
celeron55 |
oops |
11:29 |
celeron55 |
corrected: if ((gl version is > 1) || (extensions.find("GL_OES_texture_npot") != std::string::npos)) |
11:30 |
celeron55 |
wait |
11:30 |
celeron55 |
i think my brain just stopped working |
11:30 |
nerzhul |
:p |
11:31 |
celeron55 |
i meant this: if ((gl version is > 1) && (extensions.find("GL_OES_texture_npot") != std::string::npos)) |
11:31 |
celeron55 |
which means the extension's existence is trusted only if opengl version isn't 1 |
11:34 |
|
MoNTE48 joined #minetest-dev |
11:34 |
celeron55 |
it seems there probably should be a test done at startup that sees whether an npot texture will render correctly and if not, it'll enable that function accordingly |
11:35 |
celeron55 |
as the opengl extensions can't be trusted |
11:36 |
nerzhul |
i updated #5601 with texture source and scale (final screenshot only) i just don't pushed the commented part |
11:36 |
ShadowBot |
https://github.com/minetest/minetest/issues/5601 -- Android progressbar fix by nerzhul |
11:36 |
|
DI3HARD139 joined #minetest-dev |
11:37 |
celeron55 |
the stretched pixels look ugly but... at least it isn't utterly broken now |
11:37 |
nerzhul |
yes it's sky i had another texture :p |
11:38 |
nerzhul |
okay i added the version check |
11:38 |
nerzhul |
it works |
11:39 |
nerzhul |
#5601 is now ready for a final review celeron55 , i'm waiting for you |
11:40 |
ShadowBot |
https://github.com/minetest/minetest/issues/5601 -- Android progressbar fix by nerzhul |
11:41 |
celeron55 |
you still need to comment the sanity_checks because they can still fail on gles2 hardware, because they're wrong |
11:41 |
celeron55 |
i mean, remove |
11:42 |
nerzhul |
are you sure ? they was triggered before on my hardware but since the fix it isn't ? (also it's triggered only in debug builds not release :) ) |
11:43 |
celeron55 |
it will literally always crash into them on androids that support npot textures, when there are npot textures, and now there always is, the progress bar |
11:43 |
celeron55 |
yours doesn't so it doesn't crash |
11:44 |
nerzhul |
okay removed, tell me when you're okay for a squash+merge |
11:46 |
celeron55 |
adding a comment before "if (get_GL_major_version()" would be good; something like "// Only GLES2 is trusted to correctly report npot support" |
11:49 |
nerzhul |
added |
11:57 |
kilbith |
please ask sfan5 a review also |
11:59 |
celeron55 |
we need better management for this npot stuff; it should be made easily checkable whether MT is in npot-avoidance mode or not |
12:04 |
celeron55 |
nerzhul: do you notice how the progress bar is stretched after the x^2 conversion? it should probably be fixed by enforcing the known aspect ratio of the source image when drawing it |
12:04 |
|
kilbith_ joined #minetest-dev |
12:05 |
celeron55 |
instead of using whatever tsrc ended up returning as it may have to do those npot scalings |
12:06 |
celeron55 |
instead of this: |
12:06 |
celeron55 |
const core::dimension2d<u32> &img_size = progress_img_bg->getSize(); |
12:06 |
celeron55 |
do something like this: |
12:06 |
celeron55 |
const core::dimension2d<u32> img_size(256, 48); |
12:07 |
nerzhul |
i respect the ratio of the image |
12:07 |
nerzhul |
https://github.com/minetest/minetest/pull/5601/files#diff-3caa81f71bc3ee0838c9b7a1cfcfa6acR640 |
12:07 |
celeron55 |
it might seem weird but it's how you're supposed to handle npot images in opengl rendering |
12:08 |
celeron55 |
yes, the ratio becomes wrong after the required Align2Npot2 so you have the wrong ratio there |
12:09 |
nerzhul |
progress_img_bg->getOriginalSize() |
12:09 |
nerzhul |
then ? |
12:09 |
|
troller joined #minetest-dev |
12:09 |
celeron55 |
that probably doesn't work due to how TextureSource works |
12:09 |
kilbith |
it has the same effect, I tried |
12:10 |
nerzhul |
celeron55, oh, testing it fast to see |
12:10 |
nerzhul |
no change |
12:10 |
celeron55 |
it only works if irrlicht itself does the npot conversion and apparently it doesn't do them |
12:10 |
nerzhul |
celeron55, but if i hardcode it it's wrong, if we change the image we should change the code |
12:11 |
celeron55 |
images shouldn't define shapes of UI elements anyway |
12:11 |
celeron55 |
the UI shape is defined by code in this case |
12:12 |
nerzhul |
64/256 |
12:12 |
nerzhul |
it's wrong yes :) |
12:12 |
nerzhul |
then hardcode ? |
12:13 |
celeron55 |
just hardcode, that's what opengl expects anyway |
12:14 |
nerzhul |
hmmm not good, my texture is cut at 48 now |
12:15 |
celeron55 |
oh, you need to supply the correct source size to draw2DImageFilterScaled |
12:16 |
celeron55 |
this is kind of weird when we have no existing textured UI practices at all |
12:21 |
celeron55 |
i'm looking into where irrlicht comes up with the size for getOriginalSize() |
12:22 |
nerzhul |
okay everything is okay now :) |
12:23 |
celeron55 |
looks like irrlicht internally does an npot conversion if Driver->queryFeature(EVDF_TEXTURE_NPOT) |
12:23 |
nerzhul |
1.8.4 ? |
12:23 |
celeron55 |
i'm looking at 1.7.2 as i have it hanging around but probably nothing has changed |
12:24 |
celeron55 |
COpenGLTexture::getImageValues in COpenGLTexture.cpp |
12:24 |
celeron55 |
TextureSize=ImageSize.getOptimalSize(!Driver->queryFeature(EVDF_TEXTURE_NPOT)); |
12:25 |
celeron55 |
looks like it checks for the extension ARB_texture_non_power_of_two |
12:26 |
celeron55 |
i guess your android device gets that wrong too |
12:26 |
nerzhul |
maybe :) |
12:26 |
celeron55 |
all this automation is nice but it's completely useless when the starting values are wrong |
12:29 |
|
lisac joined #minetest-dev |
12:31 |
celeron55 |
really if we weren't this nice we could as well just decide your android is broken and not support it |
12:32 |
celeron55 |
because that's quite what it is |
12:35 |
nerzhul |
my android is quite recent, it's Android 6.0 on a Huawei Honor 8 :p |
12:35 |
nerzhul |
sfan5, okay for a merge now ? i addressed your comments :) celeron55 too |
12:43 |
nerzhul |
merging, thanks celeron55 and kilbith for your support :) |
12:44 |
celeron55 |
that's way too much work for a fix for a broken android phone though |
12:49 |
|
XtremeHacker joined #minetest-dev |
13:21 |
|
halt_ joined #minetest-dev |
13:21 |
|
Grandolf joined #minetest-dev |
13:28 |
|
octacian joined #minetest-dev |
13:49 |
|
kilbith_ joined #minetest-dev |
14:09 |
|
kilbith_ joined #minetest-dev |
14:20 |
|
Megaf joined #minetest-dev |
14:29 |
|
Fixer joined #minetest-dev |
15:06 |
|
paramat joined #minetest-dev |
15:08 |
|
kaeza joined #minetest-dev |
15:08 |
paramat |
celeron55 "are people ok with adding a file called minetest.conf.example.extra and putting the extra mapgen parameter topic from minetest.conf.example into there?" fine for me. two sections: https://github.com/minetest/minetest/blob/master/minetest.conf.example#L1200 and https://github.com/minetest/minetest/blob/master/minetest.conf.example#L1284 |
15:10 |
paramat |
related issue: #4390 |
15:10 |
ShadowBot |
https://github.com/minetest/minetest/issues/4390 -- Settings / .conf: Mgv5 ground noise unsettable / missing. 2 problems with .conf auto-generation |
15:28 |
|
halt_ joined #minetest-dev |
15:38 |
|
DS-minetest joined #minetest-dev |
15:45 |
|
cx384 joined #minetest-dev |
16:17 |
|
xtremehacker_ joined #minetest-dev |
16:50 |
|
halt_ joined #minetest-dev |
16:50 |
|
Grandolf joined #minetest-dev |
16:57 |
|
octacian joined #minetest-dev |
17:38 |
|
kaeza joined #minetest-dev |
17:49 |
|
juhdanad joined #minetest-dev |
17:50 |
nore |
oh hey juhdanad |
17:51 |
juhdanad |
Hey! |
17:51 |
nore |
quick question: do you still intend to work on changing the lightbanks meaning? |
17:51 |
juhdanad |
I'm not finished reading logs yet. |
17:51 |
nore |
heh, I guess there are a lot of them |
17:51 |
juhdanad |
Yes, I would like to add artificial light instead of day light. |
17:52 |
nore |
good, that is something I would also like a lot :) |
17:52 |
juhdanad |
But that will have a performance penalty: converting map blocks for older clients on the fly. |
17:53 |
nore |
hmmm, that shouldn't be too expensive |
17:53 |
nore |
it's the old->new conversion which is |
17:54 |
nore |
also, there would be a performance gain when updating light |
17:54 |
nore |
(especially in areas that are only artificial lit) |
17:56 |
juhdanad |
nore: That will be easy to code once #5373 is merged. That contains a map block light fixing method already. |
17:56 |
ShadowBot |
https://github.com/minetest/minetest/issues/5373 -- Add the possibility to skip light update and fix light later by juhdanad |
17:56 |
juhdanad |
(at least I hope it will be easy then.) |
17:58 |
* nore |
is reviewing the code |
18:00 |
|
kaeza joined #minetest-dev |
18:27 |
nore |
juhdanad: I'm trying your PR and minetest.fix_light is returning false, even though the block is generated (and even loaded, since I'm standing inside it) |
18:28 |
juhdanad |
I'll look at it... |
18:28 |
nore |
otherwise, code looks good :) |
18:29 |
juhdanad |
Thank you for your efforts! I'm really happy that my code is appreciated! |
18:30 |
nore |
you're welcome, this is something I wanted done for a very long time and I was always too lazy to code :) |
18:32 |
juhdanad |
There's a mod for testing: https://gist.github.com/juhdanad/8d52aed02fcfd9d59c0364dc786d45c4 |
18:32 |
juhdanad |
You just type in "/fixlight" to correct light in the chunk you are standing in. |
18:33 |
nore |
ah |
18:33 |
nore |
so you've got to use minetest.fix_light with the block position? |
18:34 |
* nore |
misread the api |
18:34 |
juhdanad |
Well, you have to tell the program where to look for bugs. :) |
18:35 |
nore |
I thought it was the node position :s |
18:35 |
juhdanad |
Now, to create lighting bugs, use paramat's "chambers" mod, but add 'false' to all 'write_to_map()' calls. |
18:35 |
nore |
ok, working as advertised |
18:35 |
kaeza |
it should use node positions IMHO. I don't think block units are used anywhere else in the API |
18:36 |
nore |
^ I used another mod I'm working on :) |
18:36 |
nore |
kaeza: that's a big question |
18:37 |
juhdanad |
Since blocks are corrected instead of individual nodes, users need to know the definition of a map block in order to to use my function. |
18:37 |
nore |
the problem is: if you don't know that, you have to call it for *each* node position you want to fix |
18:37 |
nore |
and that's not good |
18:37 |
nore |
so... both are ok for me |
18:38 |
nore |
minetest.forceload_block also uses blocks and not nodes |
18:38 |
nore |
(although the API is per-position) |
18:39 |
kaeza |
juhdanad, I understand your point of view, but as you see in your own code, you need more boilerplate code (converting to block units) to use the feature. the average user/modder doesn't need to know what a mapblock is |
18:39 |
nore |
kaeza: yes, but that's a feature only useful when using vmanips I think |
18:39 |
nore |
but anyway, I guess converting would be easy enough |
18:41 |
juhdanad |
kazea: so you are suggesting cuboid of map blocks as a parameter, right? |
18:41 |
juhdanad |
*map nodes |
18:41 |
juhdanad |
like minetest:fix_light(pos1, pos2) |
18:42 |
kaeza |
juhdanad, that could be an option. doesn't VManip use that system? |
18:43 |
kaeza |
i.e. you request an arbitrary cuboid, but in fact get whole blocks |
18:44 |
nore |
^ this would be fine with me, it is like vmanip works as well |
18:45 |
juhdanad |
yes, it is. |
18:46 |
kaeza |
well, VManip code also needs the VoxelArea helper class to do anything meaningful, so... |
18:47 |
nore |
kaeza: yes, but VoxelArea doesn't care about mapblocks |
18:52 |
|
YuGiOhJCJ joined #minetest-dev |
18:58 |
celeron55 |
the lua API shouldn't deal with block positions |
18:59 |
celeron55 |
there are some misdesigned parts that shouldn't be there that use block positions but they shouldn't be there |
19:00 |
juhdanad |
so the Minetest world has to be continuous. |
19:02 |
celeron55 |
the api (and most of the internals) is designed to abstract away mapblocks and that's for very good reasons |
19:03 |
celeron55 |
it's very annoying to try to do continuous things with a non-continuous api |
19:04 |
nore |
#5598 updated to fix the remaining problem |
19:04 |
ShadowBot |
https://github.com/minetest/minetest/issues/5598 -- Add configurable key bindings for selecting next/previous hotbar item and changing the volume by Ekdohibs |
19:04 |
nore |
and #5597 should be reviewed as well |
19:04 |
ShadowBot |
https://github.com/minetest/minetest/issues/5597 -- getTime refactoring by Ekdohibs |
19:11 |
juhdanad |
Does anyone know if there are client side object references already? |
19:12 |
nore |
juhdanad: you mean references to entities in the client lua api ? |
19:12 |
juhdanad |
Yes! |
19:12 |
nore |
I don't think so yet |
19:13 |
juhdanad |
Well, I'm looking forward to them, they are required for pointed things. |
19:13 |
nore |
ah, indeed |
19:14 |
celeron55 |
commented 5597 and edited the comment a few times |
19:14 |
celeron55 |
it doesn't seem like good quality code |
19:16 |
nore |
ah, saw the edits |
19:16 |
nore |
I guess now the code is rebased that ShadowNinja can get a look at it indeed |
19:17 |
celeron55 |
i don't think the code even knows what it's trying to achieve at this poin |
19:17 |
celeron55 |
+t |
19:17 |
celeron55 |
somebody has to define that first |
19:34 |
|
kaeza joined #minetest-dev |
19:51 |
|
rubenwardy joined #minetest-dev |
20:02 |
|
kilbith joined #minetest-dev |
20:12 |
|
kilbith_ joined #minetest-dev |
20:20 |
nerzhul |
juhdanad, no entity objects in client yet |
20:20 |
nerzhul |
csm* |
20:20 |
juhdanad |
Okay, thank you. |
20:20 |
juhdanad |
I suppose they will be read-only. |
20:22 |
nerzhul |
exact, it's a server object shown on client |
20:22 |
nerzhul |
but we can permit some things like adding texts over it for example |
20:23 |
juhdanad |
So graphics can be modified. |
20:28 |
sofar |
please don't move the sign problem to entities on the client |
20:29 |
* VanessaE |
looks forward to "the sign problem" being fixed enough to make signs_lib little more than a shell :) |
20:29 |
|
Tmanyo joined #minetest-dev |
20:32 |
nerzhul |
sofar, please review my player to db PR |
20:32 |
rdococ |
sign problem? |
20:32 |
sofar |
eating lunch, then afk again |
20:33 |
nerzhul |
okay :) |
20:36 |
juhdanad |
rdococ: #1367 |
20:36 |
ShadowBot |
https://github.com/minetest/minetest/issues/1367 -- Proper display of text on the surface of a node(box) |
20:37 |
rdococ |
ah |
20:37 |
rdococ |
k |
20:43 |
|
octacian_ joined #minetest-dev |
20:44 |
|
octacian joined #minetest-dev |
20:44 |
|
octacian joined #minetest-dev |
20:51 |
juhdanad |
#5186 is rebased. |
20:51 |
ShadowBot |
https://github.com/minetest/minetest/issues/5186 -- Soft node overlay by juhdanad |
20:56 |
VanessaE |
juhdanad: I was wondering.. have you done any benchmark of the overlays versus normal nodes with equivalent, baked-in textures? |
20:57 |
VanessaE |
(since you mention being concerned about the extra geometry) |
20:57 |
juhdanad |
VanessaE: no, I have not. |
20:57 |
VanessaE |
ok. just curious. |
20:57 |
juhdanad |
I just tested it in-game. |
20:57 |
VanessaE |
(still looking forward to it going in :) ) |
20:58 |
juhdanad |
I don't know how to properly measure memory usage. |
20:59 |
VanessaE |
no worries. it probably doesn't add up to much, especially compared to the hacky method I use in e.g. blox and unifiedbricks. |
21:00 |
juhdanad |
In fact the only benefit of my approach is that only the surface is drawn. You can achieve the same effect with meshes. |
21:01 |
juhdanad |
(but indeed it makes a difference, because the surface is usually much smaller than the whole structure's volume) |
21:01 |
VanessaE |
that's what I do now, but your proper method has the advantage of hidden face removal |
21:02 |
VanessaE |
using meshes to simulate the effect means more than twice the number of visible faces |
21:04 |
VanessaE |
(because with the meshes, there are 12 faces, and engine can't strip away the hidden ones that are against some other node) |
21:04 |
VanessaE |
+the |
21:04 |
juhdanad |
That's true. |
21:08 |
|
TC02 joined #minetest-dev |
21:26 |
|
kilbith joined #minetest-dev |
21:40 |
|
kilbith joined #minetest-dev |
21:56 |
|
kaeza joined #minetest-dev |
22:07 |
|
Taoki joined #minetest-dev |
23:10 |
* benrob0329 |
mumbles about render-to-texture being handy for portals and fake mirrors |
23:10 |
rdococ |
adding render-to-texture might be nice |
23:10 |
juhdanad |
From Lua? |
23:11 |
rdococ |
yes |
23:11 |
benrob0329 |
Irrlicht supports it, but minetest doe not |
23:11 |
rdococ |
it would be nice |
23:11 |
rdococ |
I mean, sure, it might lag the game |
23:12 |
rdococ |
but not that much |
23:12 |
|
proller joined #minetest-dev |
23:12 |
juhdanad |
But then Lua modders should use OpenGl functions, matrices, vertices and so on... |
23:12 |
rdococ |
I, myself, wouldn't mind matrices |
23:12 |
rdococ |
some lua modders might not know what they are |
23:13 |
benrob0329 |
perhaps a sort of minetest.register_camera("name" {pos, fov, facedir}) |
23:13 |
rdococ |
yes |
23:13 |
rdococ |
facedir should be yaw and pitch |
23:13 |
rdococ |
hm |
23:13 |
juhdanad |
So if you have a camera, the world is rendered twice? |
23:13 |
benrob0329 |
tiles = { minetest.get_camera_by_name("name") } |
23:13 |
benrob0329 |
yes |
23:13 |
rdococ |
how about a camera entitySAO? |
23:14 |
benrob0329 |
so they need to be used sparringly |
23:14 |
juhdanad |
That halves FPS. |
23:14 |
rdococ |
Not if the resolution is lower |
23:14 |
juhdanad |
And the camera must not look at the tile you are currently rendering. |
23:15 |
rdococ |
if that happens, just assume a white or black texture |
23:15 |
rdococ |
portal does it |
23:16 |
rdococ |
I don't see why someone can't try. ofc there are more important things but it would be nice. |
23:16 |
rdococ |
you would have a texture modifier for getting a camera |
23:16 |
rdococ |
and parameters like horizontal flip, or vertical flip |
23:17 |
rdococ |
and whether that flip is relative to the player camera or not |
23:17 |
rdococ |
tho that would only take effect when player cameras have roll |
23:17 |
rdococ |
actually, you could just use [transform for that. but it wouldn't be relative to the player camera |
23:22 |
rdococ |
so will anyone consider it? |
23:26 |
VanessaE |
rdococ: I guess that is a 'no'. :P |
23:26 |
rdococ |
:c |
23:26 |
* rdococ |
is now sad |
23:27 |
benrob0329 |
:-( |
23:32 |
VanessaE |
as for the camera views thing |
23:32 |
|
proller joined #minetest-dev |
23:32 |
VanessaE |
if you have some node that would have a camera view on its surface, you wouldn' |
23:32 |
VanessaE |
... |
23:32 |
rdococ |
? |
23:33 |
VanessaE |
...wouldn't lose fps if the view were forced, by the engine, to only include that which you could ordinarily see if there were a hole in the wall there |
23:33 |
rdococ |
ah. that's true |
23:33 |
benrob0329 |
yes, but that'd need more complex code |
23:33 |
VanessaE |
that is, if the thing being displayed on the surface were simply more world on the otherside of the wall |
23:34 |
benrob0329 |
it would be, but possibly in another location |
23:34 |
VanessaE |
the same would theoretically be true of any such feature, really |
23:34 |
rdococ |
anyway, if not on nodes then at least on entities |
23:35 |
VanessaE |
nothing says, for example, that you couldn't restrict the view range of the "projected" area to some really low value |
23:35 |
VanessaE |
(say 20m) |
23:35 |
benrob0329 |
having both a "worldportal" and camera would be nice, camera for camera things, worldportal for portals and illutions |
23:36 |
VanessaE |
mirrors too, but yeat |
23:36 |
VanessaE |
yeah* |
23:36 |
benrob0329 |
for eg, a worldportal could just stich two areas together |
23:37 |
benrob0329 |
whereas a camera would render two views |
23:37 |
rdococ |
if you don't want the code to be too complicated you could restrict the worldportal to grid coordinates and to the cardinal directions |
23:37 |
benrob0329 |
that would work |
23:38 |
benrob0329 |
however, you'd have to figure out how to make worldportals not render over the portal "frame" |
23:39 |
rdococ |
perhaps |
23:39 |
rdococ |
it depends on how you go about it |
23:40 |
VanessaE |
now, I could see a render-to-texture-once feature being useful |
23:40 |
rdococ |
most implementations of worldportals use cameras anyway |
23:40 |
VanessaE |
like if you wrote a teleporter mod and you wanted a menu (as in Sokomine's travelnets), but with previews of the target areas |
23:41 |
benrob0329 |
or a wormhole mod |
23:41 |
benrob0329 |
tardis |
23:41 |
benrob0329 |
etc |
23:41 |
VanessaE |
or even have it just go to one location, and have a preview of the area generated once in a while as the back-inside of the booth |
23:42 |
rdococ |
possibly |
23:42 |
VanessaE |
so, don't bother to render it in realtime |
23:42 |
benrob0329 |
perhaps at 1 fps or something |
23:42 |
VanessaE |
once a second would be more than enough |
23:42 |
rdococ |
I still think a realtime option should be offered |
23:42 |
VanessaE |
yesd |
23:42 |
benrob0329 |
or have that be configurable |
23:43 |
benrob0329 |
however, view tracking would be hard |
23:43 |
rdococ |
yeah |
23:43 |
rdococ |
so that when you look from a steep angle, you see the steep side of the other side of the portal |
23:43 |
benrob0329 |
that is where a worldportal-stick the meshgen together thing would be useful |
23:43 |
VanessaE |
so don't make it track the view then |
23:44 |
rdococ |
but that would look kinda ugly |
23:44 |
rdococ |
sure, it's better than nothing but it would be worse than a realtime implementation |
23:44 |
benrob0329 |
you could do that, but it would ruin the illution |
23:44 |
VanessaE |
now someone just has to code it. |
23:45 |
|
xerox123 joined #minetest-dev |
23:45 |
rdococ |
I would rather someone code it realtime |
23:45 |
benrob0329 |
i think having an fps option would be good |
23:46 |
VanessaE |
something like that should be settable from Lua, from the mod |
23:46 |
rdococ |
yes |
23:46 |
VanessaE |
but with the client able to limit the fps |
23:46 |
rdococ |
and view tracking |
23:46 |
VanessaE |
so the mod could ask for a realtime view of something, but the client could limit it to, oh, say 5 fps if the user wanted to |
23:46 |
benrob0329 |
rendered at the current fps if set too high (or nil) |
23:47 |
benrob0329 |
but also a worldportal option for things that would need camera tracking |
23:51 |
* rdococ |
waits for someone to care |
23:51 |
rdococ |
s/someone/a coder/ |
23:51 |
VanessaE |
they're waiting for you to code it. |
23:52 |
rdococ |
wait |
23:52 |
rdococ |
they're waiting for _me_ to code it? I'm experienced with lua modding but not in the C++ core |
23:52 |
rdococ |
unless I can somehow do it in a mod |
23:53 |
VanessaE |
theoretically you could |
23:53 |
VanessaE |
but it would be horrendously slow and hacky |
23:53 |
rdococ |
exactly |
23:53 |
benrob0329 |
here, just use the Tardis' telepathic circuits |
23:53 |
benrob0329 |
:P |
23:53 |
VanessaE |
ok guys getting offtopic here now |
23:53 |
rdococ |
that aws just benrob0329 |
23:53 |
rdococ |
wa* |
23:53 |
rdococ |
was* |