Fix Z-Index on composition nodes
This commit is contained in:
16
Renderer.gd
16
Renderer.gd
@@ -36,6 +36,7 @@ func RenderJob(job):
|
|||||||
print("Cleared Render container")
|
print("Cleared Render container")
|
||||||
DisplayServer.window_set_size(Vector2(job["size"]["width"], job["size"]["height"]))
|
DisplayServer.window_set_size(Vector2(job["size"]["width"], job["size"]["height"]))
|
||||||
await RenderComposition(job["elements"])
|
await RenderComposition(job["elements"])
|
||||||
|
print("Rendered Composition")
|
||||||
await RenderingServer.frame_post_draw
|
await RenderingServer.frame_post_draw
|
||||||
|
|
||||||
# Get rendered image
|
# Get rendered image
|
||||||
@@ -56,16 +57,18 @@ func run_test():
|
|||||||
counter += 1
|
counter += 1
|
||||||
|
|
||||||
func RenderComposition(composition):
|
func RenderComposition(composition):
|
||||||
|
var zIndex = 0
|
||||||
for comp in composition:
|
for comp in composition:
|
||||||
var type = comp["type"]
|
var type = comp["type"]
|
||||||
if type == "text":
|
if type == "text":
|
||||||
print("Render label")
|
print("Render label")
|
||||||
await RenderLabel(comp)
|
await RenderLabel(comp, zIndex)
|
||||||
if type == "image":
|
if type == "image":
|
||||||
print("Render image")
|
print("Render image")
|
||||||
await RenderImage(comp)
|
await RenderImage(comp, zIndex)
|
||||||
|
zIndex += 1
|
||||||
|
|
||||||
func RenderImage(def):
|
func RenderImage(def, zIndex):
|
||||||
var imageNode = TextureRect.new()
|
var imageNode = TextureRect.new()
|
||||||
var image = Image.new()
|
var image = Image.new()
|
||||||
image = await $"../Remote".GetRemoteImage(def["asset"])
|
image = await $"../Remote".GetRemoteImage(def["asset"])
|
||||||
@@ -73,10 +76,12 @@ func RenderImage(def):
|
|||||||
texture = ImageTexture.create_from_image(image)
|
texture = ImageTexture.create_from_image(image)
|
||||||
texture.set_size_override(Vector2(def["width"], def["height"]))
|
texture.set_size_override(Vector2(def["width"], def["height"]))
|
||||||
imageNode.texture = texture
|
imageNode.texture = texture
|
||||||
|
imageNode.name = def["asset"].right(15)
|
||||||
|
imageNode.z_index = zIndex
|
||||||
$"/root/Main/RenderContainer".add_child(imageNode)
|
$"/root/Main/RenderContainer".add_child(imageNode)
|
||||||
print("Image added")
|
print("Image added")
|
||||||
|
|
||||||
func RenderLabel(def):
|
func RenderLabel(def, zIndex):
|
||||||
var textNode = Label.new()
|
var textNode = Label.new()
|
||||||
textNode.text = def["text"]
|
textNode.text = def["text"]
|
||||||
var pos = Vector2(float(def["x"]), float(def["y"]))
|
var pos = Vector2(float(def["x"]), float(def["y"]))
|
||||||
@@ -94,7 +99,8 @@ func RenderLabel(def):
|
|||||||
if "horizontalAlignment" in def:
|
if "horizontalAlignment" in def:
|
||||||
var alignments = { "left": HORIZONTAL_ALIGNMENT_LEFT, "right": HORIZONTAL_ALIGNMENT_RIGHT, "center": HORIZONTAL_ALIGNMENT_CENTER, "fill": HORIZONTAL_ALIGNMENT_FILL }
|
var alignments = { "left": HORIZONTAL_ALIGNMENT_LEFT, "right": HORIZONTAL_ALIGNMENT_RIGHT, "center": HORIZONTAL_ALIGNMENT_CENTER, "fill": HORIZONTAL_ALIGNMENT_FILL }
|
||||||
textNode.horizontal_alignment = alignments[def["horizontalAlignment"]]
|
textNode.horizontal_alignment = alignments[def["horizontalAlignment"]]
|
||||||
|
textNode.name = def["text"].substr(0,15)
|
||||||
|
textNode.z_index = zIndex
|
||||||
$"/root/Main/RenderContainer".add_child(textNode)
|
$"/root/Main/RenderContainer".add_child(textNode)
|
||||||
print("Label added")
|
print("Label added")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user