I am writing a GDExtension for binding libpd
, library version of PureData. I have added a property with appropriate getter and seterr.
ADD_PROPERTY(
PropertyInfo(Variant::STRING, "patch_path", PROPERTY_HINT_FILE, "*.pd"),
"set_patch_path", "get_patch_path");
I do something like this to get the file path and load it to puredata
Ref<FileAccess> file = FileAccess::open(path, FileAccess::READ);
patch = pd.openPatch(
file->get_path_absolute().utf8().get_data()->get_path_absolute().utf8().get_data(), "/");
I can select *.pd
files from my resources directory, they load and work normally inside the editor. However, they do not work when I export the project.
The complete error message:
Godot Engine v4.3.stable.official.77dcf97d8 -
Vulkan 1.3.296 - Forward+ - Using Device #0: Intel - Intel(R) Iris(R) Xe Graphics (RPL-U)
pd 0.55.2
bonk version 1.5
fiddle version 1.1 TEST4
pd~ version 0.54
pique 0.1 for PD version 23
PureDataGD constructor
ERROR: File does not exist:
at: file_exists (/home/kureta/Documents/repos/PureDataGD/src/puredatagd.cpp:60)
Trying to set path to: res://patches/test-2.pd
read (31 184) -> -1
//: Is a directory
Set patch path to: res://patches/test-2.pd
Setting DSP status to truehttps://godotengine.org
What am I doing wrong? Full code is here.
You must log in or register to comment.
You have to add custom file extensions to your export config or they won’t be included in the exported bundle.
The problem was a bit more than that but I solved it. I write packed resource into
/tmp
and read the file from there. Thanks.