How do I take a screenshot of a certain node properly?

Godot Version

v4.2.1.stable.official [b09f793f5]


I’m trying to extend a TextureRect for screen transitions in a mobile app. I want the node to take a screenshot of the “target” node. This is the relevant code:

class_name FadeTransition extends TextureRect

@export var target: Control

func take_screenshot() -> void:
	await RenderingServer.frame_post_draw
	var region: Rect2i = target.get_global_rect()
	var screenshot: Image = get_viewport().get_texture().get_image()
	var cropped = Image.create(
	cropped.blit_rect(screenshot, region, Vector2i.ZERO)
	texture = ImageTexture.create_from_image(cropped)

I would like to post more pictures, but as a new forum memeber, I can only add one, so I put here the final result. The FadeTransition is at the bottom while the white ColorRect at the top left corner is the target:

As you can see, not only the white rectangle is being captured.

Playing with project settings changes the result, here are the ones I use: