summaryrefslogtreecommitdiff
path: root/demos/misc/threads/thread.gd
blob: 7d8aabd1b720431ab2f942a39f3ad3f356874e55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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")