aboutsummaryrefslogtreecommitdiff
path: root/demos/misc/threads/thread.gd
diff options
context:
space:
mode:
authorJuan Linietsky2014-02-09 22:10:30 -0300
committerJuan Linietsky2014-02-09 22:10:30 -0300
commit0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac (patch)
tree276c4d099e178eb67fbd14f61d77b05e3808e9e3 /demos/misc/threads/thread.gd
parent0e49da1687bc8192ed210947da52c9e5c5f301bb (diff)
downloadgodot-0b806ee.tar.gz
godot-0b806ee.tar.zst
godot-0b806ee.zip
GODOT IS OPEN SOURCE
Diffstat (limited to '')
-rw-r--r--demos/misc/threads/thread.gd31
1 files changed, 31 insertions, 0 deletions
diff --git a/demos/misc/threads/thread.gd b/demos/misc/threads/thread.gd
new file mode 100644
index 000000000..7d8aabd1b
--- /dev/null
+++ b/demos/misc/threads/thread.gd
@@ -0,0 +1,31 @@
+
+extends Node2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+var thread = Thread.new()
+
+#this function runs in a thread!
+#threads always take one userdata argument
+func _bg_load(path):
+ print("THREAD FUNC!")
+ #load the resource
+ var tex = ResourceLoader.load(path)
+ #call _bg_load_done on main thread
+ call_deferred("_bg_load_done")
+ return tex #return it
+
+func _bg_load_done():
+ #wait for the thread to complete, get the returned value
+ var tex = thread.wait_to_finish()
+ #set to the sprite
+ get_node("sprite").set_texture(tex)
+
+func _on_load_pressed():
+ if (thread.is_active()):
+ #already working
+ return
+ print("START THREAD!")
+ thread.start(self,"_bg_load","res://mona.png")