text:
Probably invalid code in engine.js

Please see the very first lines in engine.js, should I submit a PR to remove them?
https://github.com/godotengine/godot/blob/4c1a5d9cfe2da761bfe17d52126deabc1f1c1bd3/platform/javascript/engine.js#L1-L5

That file appears to be included after https://github.com/godotengine/godot/blob/4c1a5d9cfe2da761bfe17d52126deabc1f1c1bd3/platform/javascript/pre.js, so while the beginning of engine.js may look invalid, the combination actually is valid.

Indeed, https://github.com/godotengine/godot/blob/cef310e0ea0f8e7f3621e9ba29a567f09fb51beb/platform/javascript/SCsub#L23-L25 seems to use this as a wrapper. It's probably fine then, but I would expect at least a comment suggesting such scenario and pre-empting confusion.

authors: Calinou janisozaur


text:
Can't get Android screen size

Godot version:
Godot 3.0.6

OS/device including version:
Android 8.0/ Huawei Mediapad M5 8.4"

Issue description:

In the game a circle is supposed to reappear at the top of the screen once it goes out at the bottom. I do this by measuring coordinates and the function "OS.get_screen_size().y". On my laptop this works without any issues, but on my tablet it stays outside of the screen for a few seconds. I take it that this is because "OS.get_screen_size().y" isn't returning the correct value.
Steps to reproduce:
Minimal reproduction project:

Did you try with get_viewport().size or get_viewport_rect()?

Can anyone still reproduce this bug in Godot 3.2.3 rc3 or any later release?

Closing due to lack of update. Please comment if you can still reproduce this issue in the latest stable version of Godot.

source: gharchive/issue

authors: HumanDuck23 KoBeWi Zylann

repo: godotengine/godot

license: MIT

license_type: permissive

license_source: github-api


text:
Debug line drawing

Easily drawing world space debug lines, which are only visible in debug/editor builds, is very useful.
Unity has Debug,DrawLine and Debug,DrawRay for this purpose. Will Godot have something similar?

This issue doesn't specify 2D or 3D, since 2D already supports immediate line drawing.

Closing in favor of https://github.com/godotengine/godot-proposals/issues/112, as feature proposals are now tracked on the Godot proposals repository.

authors: Calinou HuvaaKoodia kaadmy


text:
look_at rotating 180 degrees

Godot version:
3.2 dev
OS/device including version:
Windows 10 x64 / NVIDIA GeForce GTX 1060 6GB / Intel Core i7 4790K
Issue description:
I  want the front face of the cube to look_at the camera.
So I  did:
       $Cube.look_at($Camera.translation, Vector3(0, 1, 0))

But for some reason, when  this is executed, it shows the rear face , like  rotating the cube 180 degress horizontally before running the look_at.

Whitout look_at:

... and with:
extends Spatial

func _ready() -> void:
    $Cube.look_at($Camera.translation, Vector3(0, 1, 0))

Minimal reproduction project:
teste.zip

-Z is forward. If anything, the problem is that "Front View" looks at the back of things.

The front direction is negative Z in Godot, so you need to swap your textures for "Front" and "Rear".

Ok, now with a known mesh from blender:

and...
	$StaticBody/Suzanne.look_at($Camera.translation, Vector3(0, 1, 0))

Suzanne doesn't like me! I say: "look at me, Suzanne!" and she turns her back...

Do you think it's correct?

Yes, that's the correct behavior. The model you imported is looking back. Forward in Godot is negative Z, so the back of Suzanne's head is treated as the forward direction.
You will also notice that the camera's default direction is this way - the camera looks forward by default, such that if you offset an unrotated camera by Vector3.FORWARD, it moves forward.
To fix the problem, rotate the model in Blender before exporting.

Yes, this is correct behavior, you should turn your model 180° in blender, so that they face the opposite direction.
Closing as this this expected.

Yes, that's the correct behavior. The model you imported is looking back.

The model is by all means correct. I think he is right, Godots look_at() got it right for the camera but backwards for another objects. Check it yourself:
cube.zip

Godot uses OpenGL conventions, and in those -Z is forward. The look_at method is working fine.
This is at most an issue with the glTF importer, which could transform imported scenes to make both conventions match.

This is at most an issue with the glTF importer, which could transform imported scenes to make both conventions match.

It's pretty much the same convention of all Godot supported import formats, good luck with that;)

@capnm Godot only supports collada, glTF and wavefront OBJ formats as far as I know.
Collada uses -Z as the forward direction and OBJ seems to not specify any forward direction (even though in Blender it uses -Z as forward by default).
So if you are going to add some witty comment, at least try to check you are actually right.

So if you are going to add some witty comment, at least try to check you are actually right.

Whatever, I personally (and the OP) found that funny, of course we can turn the object back ...
The import of the same model in glTF, escn and collada and the results seem to be clear:

Doesn't matter if it is an OpenGL convention.
The fact is that this counter-intuitive, so much that it has generated this confusion with me (and certainly will generate more confusion in the future).
Everything may have a logical explanation, but not necessarily justifiable.
I leave here my suggestion to rethink this aspect (or eventually create an additional look_at command that behaves in the traditional way).

@rogeriodec That's a great idea. I was not aware of the glTF standard, which has forward as +Z (and therefore facing back towards the camera), since it's the opposite of forward on objects in both Godot and Unity.
I don't see any reason why we can't add a look_at_gltf method as well.

I don't see any reason why we can't add a look_at_gltf method as well.

Great. How to put this suggestion for develepment?

I don't see any reason why we can't add a look_at_gltf method as well.

Because it is bloat.
We are not going to provide a function for each existing convention. After what? We define a Vector3.FORWARD_GLTF ? That 's not reasonable.
Godot follows opengl convention, that' s it.

Actually it's just one line code to rotate the model back or you could parent the model in a backwards rotated empty. I would probably just improve the documentation https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#introducing-transforms
At least now, all importers visually match the view of Blender and Godot, without having to adjust any options. Guess what happens, if you call imported-glTF-model.lookAt(me) in an other engine:

Actually, I just had a much better idea. What if there was simply a way to pass in a vector that indicated which direction of the object is "forward"? For example, this could be useful if I wanted to make a game where characters walk around on spheres, and I want their legs to point inward.

This is extremely counterintuitive, especially considering that the front view is viewing an object from the "normal" side, the one that's considered "front" in most 3d packages.
Any change it would be possible to add a checkbox to the project settings that would reverse z axis?

authors: JFonS aaronfranke capnm groud isnt-alice raymestalez rogeriodec


text:
GDScript doesn't issue an error when self-defining a local variable with the same name as a member

Godot 3.1.1
The following code fails as expected:
func _ready():
	var s = s

But this one succeeds and prints "null", but it should either issue an error too, or properly shadow s (with right-hand s being member, and left-hand s being local).
var s = 42

func _ready():
	var s = s
	print(s)

Seen on https://godotengine.org/qa/47663/instancing-same-scene-godot

Tested on Python 3, it throws an error there, we should likely do the same:
Python 3.7.3 (default, Apr  4 2019, 08:55:10)
[GCC 8.3.1 20190329] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> s = 42
>>> def test():
...     s = s
...     print(s)
...
>>> test()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in test
UnboundLocalError: local variable 's' referenced before assignment
>>> def test2():
...     s = 5
...     print(s)
...
>>> print(s)
42
>>> test2()
5
>>> print(s)
42

@akien-mga your example from python is not necessarily relevant because in python you cannot have a global and local of the same name accessible at the same time (python 3.7.4):
s = 42

def foo():
    print(s)                    # reference global, 42
foo()

def bar():
    s = 3                       # local variable setting, global is not accessible anymore
    print(s)                    # refernce local, 3
bar()
print(s)                        # 42

def baz():
    global s
    s = 3                       # set global to 3
    print(s)                    # reference global, 3
baz()
print(s)                        # 3

so, python example doesn't help much.
let's take a look at JavaScript (1.8.5):
$ js
js> var s = 42
js> function foo() {
var s = s
print(s)
}
js> foo()
undefined
js>

looks like the problem is the same as in Godot.
So, let's take a look at TTCN-3 (using the proprietary compiler):
module main
{
    const integer s := 42;
    function foo() {
        var integer s := s;
        log(s);
    }
    control { foo(); }
}

Output of compiler:
main.ttcn3:5:21: error: #88 redeclaration of `s', already declared in line 3:19
    5 |         var integer s := 3;
      '                     ^

So, as far as GDScript is meant to be easy for everyone to understand, I propose to give up the shadowing and forbid a redeclaration of s.

@akien-mga your example from python is not necessarily relevant because the problem is about member variable not global variable. it's kind of similar, but different.
So, let's take a look at this example with member variable:
class C:
    def __init__(self):
        self.s = 42

    def foo(self):
        s = s                   # UnboundLocalError
        print(s)

    def bar(self):
        s = self.s
        print(s)                # 42
        s = 3
        print(s)                # 3
        print(self.s)           # 42

c = C()
# c.foo()
c.bar()

In python, one must use self prefix, so the situation is kind of different. So for GDScript, the two possibilities are on the table: shadowing and forbidding redeclaration (no shadowing). Since GDScript is meant to be simple and readable for anyone, I'd prefer not to introduce shadowing, as for newcomers it will be a source of very painful bugs.
P.S. JavaScript (1.8.5) seems to have similar problem (if we're talking about globals):
$ js
js> var s = 42
js> function foo() {
var s = s
print(s)
}
js> foo()
undefined
js>

Still valid in 98ee852

There is a shadowing warning now and you can turn it into an error, so this is resolved.

authors: KoBeWi Scony Zylann akien-mga


text:
NON WORKING ANIMATED SPRIT

Godot version:

3.1
OS/device including version:

ubuntu 18.04.2 LTS , intel chip
Issue description:

my animated sprit does not working
when i press up the player jump and it play the first frame and ignore the rest
there is for frames but just the first who play
Steps to reproduce:
create animated sprit add frames to it and run the geme
platformer 2.zip
Minimal reproduction project:

Your problem lies here:
if not $Sprite.play("attack"):
    $Sprite.play("idle")

You are continuously playing "attack" and "idle" animations (btw, play() isn't for conditions, it just plays the animation) and they override your "jump".
That said, it's obviously not a bug in Godot. Next time if you are not sure about something, try asking on other community channels first. GitHub is only for issues with the engine.

The character doesn't jump because your code is trying to play attack and idle and jump all at once, every frame. It works if only jump is called, but because you call different animations before, it starts from the beginning, which is expected.
So you are basically not using AnimatedSprite correctly. To fix this, you should start only one animation at a time, or better, play it just once, at the frame where the jump starts, and it will animate until you tell it to play another animation (no need to call play() every frame).
Note: in your code you play atack and attack. But attack doesn't exist, only atack is defined.

thanks

authors: KoBeWi Zylann dijam8


text:
select mode is changed to another when 2d or 3d viewport is not focused.

reproduce steps.

create a node
make editable node name by double click
try to change name to qwe

this will change select mode to another continuously
edit : I found it happens also when 2d or 3d viewport is not focused

What do you mean exactly by "select mode is changed to another"?

I not sure what I should call it.
Select mode by q
Move mode by w
Rotation mode by e

I did more tests.
This Select/Move/Rotation mode is changed when it's not focused.
Open any window(Project Settings, Project Export Settings, Editor Settings...) and try to type q, w, e.

When you edit the node name, does it contain any of these letters (Q, W and E)?
If it does, it means there is a window focus issue which keeps the viewport to receive keyboard input while renaming.

Ah thanks, I had not understood that you mean the select mode in the viewport. Looks like LineEdit needs to stop the propagation of keyboard events @MarianoGnu :)

I'll take a look, i'm very sure propagation is stopped in LineEdit

This is my fault. It was introduced by #3269. Fixing ASAP.

as I commented above, there is more problems.
This Select/Move/Rotation mode is changed when viewport is not focused.
Open any window(Project Settings, Project Export Settings, Editor Settings...) and try to type q, w, e.

just type q, w, e while another window is opened.

The above PR should fix this particular issue of editors handling input when a dialog is visible. I am not sure if there is another situation that should be prevented. Currently, both canvas and spatial editor will check if they are visible and if there is no dialog.

authors: MarianoGnu RebelliousX akien-mga neikeq volzhs


text:
Mono - Cannot build Android export templates, linker command failed with exit code 1

Godot version:
Master
OS/device including version:
OS: Ubuntu 19.10 eoan
Kernel: x86_64 Linux 5.3.0-24-generic
Mono 6.4.0.198
Android SDK Build Tools 29.0.2 (Also reproducible in 27, 28)
Android NDK 17.2.4988734 (Also reproducible in 18, 19, 20)
Issue description:
Cannot build export templates for Android from a Linux host, I can build the editor fine
Error:
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
scons: *** [bin/libgodot.android.opt.debug.armv7.neon.so] Error 1
scons: building terminated because of errors.

Full Log: https://pastebin.com/FTcTbmnW
Steps to reproduce:
scons -j6 p=x11 tools=yes module_mono_enabled=yes mono_glue=no
bin/godot.x11.tools.64.mono --generate-mono-glue modules/mono/glue mono_prefix=/usr
scons -j6 p=android target=release_debug tools=no module_mono_enabled=yes mono_prefix=/usr

You're building Godot for armv7 yet you're trying to link against x86_64 Mono. Even if you were building Godot for Android x86_64 you can't link the Linux Mono runtime as it's not the same for Android.
You need to build Mono for Android as described here: https://github.com/godotengine/godot-mono-builds#android. Then pass the result to SCons: mono_prefix=$HOME/mono-installs/android-armeabi-v7a-release (that's the default output path unless specified otherwise).
See: https://docs.godotengine.org/en/latest/development/compiling/compiling_with_mono.html#targeting-android

authors: nathanwfranke neikeq


text:
Mono crash using SQLite - Dapper

Godot version:
3.2.1 stable mono
OS/device including version:
Debian 10
Issue description:
When i run the project crash. See file attached as result
I'm using
using Mono.Data.Sqlite;
using Dapper.Contrib.Extensions;
Steps to reproduce:
Add the follow code in any _ready function
Add the class Employee too
Change Log.Printi with Print
I have this configuration in .csproj
  <ItemGroup>
    <PackageReference Include="CsvHelper">
      <Version>15.0.1</Version>
    </PackageReference>
    <PackageReference Include="Dapper">
      <Version>2.0.30</Version>
    </PackageReference>
    <PackageReference Include="Dapper.Contrib">
      <Version>2.0.30</Version>
    </PackageReference>
    <PackageReference Include="Mono.Data.Sqlite">
      <Version>1.0.61</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /

Minimal reproduction project:
       string strCheckTable = "SELECT name FROM sqlite_master WHERE type='table' AND name='{Employees}'";
        string strCreateTable = "CREATE TABLE Employee (Id intchar (2), FirstName nvarchar(32), LastName nvarchar(32))";

        string cs = "Data Source==SqliteTest.db";
        using (var con = new SqliteConnection(cs))
        {
            con.Open();

            using (var _checkTableCmd = new SqliteCommand(strCheckTable, con))
            {
                if (_checkTableCmd.ExecuteNonQuery() == 0)
                {
                    Log.Printi("Table employees not found. Creating.. ");

                    using (var _createTableCmd = new SqliteCommand(strCreateTable, con))
                    {
                        string _rows = _createTableCmd.ExecuteNonQuery().ToString();

                        Log.Printi("Rows addded ", _rows);
                    }
                }
                else
                {
                    Log.Printi("Table employees found");
                }
            }
            Employee _get = con.Get<Employee>(0);
            Log.Printi(_get);
        }
[Table("Employee")]
public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

mono_crash.35eaae22c.0.json.zip

I think I found the problem:
Employee _get = con.Get(0);
The Get method require not the first record but the Id value (I read again the Dapper documentation)
Means the Employee table the first record "Id" is 1 as value

Also I use string _tableFound = _checkTableCmd.ExecuteScalar() as string; to check if the table exist. Seems ExecuteNonQuery return every time 0. With ExecuteScalar I'll check the table name instead.
You can close this one for now - it remain as troubleshooting I guess-.

Closing per @git2013vb's request.


text:
MemoryPool size hardcoded?

Godot version:
3.2.1rc1-custom
OS/device including version:
Ubuntu 19.10
Issue description:
Why MemoryPool amount is hardcoded?
Just on the file core/pool_vector.h there are the declaration:
static void setup(uint32_t p_max_allocs = (1 << 16));
I am asking if there are a reason to do that.
I need more memory for a module that create voxels and I will change it for myself.
But I see that in Godot 4.0 the memory pool is rewrited. So I hope it can allocate by demand. Am I right about this?
And will the 3.2.x series remain hardcoded? Or are there some plans to make that value a project setting?

And will the 3.2.x series remain hardcoded?

Yes. It would be extremely unlikely for something this low-level to be changed in a stable branch.

Maybe can be implemented some "advanced" and "only for experienced users" tab under the settings dialog And will print a warning if someone wants to change something there.
It is just an idea.

@Anyeos We don't have a way to signal settings as "advanced" yet, but this may be added in 4.0.

I don't think it could be a setting anyway, as PoolVector is too low level and you can't access Project Settings before having it initialized. This would have to be set a compile time.
You're also the first user to hit a limit on the size of the MemoryPool AFAIR, and the problem is fixed in 4.0 as there's no MemoryPool anymore, so I suggest you do a custom build with an increased value (or since it's a custom module, maybe you can work it around with e.g. std::vector?).

I don't think it could be a setting anyway, as PoolVector is too low level and you can't access Project Settings before having it initialized. This would have to be set a compile time.
You're also the first user to hit a limit on the MemoryPool allocs AFAIR, and the problem is fixed in 4.0 as there's no MemoryPool anymore, so I suggest you do a custom build with an increased value (or since it's a custom module, maybe you can work it around with e.g. std::vector?).

I agree. But I think there will be more users hitting memory limit if they use 3D under a platform with more power than a movile device.
Anyway always this kind of problems I try to solve compiling a custom build.
I hope Godot 4 can allocate memory dynamically instead statically for that purpose at least.
The module is https://github.com/Zylann/godot_voxel and it is not mine. But I just wanted to deploy a big voxel terrain and that is how I hit the memory limit so easily.

I just encountered this issue while running a test scene. In my particular case, I'm calling Mesh.surface_get_arrays() on a few meshes very often and I'm storing the results in an array.
Since in my case a lot of the arrays are effectively the same, I worked around this issue by caching all Pool*Arrays and if a duplicate is found in the cache, the cached version is returned and the other array is discarded.
Example code for a caching singleton

extends Node

var _cache := {}

func dedup_immutable(object):
	if object in _cache:
		return _cache[object]
	else:
		_cache[object] = object
		return object

Related: #8279

I had the same problem with large voxel maps.  I think with more folks doing memory intensive things that this should probably be fixed.  To change the code took all of about 30 minutes and a little testing.  I can submit a PR if you want.

I can submit a PR if you want.

Please do, but keep in mind pull requests should be opened on the master branch before being opened on the 3.x branch :slightly_smiling_face:

Since 4.x doesn't contain the code anymore that would be pretty tough.  :D
On Tue, Jun 15, 2021 at 6:32 PM Hugo Locurcio @.***>
wrote:

I can submit a PR if you want.
Please do, but keep in mind pull requests should be opened against the
master branch before being opened against the 3.x branch for backporting
🙂
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/37154#issuecomment-861878405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADRTNQZ2BJS6GWBUYOXEYDTS7IH7ANCNFSM4LOYAB3Q
.

@greenlion Bump 🙂

authors: Anyeos Calinou Demindiro aaronfranke akien-mga greenlion


text:
Custom StyleBox not showing in Tabs' panel

Godot version:
3.2.1 mono
OS/device including version:
Windows 10
Issue description:
When I create a Tabs node and add a custom style to the panel (or anything), the style will not show.  Even if I take the Tabs node out of the container, it still will not show the custom style.
Steps to reproduce:
Create empty project
Add Node2d
Add a TabContainer to Node2d
Add a Tabs node to the TabContainer
Create a Custom Style and select StyleBoxTexture
Place the godot icon.png to the texture field.
The panel remains blank.
Minimal reproduction project:

A minimal reproduction project would be appreciated.

Should I just zip up the project folder and post it, or is there a better way?

The structure is:
Node2d
----TabContainer
---------Tabs
Even with the Node2d as the root, if I apply the same StyleBox to the TabContainer, everything displays correctly.  It is only the Tabs node that is not displaying and StyleBox

Hi, I have same problem
Also:

signal issue: they not work
Layout setting different between tabs (tried Full Rect)
TestTabs.zip

Thanks for the details @git2013vb and the test project. I can confirm that it works as intended, @ondesic was misunderstanding how to use Tabs, which is not meant to use in TabContainer (those two nodes have similar features but are otherwise unrelated, see https://github.com/godotengine/godot-proposals/issues/2129).

I checked and the only Custom StyleBox that I don't know where is is "Panel" If someone can give me an hint about it - I can't see it nowhere :)

That's correct, the "panel" stylebox doesn't seem used in Tabs, I'll remove it.

authors: aaronfranke akien-mga git2013vb ondesic


text:
texelFetch for Vulkan by default

master 0287508
RTX 2070 SUPER, KDE Neon
Migrating project to Vulkan renderer,
texelFetch fails to compile, reports
E 0:00:00:0463   _compile_variant: Failed parse:
ERROR: 0:564: 'texelFetch' : required extension not requested: GL_EXT_samplerless_texture_functions
ERROR: 0:564: '' : compilation terminated
ERROR: 2 compilation errors.  No code generated.
  <C++ Source>   servers/rendering/rasterizer_rd/shader_rd.cpp:335 @ _compile_variant()

Steps to reproduce:
Create a shader material with texelFetch

Yeah, I see the same bug on Windows/GTX1060 too

For the record, this doesn't appear to be related to #40133.

authors: Calinou Chaosus Wesxdz


text:
Ctrl-C copies output text instead of node path

Godot version:

3.2.4 RC 1
OS/device including version:

Windows 10
Issue description:

I hit Ctrl-C with a node selected in the Scene docker. It copied the output text instead of the node's path. Right-clicking the node informs me that the shortcut is Ctrl-C, but hovering over the Output's Copy button also informs me that the shortcut is Ctrl-C. So both have the same shortcut.
Steps to reproduce:

Select node.
Hit Ctrl-C.
Hit Ctrl-V somewhere.

Minimal reproduction project:

Clarification: The output panel must be open for this bug to be reproduced.

It's yet another of those editor shortcut focus bugs, which is likely fixed in the master branch but it requires hacky workarounds to be fixed in the 3.2 branch. cc @EricEzaM

Not an issue on current master.
However it is still not working as intended actually. The button shortcut (Control + C) does not work because if focus is given to the log, the Control + C event is captured by the _gui_input of the RichTextLabel, and it never makes it to the logic in the EditorLog. So when you highlight and copy things from the log using Control + C, you are actually copying using RichTextLabel and not the "copy" button.

authors: Calinou EricEzaM ShatReal dalexeev


text:
GDNative API casting

Godot version
latest
System information
Does not matter
Issue description
Currently, on the engine side of the GDNative API casting is done using C style (using round brackets) in the way like this:
void GDAPI godot_string_new(godot_string *r_dest) {
	String *dest = (String *)r_dest;
	memnew_placement(dest, String);
}

Maybe it would make sense to replace those casts with C++ casts?
Steps to reproduce
There are no steps
Minimal reproduction project
No response

Hi, latest is not a version, so please specify if you are using a stable version, and which one is it, or if you are using master, and at which commit.

authors: IlyaStuurFedorov pycbouh


text:
Visible Collision Shapes (Debug) for Raycast node stucks on red color after first hit

Godot version
3.4.beta4.official [6a058cbf3]
System information
Windows 10, GLES3
Issue description
In 3.4.beta4.official [6a058cbf3], if "Visible Collision Shapes" setting is enabled, a raycast object is rendered as a blueish narrow pyramid.
In 3.3.2 stable, the same object is rendered as a orange line:

During the raycast detects a hit, they both render the shape red:

But after the collision (when there is no hit anymore), the v3.4 one stays red:

Steps to reproduce
You just need to collide a raycast with something.
This is the whole moving object in my scene:

The script only contains simple impulse force funcitons to be able to move it with arrow keys.
And this is the whole scene:

Minimal reproduction project
Here is the project.
SampleRaycastBug.zip
Sorry I couldn't delete a plug-in. Even it is not enabled, Godot file system doesn't let me delete it and if I delete it in Windows File Explorer, I can't open the project because Godot crushes during opening the project.

This is likely a regression from https://github.com/godotengine/godot/pull/49726.
@fabriceci Do you know what could be causing this?

Closed by #52056 on 3.x (issue already fixed on master).

authors: Calinou pouleyKetchoupp starcin


text:
seed() not working correctly with float value

randomize()
seed(0.1)
print(randf())
seed(0)
print(randf())

It print the same value.
On documentation it says:
Nil seed ( float seed )
Set seed for the random number generator.

That's a bug in the binding, Math::seed expects an integer.

authors: akien-mga puppetmaster-


text:
Atlas does not work at a 3D object

Godot version
3.4.2
System information
Windows 7     64-bit
Issue description
atlas (.godot)  works not correctly
(json hash )  the importer does not work
(XML) works not correctly, each resource in the atlas occupies 32 MB
I use Free texture packer
https://free-tex-packer.com/
Steps to reproduce
shader

single texture

atlas resource (.godot)

---------------------------------------- Project description---------------------------------------
I created material which can be customized

Example of textures:
standard texture

texture (shield)

texture (helmet)

texture (weapon)

for convenience I created the atlas

Minimal reproduction project
download project (25mb):
https://anonfiles.com/L1eah7D7x0/Godo_op_7z

AtlasTexture is only designed to be used in 2D, not 3D.


text:
cannot receive UDP packets in Godot 4 Beta 5

Godot version
Godot 4 Beta 5
System information
Windows 10
Issue description
packet message is not received, no errors in Godot 4
packet message is printed in Godot 3.5
Steps to reproduce

send UDP packet to port
Godot 3.5 prints message, Godot 4 doesn't

Minimal reproduction project
udp_demo_godot3_working.zip
udp_demo_4_broken.zip

As per https://github.com/godotengine/godot-docs/pull/6393:

is_connected_to_host() was removed from StreamPeerTCP and PacketPeerUDP as per GH-59582.

get_status() can be used in StreamPeerTCP instead.
is_socket_connected() can be used in PacketPeerUDP instead.

Thank you, I'm sorry, I don't think I understand, the linked documentation only references PacketPeerUDP and not UDPServer, should I only be using PacketPeerUDP even though I don't intend to send packets, only receive?
based on that I tried https://docs.godotengine.org/en/latest/classes/class_packetpeerudp.html#class-packetpeerudp-method-wait

var socket = PacketPeerUDP.new()

func _ready():

	if socket.bind(4592,"*") != OK:
		print("Failed to bind to port 4592")
		return
	else:
		print('started on port 4592')

	while socket.wait() == OK:
		var data = socket.get_packet().get_string_from_ascii()
		print(data)
		if data == "end":
			return

and can't receive any packets

documentation has been updated and everything works now, closing, thanks!

authors: Calinou GK-GreyGhost


text:
Posing Polygon2D by Skeleon2D is not affected by bones transformation

Godot version
v4.0.beta.custom_build [3ef8d3e4e]
System information
Pop_OS! Linux, NVIDIA GeForce GTX 1050 Ti 4GB GDDR5
Issue description
When using Skeleton2D and Nonde2D with Polygon2D and rotating a bone, rotation pivot of Polygon2D seems not to be affected by its transformation.
Steps to reproduce
Create a project with Skeleton2D, Bone2D and assign them to some Polygon2D and rotate some bones
Minimal reproduction project
Here is project in Godot 4:
https://github.com/elmordo/SkeletonProblem_v4
https://youtu.be/BHGpk0PJ6s0
In Godot 3 works all fine:
https://github.com/elmordo/SkeletonProblem_v3
https://youtu.be/irPcaZ0ETEY

Seems like a duplicate of https://github.com/godotengine/godot/issues/71108

@clayjohn  I read the #71108 and yes, it is the same. And read your comment there

Right now to have rotations work correctly you need to set the polygon's pivot to be the origin (i.e. 0,0). This was not the case in 3.x, but due to how bones work in 4.0, it may be necessary.

so it is not bug and in Godot 4 we will have to set origin to [0, 0] and move texture around with Polygon2D.offset property?

so it is not bug and in Godot 4 we will have to set origin to [0, 0] and move texture around with Polygon2D.offset property?

I hesitate to say that as the new behaviour is really annoying and I would like for us to find a way to get back to the old behaviour if we can.
There is a button in the editor to place the root which sets the origin and Polygon2D.offset automatically, but it still feels like an unnecessary manual step

I hesitate to say that as the new behaviour is really annoying and I would like for us to find a way to get back to the old behaviour if we can.

Yep, it is really annoying, but it is still beta.

There is a button in the editor to place the root which sets the origin and Polygon2D.offset automatically, but it still feels like an unnecessary manual step

Where is this button? I can't see it (I have build from yesterday's evening - 3ef8d3e4e80887d21009abc84def627e8a1c031f ). This button can save my sanity :-D

Oh, sorry, my bad. I didn't thing of this. Thank you very much :-)
(also closing this issue as duplicate)

authors: clayjohn elmordo


text:
[4.0-rc1] Description not showing for gdscript properties in inspector

Godot version
4.0.rc1
System information
Window 10
Issue description
Relate to #59270

Steps to reproduce
Code use in image
extends Node2D

## Test
@export var test = 0

Minimal reproduction project
description_not_show.zip

I have the same issue with Godot 4.0 Stable on Linux.

I have the same issue with Godot 4.0 Stable on Linux.

Not fixed yet, this's on low priority I think. But it's on the go, so we need to wait because a lot of big issues need to fix first.

I bisected it and #71628 seems to be the PR that broke it.
CC @reduz

This seems to still be broken in 4.1.1, FYI.

Just started looking at Godot, doing the first 2D game tutorial in the docs and came across this same issue, still present in 4.2.1. Not a big deal by any means. I wish I knew enough to be able to try to open a PR and have a go at fixing it, but I'm nowhere near that level right now.

this is another "sometimes" bug.
I have scenes where I get tooltips, and others where I do not.
similarly, a team member is not getting tooltips in a scene where I do.

Also does not work using C#

Still happening on 4.3 stable.

This is kind of critical for me. I am shipping a project to a client and they need that documentation to understand how to work on it. I can confirm the observation by @Snayff  tho.
If it is not freshly written, the descriptions will not show up consistently.

I can't test right now, but there's a good chance that #95821 fixes this. I would be especially interested if folks could test out whether that PR also fixes C# comments. It should, but I don't have a local C# setup! Tagging @TheRedstoneScientist since you explicitly mentioned C# :)
You should be able to get the build artifacts by going to "Checks" and then "Artifacts"!

Quick update: did some quick tests with #95821 and it does indeed fix this issue at least w/ GDScript. It took launching the editor twice - probably something with cache propagation.

authors: Loregret NathanReus Snayff TheRedstoneScientist and-rad anvilfolk betalars h0lley neilfranci voithos


text:
Decals scale cause clustering artifacts

Godot version
v4.0.rc5.official
System information
Win 10, Vulkan API 1.3.224, RTX 4070 Ti
Issue description
Decal create clustering artifacts when non uniform Y size and Y scale:
https://user-images.githubusercontent.com/23294139/221375446-da8d20d2-70d6-4588-9dee-546522f6a722.mp4
Steps to reproduce
Decal size non-uniform (2,1,2)
Set scale non uniform (1,0.25,1)
https://user-images.githubusercontent.com/23294139/221375905-49411ca2-0cea-49da-ab18-2da4a8ed84dd.mp4
Minimal reproduction project
Decal_Clustering.zip

Does this occur with uniform scaling?

HI,
i can confirm this.
This issue only appears when using the transform - scaling.
Here a video how the issue looks like, if i use the transform-scale parameters:
https://twitter.com/WuotanStudios/status/1648257531590983688?s=20
If only the Decal-Size is used, everything works perfectly.

I can confirm this on 4.0.2 (Linux, GeForce RTX 4090 with NVIDIA 530.41.03). This only seems to occur with non-uniform scaling, not uniform scaling.

authors: Calinou JohnMeadow1 WuotanStudios


text:
Loading scene failed Godot didn't let me retargeting to fix the missing resources

Godot version
4.0 release
System information
Win11 Vulkan
Issue description
When my project is opened on another computer, due to the improper synchronization of files, the font file xx.ttf referenced by the tag in a certain scene .ttf does not exist in the current corresponding directory, of course, Godot opens the scene and fails, but the dialog box trying to repair the missing resource file does not have any entry information, so that the reason for the loading failure cannot be judged at all. Missing font files can only be found by comparing TSCN content. I think this is a bug?

Steps to reproduce
Create a scene and create a new label. reference a font, save it closed, delete the font file and the corresponding import file from disk, and open the project again.
Minimal reproduction project
N/A

The Load Errors dialog box is not displayed every time, but even if it does, there is nothing.

Can't reproduce, the dialog correctly lists the missing font.
Do you have some minimal reproduction project?

Currently 4.0.1rc2 new project does not have this bug, but it still appears in my project. Specifically, I will investigate further.

In my project, opening the project will restore the scene page before the last close by default. this problem occurs when one of the scene pages lacks font. when I close other scenes and only keep which scene is missing font, remove font file from disk. turning on this problem again disappeared.godot did not display any dialog box, and the value of the font resource is empty.

authors: CodeLazier KoBeWi


text:
[4.0] weird focus behavior on window with child windows

Godot version
v4.0.stable.official [92bee43ad]
System information
Fedora Linux 37 x86_64, Kernel: 6.1.13-200.fc37.x86_64, Intel i7-4710HQ (with integrated GPU)), Wayland
Issue description
When focusing on the child window, then on a different app (e.g. firefox), and then on the main window, the main window is very laggy. I have to re-focus on the child window and then on the main window for it to return to normal.
Here's a short video showcasing the issue: https://cdn.discordapp.com/attachments/477544613511692358/1087312133408170024/Screencast_from_2023-03-20_11-48-28.webm
Steps to reproduce
Have a project with multiple windows,
Focus on a child window, then on a different app, and then back on the main window
Minimal reproduction project
https://github.com/OsakiTsukiko/lishogi-client
commit: 9f3fcd15550e992b02f4150c66524959c6679397
branch: main
(altho, you need an account on lishogi.org to use it)

I'll test later with a more generic project and send it here

I have to re-focus on the child window and then on the main window for it to return to normal.

This sounds like the FPS limiter going haywire. You may be able to work around this issue by setting Unfocused Low Processor Mode Sleep Usec to 6900 (same value as Low Processor Mode Sleep Usec).

authors: Calinou OsakiTsukiko


text:
godot crashs when using snap installed dotnet

Godot version
v4.0.2.stable.mono.official.7a0977ce2
System information
Linux pop-os 6.2.6-76060206-generic #202303130630~1679424972~22.04~4a8cde1 SMP PREEMPT_DYNAMIC Tue M x86_64 x86_64 x86_64 GNU/Linux
Issue description
Use snap to install dotnet, crashs
sudo snap install dotnet-sdk --classic

As I found, when I install dotnet by snap, dotnet will be in  /snap/bin/dotnet
But godot can't get started, it shows errors:
(base) yingshaoxo@pop-os:~/Documents/Godot_v4.0.2-stable_mono_linux_x86_64$ OpenGL API 4.6 (Core Profile) Mesa 22.3.5 - Compatibility - Using Device: Intel - Mesa Intel(R) UHD Graphics (TGL GT1)

ERROR: The host fxr folder does not exist: /usr/share/dotnet/host/fxr
   at: try_get_path_from_dotnet_root (modules/mono/editor/hostfxr_resolver.cpp:323)
ERROR: .NET: One of the dependent libraries is missing. Typically when the `hostfxr`, `hostpolicy` or `coreclr` dynamic libraries are not present in the expected locations.
   at: find_hostfxr (modules/mono/mono_gd/gd_mono.cpp:126)
/usr/bin/zenity: symbol lookup error: /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37: undefined symbol: gst_codec_utils_caps_get_mime_codec
ERROR: .NET: Failed to load hostfxr
   at: initialize (modules/mono/mono_gd/gd_mono.cpp:405)
WARNING: Blend file import is enabled in the project settings, but no Blender path is configured in the editor settings. Blend files will not be imported.
     at: _editor_init (modules/gltf/register_types.cpp:70)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.2.stable.mono.official (7a0977ce2c558fe6219f0a14f8bd4d05aea8f019)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fa0e5042520] (??:0)
-- END OF BACKTRACE --
================================================================

Use microsoft script to install dotnet, works fine
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod 777 dotnet-install.sh
./dotnet-install.sh --channel 7.0

export PATH="$PATH:$HOME/.dotnet"

But if I install with microsoft script, dotnet will be in ~/.dotnet/dotnet
No crashs.
logs:
(base) yingshaoxo@pop-os:~/Documents/Godot_v4.0.2-stable_mono_linux_x86_64$ ./Godot_v4.0.2-stable_mono_linux.x86_64
Godot Engine v4.0.2.stable.mono.official.7a0977ce2 - https://godotengine.org
xkbcommon: ERROR: failed to add default include path /home/yingshaoxo/anaconda3/share/X11/xkb
OpenGL API 4.6 (Core Profile) Mesa 22.3.5 - Compatibility - Using Device: Intel - Mesa Intel(R) UHD Graphics (TGL GT1)

ERROR: The host fxr folder does not exist: /usr/share/dotnet/host/fxr
   at: try_get_path_from_dotnet_root (modules/mono/editor/hostfxr_resolver.cpp:323)
Editing project: /home/yingshaoxo/CS/test/godot_test
Godot Engine v4.0.2.stable.mono.official.7a0977ce2 - https://godotengine.org
xkbcommon: ERROR: failed to add default include path /home/yingshaoxo/anaconda3/share/X11/xkb
(base) yingshaoxo@pop-os:~/Documents/Godot_v4.0.2-stable_mono_linux_x86_64$ OpenGL API 4.6 (Core Profile) Mesa 22.3.5 - Compatibility - Using Device: Intel - Mesa Intel(R) UHD Graphics (TGL GT1)

ERROR: The host fxr folder does not exist: /usr/share/dotnet/host/fxr
   at: try_get_path_from_dotnet_root (modules/mono/editor/hostfxr_resolver.cpp:323)
WARNING: Blend file import is enabled in the project settings, but no Blender path is configured in the editor settings. Blend files will not be imported.
     at: _editor_init (modules/gltf/register_types.cpp:70)

Steps to reproduce
See Issue description.
Minimal reproduction project
No need.

I don't think Godot can see Snap-provided .NET due to sandboxing, but it shouldn't crash.

As recommended by Microsoft, make sure you set the DOTNET_ROOT environment variable to the path of your .NET installation. Snap won't set the environment variable automatically, so you have to do it manually. (See: https://learn.microsoft.com/en-us/dotnet/core/install/linux-snap#export-the-install-location). However, I don't know if this is all it takes to get a Snap installation working.
Also, please be aware that the dotnet-install.sh script is intended for CI scenarios and not to setup a development environment. (See: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script#purpose). The recommended way to install .NET is to use your distro's package manager.
As for the crash, the .NET version of Godot can't start without a .NET installation so if it fails to find one it should be showing a message (added by https://github.com/godotengine/godot/pull/73815) and then close itself:

I don't know if the closing process is clean. So maybe the crash is expected at this point.
In the future, we intend to allow starting the editor even when a .NET installation can't be found. This means the .NET features would be disabled so you won't be able to use them but it would allow you to use the rest of the Godot editor, and it's a prerequisite for Editor unification[^1].
[^1]: Currently there are two versions of the Godot Editor (standard and mono), we plan to have a single version instead which will support C# by downloading the necessary packages on-demand.

authors: Calinou raulsntos yingshaoxo


text:
Feature request: merge meshes

Merging meshes into one is very useful for performance because draw calls get batched, especially for static objects, or even procedurally generated ones.
I don't think that such a thing exists in the API yet (correct me if I'm wrong). It can probably be done by actually getting all vertices per surface from a Mesh and joining them together, but this is extremely slow to do in GDScript, and requires custom code in C++.
In Unity, the Mesh class has a CombineMesh method with some options like how submeshes (surfaces) are treated, or if transforms have to be applied etc: https://docs.unity3d.com/ScriptReference/Mesh.CombineMeshes.html
Asked on QA: https://godotengine.org/qa/12531/merge-meshes

Wouldn't it be better if we get autobatching of draw calls with the same Material, like Unity has?

That's dynamic and static batching, which is cool to have too, but different. I'm asking about the API possibility to merge meshes, because there are cases you want them combined in a specific way.

Godot already optimizes calls with the same materials, and static batching
in general will not give you much of a performance boost unless you have
thousands of different meshes.
If you have thousands of the same mesh, you can use instancing instead
which is more efficient
On Sun, Feb 19, 2017 at 2:50 PM, Marc notifications@github.com wrote:

That's dynamic and static batching, which is cool to have too, but
different. I'm asking about the API possibility to merge meshes, because
there are cases you want them combined in a specific way.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/7844#issuecomment-280935316,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z29l87JWgon2P_ThfvWozgQXKUen4ks5reIDtgaJpZM4MFWpT
.

Also, draw calls are cheap nowadays, and it will be MUCH cheaper in Godot
3.0 due to UBO/VAO.
Batching was mostly something really needed for DirectX9 level hardware.
On Sun, Feb 19, 2017 at 9:58 PM, Juan Linietsky reduzio@gmail.com wrote:

Godot already optimizes calls with the same materials, and static batching
in general will not give you much of a performance boost unless you have
thousands of different meshes.
If you have thousands of the same mesh, you can use instancing instead
which is more efficient
On Sun, Feb 19, 2017 at 2:50 PM, Marc notifications@github.com wrote:

That's dynamic and static batching, which is cool to have too, but
different. I'm asking about the API possibility to merge meshes, because
there are cases you want them combined in a specific way.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/7844#issuecomment-280935316,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z29l87JWgon2P_ThfvWozgQXKUen4ks5reIDtgaJpZM4MFWpT
.

Well, in case it's really about dealing with thousands of them, there is no API to do it. I'm also thinking about terrains (always coming back, this one example^^) or procedural things that cannot use instancing due to them possibly being lots of different meshes merged into one.
Is GridMap using instancing? Last time I tried it in 2.x I ran out of FPS really quickly, although all tiles were the same.

2.1 does not support instancing, but in 3.x it does
if you are looking for specific tools for specific use cases, let me know!
On Sun, Feb 19, 2017 at 10:33 PM, Marc notifications@github.com wrote:

Well, in case it's really about dealing with thousands of them, there is
no API to do it. I'm also thinking about terrains (always coming back, this
one example^^) or procedural things that cannot use instancing due to them
possibly being lots of different meshes merged into one.
Is GridMap using instancing? Last time I tried it in 2.x I ran out of FPS
really quickly, although all tiles were the same.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/7844#issuecomment-280967882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z26DqnGMCY38NVrIcTeiZfmEeXGBxks5reO2BgaJpZM4MFWpT
.

@Zylann when it comes to GridMap you can bake geometry, however you need to do this in ready from code, since inspector 'bake' attribute don't seems to be doing anything (https://github.com/godotengine/godot/issues/3850).  Also in case of gridmap there is some kind of performance issue if you have any kind of dynamic shadows on them (https://github.com/godotengine/godot/issues/3849). (Guess this one will go away in 3.0)

@kubecz3k I didn't know that, thanks for the tip. I use my own C++ module to bake voxel-based terrain, so I do my own batching anyways.
As a result I personally don't have a use case for mesh batching yet, though one case I have in mind is when you have many different static meshes drawn many times, which means instancing will be of little help due to the variety of models.
I'm looking forward to test intensive 3D again when 3.0 will be more stable.

Collada scenes come in as several mesh instances, they would be a prime target for such a treatment.
Also as of alpha 2, the same happens to obj.
P.s. Being interested in procedural stuff, another use case is definitely merging procedural parts into one mesh.

Any hope of this happening? Best I can do in scripting is by using meshdatatool, but this creates a surface for each of the original surfaces, so no improvement.

hello Mr. Zylann
Still with the same problem at v3.1.1 Stable?
Thanks for you time

@Perrottacooking not directly. I do use mesh batching in my voxel module because my concerns about having thousands of meshes were confirmed in various ways (mostly CPU bottleneck due to frustrum culling and eventually the GPU bottleneck). Could not use instancing here as well because it's not as efficient and prevents features like baked SSAO and face culling. So yeah I don't directly have this problem right now, since I kinda solved it by actually doing it, just in a different way. That wouldnt be viable in GDScript tho.
@Zireael07 did you need this?

Yes, batching several meshes into one is still necessary because eg. Collada imports are usually several meshes when they could easily be one.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

authors: Perrottacooking Zireael07 Zylann akien-mga bojidar-bg kubecz3k reduz


text:
(Godot v4.2.1 Window) Godot crashes if you use a theme.tres add marginContainer values and edit them

Tested versions
Godot v4.2.1 stable Windows latest release
System information
Windows 11 Pro
Issue description
Godot crashes if you use a theme.tres add marginContainer values and edit them
Steps to reproduce
create a theme tres. create the margin container values, I added 5 to each of them, but any should work
Minimal reproduction project (MRP)
N/A

Please provide a reproduction project and exact steps you took.

Closing due to lack of response, if you provide the requested information this can be reopened

authors: AThousandShips Davitdon YuriSizov


text:
Resizing Placeholder Texture requires reopen scene to take effect

Tested versions
Godot Engine v4.2.1.stable.official.b09f793f5
System information
Windows 11 Vulkan API 1.3.260 - Forward+ - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 3050 Ti Laptop GPU
Issue description

Then resize it to 128x:

Reopen the scene:

Steps to reproduce
As above.
Minimal reproduction project (MRP)
Very easy to reproduce.

Looks like we are just missing a call to emit_changed(); in the set_size() function (for all Placeholder* types)

authors: Hapenia-Lans clayjohn


text:
Importing a jpg image may result in wrong colors.

Tested versions
4.2.2.stable, 4.2.1.stable, 3.5.2.stable
System information
Windows 10, Windows 11
Issue description
When importing this jpg:

the colors get messed up in the preview/editor and at runtime.

This happens to any image in the zips downloaded from this site: https://www.enchor.us
The image can be found in the downloaded zip and is named album.jpg.
Steps to reproduce

Download provided image.
Import into editor.
Open image preview or drag into editor window.

Minimal reproduction project (MRP)
MRP.zip

Related to https://github.com/godotengine/godot/issues/45523.

When the .jpg image is imported into an image editor and exported as a .jpg again, it works correctly too. It's just that the issue shouldn't be happening in the first place.

I think that Godot Engine is probably mis-interpreting BGR/RGB for the color channels, but needs investigation why.

Wouldn't switch the channels keep the white text white instead of tinting if pink?
Additionally this is how it looks when I swap the red and blue channels it looks like this

I don't think I should rush a pull request but a future task is to compare the results of ttps://github.com/richgel999/jpeg-compressor loading with https://github.com/libjpeg-turbo/libjpeg-turbo
Help welcome.

authors: Brezak Calinou catpieyum fire


text:
Compute shaders execute before calling submit()

Tested versions
Reproducible in 4.2.2
System information
Fedora 40 - Vulkan - AMD 6800s - amdgpu driver
Issue description
I'm writing an addon that wraps the compute shader API.
https://github.com/matt-seaton/compute_companion
This is a fork of ComputeWorker here:
https://github.com/wardensdev/ComputeWorker
Just discovered the shader is being executed after dispatching the compute list.  It seems to run without calling submit/sync at all.  I believe this is the expected behavior if using the global RenderingDevice but I am not.  I also checked rd == RenderingServer.get_rendering_device() and it returned false.  I don't understand it at all.   Why does it run if I'm not calling submit?  Is it related to the fact that the code is in a @tool script?  It is the same behavior if I run the scene though.
Steps to reproduce
Load the MRP and in the addon code, in the examples folder, load the color inversion scene.  Press the checkbox in the inspector and the texture will update.  In the script I have commented out the call to compute.execute() which is the only place rd.submit() is called.
Minimal reproduction project (MRP)
bug.zip

Do you mind putting together an MRP for this? I've taken a look at your project and it is huge and complex. I can see a few places where rd.submit() may be called, but I don't want to debug your entire application to figure out if the bug is coming from your application or from Godot.
If the problem is coming from Godot you should be able to reproduce the issue with a single GDScript file without dependencies.
Normally I would try running the project anyway just to confirm that I can see the same thing you do (without trying to analyze where the problem comes from) but this project requires running a 20 mb tscn. Naturally, that is a huge security risk. So just for that reason I ask that you create an MRP that is truly minimal.

I agree the project is somewhat complex for an MRP, but there is only one place where submit() is called as is easily confirmed by grep -ir --include='*.gd' submit
So it's actually quite simple to see the problem.
You are correct that there are multiple code paths that can end up there, but that is the only place it can be called from.
You can even comment out the line rd.submit() (which again is the only place that call exists in the addon) and the shader still runs for me.  I just put a print statement in that function to see if I ever ended up there.  I did not, but the shader executes anyway.

But I will work on it.

bug.zip
Updated MRP with rd.sumbit() commented out.  Shader still appears to execute.

I'm seeing a warning about Invalid pipelines cache header.  Not sure what that's about.

The reason the tscn is so large is because the shader outputs an image in RGBAF format with 32 bits per channel.  Here's the same scene with just the original noise texture before going through the shader.  That should reduce the scene size.
bug.zip

From my tests it seems the call to rd.compute_list_dispatch actually executes the shader.  Commenting this out seems to prevent it from running.  If this is the intended behavior it's fine.  It's just not what the docs say.

I'm seeing a warning about Invalid pipelines cache header. Not sure what that's about.

You can ignore that warning, it's been removed in 4.3: https://github.com/godotengine/godot/pull/80232

There's a few situations where RenderingDevice will submit all the work it has pending, flush and wait for its execution.

The get_data() function is called for either buffers or textures.
The staging buffer becomes full and it must flush all current work before being able to use it. This can just happen from uploading a lot of data during buffer or texture creation or by using a lot of buffer_update() calls.

It should be easy to determine when you're hitting one of these by setting a breakpoint when RenderingDevice requires this.

authors: Calinou DarioSamo clayjohn emberlightstudios


text:
App icon flashes before boot_splash on Android

Tested versions

Reproducible on Godot 4.3.RC2

System information
Windows 10 - Godot v4.3.RC2 - Forward+
Issue description
When exporting a Godot project to Android, a brief but noticeable flash of the app icon occurs before the intended boot splash (image or color set in Project Settings -> Application -> Boot Splash) is displayed. This Brief icon display cannot be hidden or replaced using current Godot settings.
https://github.com/user-attachments/assets/ef495720-3029-439f-ae72-679d6fc37d1a
Steps to reproduce

Create a new Godot project or use an existing one.
Set a Boot Splash image or color: Go to Project Settings -> Application -> Boot Splash and either select an image or define a background color.
Export the project for Android: Configure the export settings to android.
Observe the app launch sequence: Pay close attention to the screen immediately after launching the app. You should briefly see the app icon displayed before the boot splash image/color appears.

Minimal reproduction project (MRP)
AppIcon.zip

What does your app icon look like? I believe the pre-launch icon is based on Android design assets; it is not drawn by Godot itself. This means that you need to configure your project to use assets you created for this purpose in the Android export preset in the Export dialog.

What does your app icon look like before launching it? I believe the pre-launch icon is based on Android design assets; it is not drawn by Godot itself. This means that you need to configure your project to use assets you created for this purpose in the Android export preset in the Export dialog.
Godot can generate those assets for you if you leave the field empty, but you'll still need to define an icon at the very least.

I am not sure i understand what you mean, The icon of the app is the godot icon svg. when launching the app, the expected result is to see the boot splash color (which the video example i set it to pink) but instead the app shows before the boot splash the icon of the app in the middle.

How did you configure Icon? My Samsung Tab S7 (Android 13) shows the app icon in the splash screen first.

Example: https://github.com/godotengine/godot-demo-projects/tree/master/2d/bullet_shower

I am not sure i understand what you mean

I think this settings (Android Export)

How did you configure Icon?

If i open other apps on my phone they do not show their icon on launch

My Samsung Tab S7 (Android 13) shows the app icon in the splash screen first. (always, also other apps)

Example: https://github.com/godotengine/godot-demo-projects/tree/master/2d/bullet_shower

I am not sure i understand what you mean

I think this settings (Android Export)

Thanks for the suggestion, I tried setting the main icon to 192x192 in the android export settings, but the issue still remains. I still see the default icon briefly before the splash screen appears.
I tested on Godot 4.2.2 and this issue doesn't occur. Could this be a regression?

maybe PR #92965
or/and Gradle Build? I have deactivated Gradle Build and configured an icon.  It worked on Android 13 - Samsung.

godot-assets.svg

I tried setting the main icon to 192x192 in the android export settings, but the issue still remains. I still see the default icon briefly before the splash screen appears.

maybe PR #92965
or/and Gradle Build? I have deactivated Gradle Build and configured an icon. It worked on Android 13 - Samsung.

godot-assets.svg

Both godot 4.2.2 and godot 4.3 that i tested on the same project used the same export settings and project settings. Godot 4.3 did reproduce the issue and godot 4.2.2 didn't reproduce the issue

AFAIK the fact that an icon is shown when starting the app is intended behavior from Android itself. Apps built against recent SDKs behave this way, while some (possibly older) apps don't.
Now regarding why it's the default Godot icon, did you change the main project icon in the project settings? In my tests my custom icon.svg would be shown on Android just fine.
CC @m4gr3d

AFAIK the fact that an icon is shown when starting the app is intended behavior from Android itself. Apps built against recent SDKs behave this way, while some (possibly older) apps don't.
Now regarding why it's the default Godot icon, did you change the main project icon in the project settings? In my tests my custom icon.svg would be shown on Android just fine.
CC @m4gr3d

Thanks for the reply, i know how to change the app icon and it wasn't part of the issue. The issue was opened due to what you said that the app icon shows before the display splash is due to the new sdk, do you think is it possible somehow to remove it or is it the new standard of android?

@EiTaNBaRiBoA In your MRP Gradle Build is active, but you have not added the files to the zip file.
https://docs.godotengine.org/en/latest/tutorials/export/android_gradle_build.html
https://developer.android.com/develop/ui/views/launch/splash-screen?hl=en
I haven't tried it yet, but it should be possible if you customize files. You should be familiar with Android development.

do you think is it possible somehow to remove it or is it the new standard of android?

@EiTaNBaRiBoA It's the new Android standard.

Starting in Android 12, the system applies the Android system default splash screen on cold and warm starts for all apps. By default, this system splash screen is constructed using your app's launcher icon element and the windowBackground of your theme, if it's a single color.

I have android 14 but I am not having this issue. I am currently using godot 4.2.2 with compatibility mode and my splash screen is properly visible.
Is this only present in 4.3??

No it's not possible to disable the app icon; as mentioned in the comment above this is the new Android standard.

Closing this issue as intended behavior.


text:
Implement line clipping for TextureProgress to avoid bad rendering

Implement line clipping for TextureProgress to avoid bad rendering due to imprecise UV mapping
Original code used a quick aproximation for simulating the
correspondent texel in the TextureProgress texture as radial
progress indicator. This lead to visualization errors. Changed it for
a Liang-Barsky line clipping algorithm stripped to its minimum for
this specific use case.
Fix #17364.

@hpvb I'll let you assess if this can be cherry-picked or not.

source: gharchive/pull-request

authors: akien-mga robfram


text:
[WIP] Set multimesh populate color to COLOR_8BIT by default

Fixes #17850

@reduz It's simply to avoid the message when saving the multimesh, but this definitely not the proper fix.
I won't have time to work on this. I'm closing this down.


text:
Add a parse mode for GDScript which doesn't load dependencies

This allow the filesystem scan thread to get the class_name scripts without loading extra resources.
Also added a get_dependencies() method to the GDScript resource loader, so now the preloaded resources are also included as dependencies when exporting.
Also added a function to FileAccess to get the file as a String, since it's not trivial to do.
Should fix #17513.

Sorry to open this topic again. But I can't find anything on how to use the get_dependencies() function and still encountered issues in the newest version 3.2.  I'm using Marc Gilleron's Terrain plugin, which loads its binary map data. But when exporting the project it will crash as soon as it tries to load the terrain.
The only thing I can currently make to make it work is selecting all resources by hand (checking each single checkbox) when exporting. Which is quite cumbersone in big projects I guess...

@SlothDevLlama I missed this, but you should open a new issue if there's still a problem so we can track it.

authors: TheWhiteLlama vnen


text:
Merge pull request #1 from okamstudio/master

rebase

You should rebase your fork with git pull --rebase upstream/master that would prevent having to do it via PRs.

Thanks. I Know I made a mistake,so sorry about that

No problem, just giving you a tip as I know most people don't know about "pull --rebase" :)

authors: akien-mga lalalaring


text:
Don't add unsaved scene to previous scenes list when closing a tab

Add a check I forgot in #27952, it was possible to try to reopen a never saved scene, which would throw an error.

Thanks!

authors: Kanabenki akien-mga


text:
Scroll ScrollContainer to focused children

I had to add a new signal to Viewport called gui_focus_changed, but it works.

Fixes #5637

Thanks!

I don't like using global notifications very much because, on complex UIs (like the editor) it does not scale great if you have a lot of scroll containers (all get that notification every time something changes focus), and I would have preferred a way where you tell parent controls that one of your children was focused, something like NOTIFICATION_CHILD_FOCUS_ENTER or something like this, which at least limits the callback to where it matters.
That said the notification you added seems useful and its very cheap, so I would not take it out per se.

Signal does not emit when focus is lost. This is also a change in focus, so the signal name might be a bit misleading? Would be very useful to get information about when signal is lost, maybe with another signal.

authors: KoBeWi akien-mga fossegutten reduz


text:
expose scroll_vertical and scroll_horizontal in TextEdit

Exposes scroll_horizontal and scroll_vertical for TextEdit.
Allows you to control the TextEdit's scroll values.

Thanks!

authors: akien-mga lentsius-bark


text:
[3.2] DTLS support + optional ENet encryption

DTLS

New UDPServer class, support for UDP connected socket (i.e. bound to a specific receive/send address).
New PacketPeerDTLS and DTLSServer classes (+ implementation via mbedtls module).
See old report for more details.

ENet

New implementation of custom godot sockets in thirdparty/enet/godot.cpp to allow optional socket upgrade to DTLS.
NetworkedMultiplayerENet now supports optional DTLS encryption via the set_dtls_enabled function. Allows setting key/certificate/verify options.

# server
var peer = NetworkedMultiplayerENet.new()
var key = load("key.key") # Required for server
var cert = load("cert.crt") # Required for server
peer.set_dtls_enabled(true)
peer.set_dtls_key(key)
peer.set_dtls_certificate(cert)
peer.create_server(port, 4)

# client
var peer = NetworkedMultiplayerENet.new()
peer.set_dtls_enabled(true)
peer.set_dtls_verify(true) # Off by default... should we change it?
var cert = load("cert.crt")
peer.set_dtls_certificate(cert)
peer.create_client(host, port) # If verify is on, host must match the one in cert.

Closes #19110

Due the fact the Godot 4.0 will take a long tike to became stable again, is there any chance to to see DTLS support and ENet encryption on 3.2 branch?

@Malkverbena There are no plans to merge large features in the 3.2 branch, as we want to keep it as stable as possible (and avoid new regressions).

@akien-mga I think this is ready now. I shall write documentation along with the post (we might want to wait for that, hopefully tomorrow).
It is also potentially cherry-pickable, as it's unlikely to cause regressions except for regular ENet (which is at low risk IMO, but I'll run more tests with this rebase), so we might test it for a while and then merge it with a bit "EXPERIMENTAL" notice in the docs.

meh... I failed the rebase... will update ASAP

This is awesome! I've always loved enet's simplicity but the lack of encryption was a big negative for it. Would it be possible to extract the server part into a standalone C library so we can make lightweight servers in other languages?

Would it be possible to extract the server part into a standalone C library so we can make lightweight servers in other languages?

Well, not really, the DTLS implementation is in C++ and largely relies on Godot data structures, if you need a C implementation you are probably better off making one from scratch.
If you are fine with C++ you would still need to replace or include quite a few things from core Ref/PoolVector/String/PacketPeer/etc.

hello, I can't compile this module from 3.2 version

What do you mean by "from the 3.2 version"? Did you check out my branch or
did you try to apply the patch to 3.2? It seems that you are missing some
changes.
What build options are you using?
On Sat, Feb 29, 2020, 11:08 rieniter notifications@github.com wrote:

hello, I can't compile this module from 3.2 version
[image: 2020-02-29_162245]
https://user-images.githubusercontent.com/34160378/75605513-17819d80-5b16-11ea-8212-11b243c9d8df.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/35091?email_source=notifications&email_token=AAM4C3SM7QD4DEEMF3PNQR3RFDPDPA5CNFSM4KGF4N6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENLV72Y#issuecomment-592928747,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM4C3XYJPTQWPP5F6AYKKDRFDPDPANCNFSM4KGF4N6A
.

What do you mean by "from the 3.2 version"? Did you check out my branch or did you try to apply the patch to 3.2? It seems that you are missing some changes. What build options are you using?
…
On Sat, Feb 29, 2020, 11:08 rieniter @.***> wrote: hello, I can't compile this module from 3.2 version [image: 2020-02-29_162245] https://user-images.githubusercontent.com/34160378/75605513-17819d80-5b16-11ea-8212-11b243c9d8df.png — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#35091?email_source=notifications&email_token=AAM4C3SM7QD4DEEMF3PNQR3RFDPDPA5CNFSM4KGF4N6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENLV72Y#issuecomment-592928747>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM4C3XYJPTQWPP5F6AYKKDRFDPDPANCNFSM4KGF4N6A .

Hello, thank you for your reply. I'm still a noober, so let me explain what i was done:
I have try to copy your branch to original godot 3.2 and then build it, but it look like have something more custom module error than above.
So, I checked and know that this PR was merged into master branch, and i decide to download only that enet module from master branch and copy to my godot 3.2 branch, now everything look good except above error

I see, it won't work like that, you can either checkout my branch directly (e.g.):
git clone https://github.com/Faless/godot.git -b dtls/enet godot-dtls
Or apply the diff for this PR  to the 3.2 code

I see, it won't work like that, you can either checkout my branch directly (e.g.):
git clone https://github.com/Faless/godot.git -b dtls/enet godot-dtls
Or apply the diff for this PR to the 3.2 code

Thank you, it worked great !

I have done lots of tests with DTLS in Godot 3.2. So far everything works pretty well. Is there any way to help on this? any test??  I would love to see PR merged.

@Malkverbena The master branch is currently undergoing refactoring, which means it may take a while for pull requests to be merged.

Let's get this merged for 3.2.2-beta2 and tested further.
Thanks!

@akien-mga does it works for beta4?

It's merged since beta2, so it's in beta4 too. Whether it works as you expect it to is for you as a user to ascertain ;)

@akien-mga does not work for me, i used certificate generator for certs, can it cause problemes ?

@i used same code from this site https://godotengine.org/article/enet-dtls-encryption

Please open an issue with a sample project that can trigger the bug.

authors: Calinou Faless Malkverbena akien-mga clofresh extremety1989 rieniter


text:
Finish documenting BakedLightmap and TextureLayered

I still need to do BakedLightmapData, But I'm going to do that later in another PR.

Thanks!

Cherry-picked for 3.2.1.

authors: akien-mga clayjohn


text:
Wake up RigidBody 2D after applying torque

Automatically wake up a RigidBody 2D whenever a torque is applied
Resolves #40939

Thanks!

Cherry-picked for 3.2.4.

authors: Sauermann akien-mga


text:
[HTML5] Editor style, audio fixes

In this PR:

Usual rasterizer changes.
HTML5 Editor now also make the cache folder persistent. Hopefully, it won't take too much space.
Improve the editor html layout (thanks @Calinou )
Add logo and favicon to the editor page (see screenshot)
Improve platform buildsystem.
Check emcc version requirements when building GDNative.
Add more build options (sanitizers, initial memory).
Fix errors when microphone access is not allowed (non-secure contexts).

I would love to change the color of the svg text, but I don't think it's easily doable.
There is a 3.2 branch here: https://github.com/Faless/godot/tree/js/3.x_editor_beta

I would love to change the color of the svg text, but I don't think it's easily doable.

We can commit a logo with white text to the repository :slightly_smiling_face:

Yeah the logo text should be modulated to a light grey color instead of dark grey. It's also a tad huge IMO, we can likely scale a bit down.

We can commit a logo with white text to the repository, or inline the SVG and manipulate it using CSS slightly_smiling_face

Yeah, both solutions are bit ugly though, in both cases we would need to maintain 2 different logos.
I was thinking... can we add the classes to the original SVG? That way, we should be able to override the colors from the CSS while only maintaining one SVG?

Yeah, both solutions are bit ugly though, in both cases we would need to maintain 2 different logos.

Well we have copies of the logo in many places already (splash screen, platform-specific icons, etc.), so it's not a big deal. You can have it in misc/dist/html/.
There's no plans to change the logo anytime soon, and if we do, updating one more location shouldn't be hard.

Thanks!

authors: Calinou Faless akien-mga


text:
[3.x] Fix output port type mismatch for some VisualScript nodes

