Sistema operacional ou dispositivo - versão Godot: Linux, Godot 3.0 (mestre)
Descrição do problema:
Obter uma captura de tela de qualquer janela de visualização resulta em dados vazios.
Passos para reproduzir:
get_viewport().queue_screen_capture()
yield(get_tree(),"idle_frame")
yield(get_tree(),"idle_frame")
var i = get_viewport().get_screen_capture()
i.save_png("user://cap.png")
Agora queue_screen_capture () e get_screen_capture () nem mesmo existem.
Ainda não tentei a partir do gdscript, mas você deve ser capaz de chamar 'viewport.get_texture (). Get_data ()' para obter uma referência à imagem que você pode salvar. Também chamar 'image.lock ()' e image.unlock () 'deve permitir que você obtenha (e talvez defina?) Pixels.
É assim que funciona para o seletor de cores ao escolher uma cor na tela:
https://github.com/godotengine/godot/blob/master/scene/gui/color_picker.cpp#L428
@MarianoGnu você está correto, o problema é que ViewportTexture :: get_data () não está vinculado ao GDScript, mas isso deve ser fácil de resolver.
Comentários muito úteis
@MarianoGnu você está correto, o problema é que ViewportTexture :: get_data () não está vinculado ao GDScript, mas isso deve ser fácil de resolver.