diff --git a/project/the_gates/scenes/world.tscn b/project/the_gates/scenes/world.tscn index 57e7145..37b0a37 100644 --- a/project/the_gates/scenes/world.tscn +++ b/project/the_gates/scenes/world.tscn @@ -84,6 +84,7 @@ gate_events = ExtResource("2_ot8b0") script = ExtResource("1_5swiq") gate_events = ExtResource("2_ot8b0") render_result = NodePath("../../WorldCanvas/RenderResult") +sandbox_executable = "godot.windows.editor.dev.sandbox.x86_64.exe" [node name="UICanvas" type="CanvasLayer" parent="."] follow_viewport_enabled = true diff --git a/project/the_gates/scripts/loading/pack_loader.gd b/project/the_gates/scripts/loading/pack_loader.gd index d8275cd..c33b35d 100644 --- a/project/the_gates/scripts/loading/pack_loader.gd +++ b/project/the_gates/scripts/loading/pack_loader.gd @@ -3,6 +3,7 @@ class_name PackLoader @export var gate_events: GateEvents @export var render_result: RenderResult +@export var sandbox_executable: String var gate: Gate var pid: int @@ -15,7 +16,8 @@ func _ready() -> void: func create_process(_gate: Gate) -> void: gate = _gate - var sandbox_path = "/home/nordup/projects/godot/the-gates-folder/the-gates/bin/godot.linuxbsd.editor.dev.sandbox.x86_64.llvm" + var executable_dir = OS.get_executable_path().get_base_dir() + "/" + var sandbox_path = executable_dir + sandbox_executable var pack_file = ProjectSettings.globalize_path(gate.resource_pack) var args = [ @@ -26,6 +28,7 @@ func create_process(_gate: Gate) -> void: Debug.logclr(sandbox_path + " " + " ".join(args), Color.DARK_VIOLET) pid = OS.create_process(sandbox_path, args) + if OS.get_name() == "Windows": render_result.fd_path += "|" + str(pid) gate_events.gate_entered_emit() diff --git a/project/the_gates/scripts/sandbox/render_result.gd b/project/the_gates/scripts/sandbox/render_result.gd index 75117ad..58838ad 100644 --- a/project/the_gates/scripts/sandbox/render_result.gd +++ b/project/the_gates/scripts/sandbox/render_result.gd @@ -7,14 +7,17 @@ class_name RenderResult @onready var width = get_viewport().size.x @onready var height = get_viewport().size.y -var fd_path = "/tmp/external_texture" +var fd_path: String var rd: RenderingDevice var ext_texure: ExternalTexture var texture_rid: RID func _ready() -> void: + if OS.get_name() == "Windows": fd_path = "ipc://external_texture" + else: fd_path = "/tmp/external_texture" + gate_events.gate_entered.connect(create_external_texture) command_events.send_filehandle.connect(send_filehandle) initialize()