Same as #51147 but on 3.4
(#51122 without mistake of wrong source branch)
This PR fix the regression and other nodes.
Before the fix:

After the fix:

For the nodes that still have 'any' output, I honestly don't know how to fix theses since it's dynamic. Plus it's not really a mismatch since it's dynamic.

You forgot a semicolon:
modules\visual_script\visual_script_builtin_funcs.cpp(587): error C2143: syntax error: missing ';' before '}'

Thanks! And congrats for your first merged Godot contribution :tada:

Cherry-picked for 3.5.1.

authors: HaSa1002 Haskaris akien-mga


text:
Polygon2D now honors canvas opacity.

Previously, multi-colored polygons ignored canvas opacity, and the last patch made every polygon a multi-colored one.

yeah, this is why I didn't want to fix it, doing an alloc and modifying the
array will have a performance impact, it needs to be fixed in the shader,
but it's quite some work
On Tue, Jun 14, 2016 at 6:04 AM, Ovnuniarchos notifications@github.com
wrote:

Previously, multi-colored polygons ignored canvas opacity, and the last
patch made every polygon a multi-colored one.
You can view, comment on, or merge this pull request online at:
https://github.com/godotengine/godot/pull/5207
Commit Summary

Polygon2D now honors canvas opacity.

File Changes

M drivers/gles2/rasterizer_gles2.cpp
https://github.com/godotengine/godot/pull/5207/files#diff-0 (15)
M scene/2d/polygon_2d.cpp
https://github.com/godotengine/godot/pull/5207/files#diff-1 (4)

Patch Links:

https://github.com/godotengine/godot/pull/5207.patch
https://github.com/godotengine/godot/pull/5207.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/5207, or mute the thread
https://github.com/notifications/unsubscribe/AF-Z23ClEfGYLZ-B1K4oBazajQ4YftX2ks5qLm6lgaJpZM4I1GwC
.

Then I will fix this patch, so at least the mono-colored ones behave as previously.

authors: Ovnuniarchos reduz


text:
Fixed a shared array after using Array(from)

Fixes #56389

Superseded by #69248.

authors: NNesh akien-mga


text:
Increase compiler optimization when using target=release on iOS/Android

This improves performance on projects exported in release mode on iOS and Android, at the cost of slightly increased binary sizes.
Note that this may not be safe to cherry-pick to 3.x on iOS (assuming the bug mentioned in https://github.com/godotengine/godot-proposals/issues/1987 was fixed in the GDScript rewrite in master).

For size optimization, we could try -Oz on platforms that build with Clang.

I'd probably make that a separate option (such as optimize=size_extra), as -Oz is more aggressive and can lose quite a lot of speed.

If it's the only change, it's keep the startswith and just do: [...]

WDYT about this change? Worth doing, or do you prefer to keep it as is?

WDYT about this change? Worth doing, or do you prefer to keep it as is?

It looks more readable with your change, so I applied it :slightly_smiling_face:

Thanks!

Cherry-picked for 3.5.

authors: Calinou akien-mga


text:
Added Scons Option for the Mold Linker

As proposed in https://github.com/godotengine/godot-proposals/issues/4531
This should lead to slightly faster link times.
Note that while mold is fully supported in Clang, on GCC it's only supported on the latest version (12.1.0).

You need to squash commits as required by our pipeline (https://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html)

Squashed!

Is mold currently supported for any other platforms other than linuxbsd?

Mold currently only supports UNIX-based platforms, so it doesn't support Windows.

Sorry I had forgotten about this PR when I just decided to do my own implementation for this today: #61433.
I think my solution is a bit better as it also enables selecting GNU gold if wanted, as well as using LLD on Linux (which works, contrarily to what our error message was saying).
Thanks for the contribution nevertheless!

authors: Calinou Chaosus akien-mga thisisphan


text:
Do not constrain the 2d view by default

Before:
https://user-images.githubusercontent.com/14253836/183423731-5cd1c809-8e7c-4184-ac1e-90db8e87564e.mp4
After:
https://user-images.githubusercontent.com/14253836/183423744-2860bf10-f9dc-4eba-8b42-262baef1698d.mp4

See #47628.

Superseded by https://github.com/godotengine/godot/pull/47628. Thanks for your contribution nonetheless!

authors: YuriSizov akien-mga nathanfranke


text:
Document the Animation class

The documented properties/constants are new in 4.0, so this can't be cherry-picked.

Thank you!

authors: Calinou mhilbrunner


text:
Fix debugger can't inspect sub objects.

Fix #67870

Thanks!

authors: akien-mga zaevi


text:
GDScript: Add error if non-@tool class extends @tool class

Closes #78174.
Closes godotengine/godot-proposals#754.

I support the idea in principle.
One question we might want to ponder is whether there might be a valid use case for extending @tool scripts with a non-@tool script, to disable the tool-specific behavior in that script. E.g. for a script that has both in-game and in-editor logic, where the in-editor logic is only meant for debugging in a specific scene, but inherited scenes with their own extending scripts should not run it.
I guess this use case, if it exists, could be achieved the other way around by making the base script non @tool and extending it via a @tool script only where wanted.

Effectively I can see cases where the base script is a tool script and the extended should not. For example the base script can have some exported value that has a setter that needs to run but the current script has a lot of things happening on process which you don't want to run in the editor because of performance reasons.
The workaround proposed by akien does not work because as of now if a script is marked as @tool even if the base class is not marked as tool it will be considered as such.
This is still a fix for the issue but it feels more like a bandaid then a proper fix. I think a proper fix should aim to make it possible to have abas script that run in the editor while the script extending it is not i @tool mode

@notool or @disable_tool definitely makes more sense, because the base class explicitly expresses the intent to be a tool, and this explicit requirement shouln't be violatable by inheritors. It's the same reason that not all base class methods are virtual by default.

As discussed in the GDScript team meeting, instead of adding @disable_tool or @notool, we decided to go ahead with @tool(false) as annotations can take arguments. Technically, the first argument of tool would default to true if none is supplied.

we decided to go ahead with @tool(false) as annotations can take arguments. Technically, the first argument of tool would default to true if none is supplied.

Autocompletion inserts empty parentheses when there are optional arguments. We could have added an exception, but I remembered that we already have an annotation for ignoring warnings, which is most likely the first thing the user will use by clicking the "Ignore" button in the warning bar. I don't think we need any other way than @warning_ignore.

Thanks!

authors: Flavelius adamscott ajreckof akien-mga dalexeev


text:
Add buttons to reorder inspector array items without dragging

Closes https://github.com/godotengine/godot-proposals/issues/7495https://github.com/godotengine/godot-proposals/issues/7495
Fix #80524
Issue fix
As @markopolojorgensen explains in issue https://github.com/godotengine/godot/issues/80524, array items in editor inspector can be reordered by dragging with mouse. But if the number of item is above 5, a pagination system is used. As a consequence, there is no way to move an item from a page to another via editor.
Fix proposal / feature enhancement
This PR implements the proposal https://github.com/godotengine/godot-proposals/issues/7495 to add two buttons in order to move an item one step up or down.
If down button is used on an item at the bottom of a page, it will send it at the top of the following page.
If top button is used on an item at the top of a page, it will send it at the bottom of the previous page.
It will allow to use drag move inside a page and button move inside and across page.
The up and down button system is already used in some part of the editor (eg. autoload panel to reoreder autoload script/scenes) so it seems to be consistent to add one here.
Preview

Down button doesn't work.
https://github.com/godotengine/godot/assets/2223172/eb4d7ece-a0f2-4a1f-a13f-cb528ef44f7a

Down button doesn't work.

Yes, I missed that some classes (Tilemap and Tileset at least) use a specific move_array function. I will look at it.

@KoBeWi Fixed. I've missed that some classes use a specific function call to reorder items. (as TileMap and TileSet)
@Calinou For the delay, it seems to apply both with new buttons and with drag/drop reorder. Strangly, changing the auto refresh interval doesn't affect this delay for me (even if set to a very high value).
For the exported array / dict, the display is more compact and I don't know where to place new buttons without overloading the look. :(

EditorInspectorArray is for arrays of grouped properties, EditorPropertyArray is for arrays of values. They serve a bit different purposes and the latter is much more compact as a result and arrows aren't really feasible to add there.

Edit : the drag management is totaly different with exported arrays and allow to change page while dragging. Maybe we should just do the same for others arrays.

Makes sense, doesn't need to be done in this PR.

Thanks!

authors: KoBeWi akien-mga jmb462


text:
Fix Gridmap shortcut conflicts with 3d editor

Fix the issue mentioned in my recent PR where the user has set "S" to "begin scale transformation":
https://github.com/godotengine/godot/pull/96922#issuecomment-2472047739
It was due to the action shortcuts not going through the right processing.
Now the action shorcuts (A,S,D,Z,X,C) are going through the right processing and their events are captured so they are not passed to the 3D editor. This avoids conflicts/weird behaviours if the users has set up shortcuts on these keys.
Note: if that is of interest for anyone, I first added these actions in the right processing route, but I had problems with 180 degrees rotations (i.e. buttons being pressed twice). It seems that this problem is solved since I use accept_event to stop the event processing.

This fixes the issue for me. Great job! :smile:

authors: Nodragem geowarin


text:
Critical Issues with Solr Methods, Documentation, and Connection Handling

Errors:

Methods Update, Delete, ListFields,  Retrieve, AddField, UpdateField, DeleteField give error.
Documentation needs to be updated.
connection in Solr does not check for unsuccessful connection

@Umang01-hash, please assign this issue to me.

@coolwednesday assigned!

repo: gofr-dev/gofr


text:
Can not create first Wiki page

Gogs version (or commit ref): 94392a7af3d07f79adab195acfb7c1b545f68be9
Git version: 2.9.3
Operating system: Ubuntu 14.04
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Log gist:

Description
After creating a new project I cannot create the first wiki page. It seems that an empty wiki repo is created, but it cannot be checked out with branch master, because its empty. After manually committing data into the empty repo everything is working like a charm
[git-module] /home/git/gogs-repositories/jan/test001.wiki.git: git init
[git-module] stdout:
Initialized empty Git repository in /home/git/gogs-repositories/jan/test001.wiki.git/.git/

[git-module] Setting update hook: /home/git/gogs-repositories/jan/test001.wiki.git
[git-module] git clone -b master /home/git/gogs-repositories/jan/test001.wiki.git data/tmp/local-wiki/1
2016/08/15 22:19:45 ^[[1;31m[...routers/repo/wiki.go:216 NewWikiPost()] [E] AddWikiPage: UpdateLocalWiki: Clone: exit status 128 - Cloning into 'data/tmp/local-wiki/1'...
fatal: Remote branch master not found in upstream origin
fatal: The remote end hung up unexpectedly

Hi, if you can't reproduce on demo site, it maybe you have old temp data. Try restart Gogs and do again.

Unfortunately restarting does not help. data/tmp/local-wiki is empty since initial clone of the wiki-repo fails.

Does the real wiki repo has any content? I can't reproduce this..

If real wiki repo is the repo in gogs-repository-folder: no its empty and executing
$ git clone -b master /home/git/gogs-repositories/jan/test001.wiki.git
fails as well with
Cloning into 'test001.wiki'...
fatal: Remote branch master not found in upstream origin
fatal: The remote end hung up unexpectedly

In contrast
$ git clone /home/git/gogs-repositories/jan/test001.wiki.git is working with a warning: You appear to have cloned an empty repository

Patch has pushed to fix this issue, please test on master branch or https://try.gogs.io.

Thanks for your quick response and fix. Now it is working as expected.

authors: Jaydyou Unknwon

repo: gogits/gogs


text:
add other dependencies in sample yaml

add other dependencies in sample yaml

Some known problem with this sample

need to change secret github-credentials with real one
notary can not started for issue https://github.com/goharbor/harbor-operator/issues/357

repo: goharbor/harbor-operator


text:
upgrade certmanger k8s version in CI

upgrade cert manager to 1.3.1
upgrade kind to 0.11.0
upgrade k8s to 1.21.1
upgrade ingress to 0.46.0

k8s 1.21.1 failed


text:
Remove accents from anchors created with .TableOfContents

.TableOfContents should allow to remove accents from created anchor links, to match a true slugified url.
Besides, copied urls with accents display with ugly characters replacing accents.
I tried using removePathAccents: true from #1237 but it doesn't make the job.

Hi, people. Using removePathAccents = true is not working for me too. Actually, just removing the accents is not enough for me, in Turkish language there is a character "ı" and I also need to convert it to "i" in permalinks. Is there a way to do it?

authors: babilkuyusu inwardmovement

repo: gohugoio/hugo


text:
Add a command line flag for the 'data' directory like --themeDir

Hello,
I miss a flag for the hugo.exe to configure the data directory (similar to -l, -c and --themeDir).
The related use case is to generate static HTML documents (reports) on the fly by calling hugo.exe with different data-set locations. The data-input dir and the output dir shall vary in this use case for each generation.
Thanks for the great work!
// Used hugo version: "Hugo Static Site Generator v0.76.5-60F0725B windows/amd64 BuildDate: 2020-10-14T15:16:53Z"

I would say that we're not adding more "dirs flags". There is already too many ways to configure this. Note that you can set these config settings as environment variables, e.g. HUGO_DATADIR=foo hugo.

authors: bep plasmobit


text:
Create TranslationBaseName from filename only

I'm  in the last leg of some improvements in Hugo which requires some simplification in the content path logic . This is also looking a little to the future where content will not just be files, and the task of finding the cannonical path of a piece of content should be a simple task.
Given this content:
content
├── foo.en.md
├── foo.jp.md
└── foo.no.md

Currently, the value of .Page.File.TranslationBaseName, depends on the language configuration. If only en is configured, then TranslationBaseName for foo.jp.md will be foo.jp.
In the new setup, every part of the base filename after the first "." separator will be considered identifiers:
 foo.no.md =>  foo + IDENTIFIER_LANGUAGE + IDENTIFIER_EXTENSION

Note that the Page backed by a foo.unknownlanguage.md will still be assigned the defaultContentLanguage.
I'm sure there will be some subtle site breakage in the above, but I'm also sure that we need to do this.
Shout if you disagree.

Currently, with hugo new content/foo.bar.baz.de.md, .File.TranslationBaseName is foo.bar.baz. Will this change? I have seen several sites where the "." separator is used... abundantly.

Will this change? I have seen several sites where the "." separator is used... abundantly.

No, your example will still be foo.bar.baz (if that is how it is today). But, we will treat de as a language identifier even if it's not defined as a language in config.toml.

That said, I would not recommend using the "." ... abundantly.

That said, I don't see us ever adding more identifiers to the filename itself. I have at least one more idea for a role based partition (RBAC), but that fits much better in a mount configuration.

No, this is not happening.

authors: bep jmooring


text:
Documentation

More comprehensive documentation is essential for adoption. List of topics to be covered:

quick start for validate only
quick start for evaluate only
quick start for both validate and evaluate
reference for recipe pipeline frlow
reference for building recipe and its example
reference for building JSON Schema and its example
reference for building JSONnet and its example

updated to remove plugin documentation as it is not necessary

repo: gojek/optimus-extension-valor


text:
give gofmt more weight

In my opinion, gofmt being 100% is pretty important. It's already 35% weight but I think it's worth more than that. Maybe 40%. Not sure what other people think. I'd take 5% away from cyclo and give it to gofmt. I could be wrong but I think one of the things cyclo checks is the amount of if statements in a function, which in Go is a bit weird since we tend to have lots of if err != nil

Oh, or take some weight away from golint for it. Golint is more suggestions and not hard rules.

repo: gojp/goreportcard

license_source: bigquery


text:
Cannot set background color of gi.Label

Code builds and runs without errors but fails to set the background color of the text. Text color works fine, just background color doesn't work. This issue exists when I run on Chrome OS Linux (Crostini); it may be specific to this platform.

The problem is not just a problem with Linux; it also exists on macOS. After some investigation, it seems to be a bug.

this seems to be working fine -- any new repercussions can be filed as new issues

repo: goki/gi


text:
Swift 3 support for Xcode 8 + all tests

This is fully Xcode 8 swift 3 compliant based on #190 .
All errors solved by #194 #196 , stackoverflow, swift evolution and me.
It's working, nevertheless it needs revising on some methods as #183 says.
This is not compliant with current master branch, because master has #194 merged.
Should I resolve all conflicts, or revert to #190 commit and merge without conflicts?

@piv199 let me know if this works for you, or if I fucked up

@lfarah merged current swift 3 branch in master old and fixed all merge conflicts

I still haven't checked all...

repo: goktugyil/EZSwiftExtensions

license: mit


text:
feat: introduce precommit target

This PR introduces a precommit target that could be run before pushing anything to the main branch.
The motive is that the vuln recipe is quite slow to run, and is not needed during fast testing feedback code.
Therefore, it should not be used as regularly as the all recipe, but should often run, and must always be called by the CI.
This PR closes #308.
Here is a little flowchart
flowchart TD
    A[Codding something] --> C{Are the tests valid ?
    `make`}
    C -->|Yes| D{Do I want to commit ?
    `make precommit`}
    C -->|No| A
    D -->|yes| E{Is the commit valid on the pushed branch ?
    `make ci`}
    D -->|No| A
    E-->|yes| F[Successfull PR]
    E-->|no| A

I really like this PR.
Can we just rename all to precommit and precommit to all?
all suggests that it is something "bigger" (a superset).
Then precommit should be the default target.

I did not do that because for me the all target is not there to check that the code is valid. It is rather here to build the program.
I can change this either way if you want :smile:

I did not do that because for me the all target is not there to check that the code is valid for a commit. It is rather here to build the program. I can change this either way if you want 😄

Leave it as it is. Merging. Thanks.

authors: pellared tomMoulard

repo: golang-templates/seed