Disable VSync while ImageCompositor.update processes the image
This commit is contained in:
parent
77273f9c1b
commit
560e455cd2
3 changed files with 9 additions and 2 deletions
|
@ -27,7 +27,6 @@ window/size/viewport_width=640
|
|||
window/size/viewport_height=672
|
||||
window/energy_saving/keep_screen_on=false
|
||||
window/subwindows/embed_subwindows=false
|
||||
window/vsync/vsync_mode=0
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ func _input(event):
|
|||
|
||||
var old_zoom = self.zoom
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
func _process(_delta: float) -> void:
|
||||
if self.zoom != old_zoom:
|
||||
image_viewport_display.update_zoom_texture_filter(self.zoom)
|
||||
image_viewport_display.material.set_shader_parameter("zoom_level", self.zoom)
|
||||
|
|
|
@ -43,6 +43,12 @@ func shader_has_step_uniform(shader: Shader) -> bool:
|
|||
return true
|
||||
return false
|
||||
|
||||
func set_vsync(enabled: bool):
|
||||
if enabled:
|
||||
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED)
|
||||
else:
|
||||
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
||||
|
||||
func update(overwrite_image_path: String = "") -> Array: # returns error messages (strings)
|
||||
var shader = Filesystem.shader # read from disk
|
||||
if shader == null:
|
||||
|
@ -98,6 +104,7 @@ func update(overwrite_image_path: String = "") -> Array: # returns error message
|
|||
# assign material
|
||||
image_sprite.material = mat
|
||||
# iterate n times
|
||||
set_vsync(false) # speed up processing
|
||||
for i in range(steps):
|
||||
if has_step_uniform:
|
||||
# set STEP param
|
||||
|
@ -106,6 +113,7 @@ func update(overwrite_image_path: String = "") -> Array: # returns error message
|
|||
await RenderingServer.frame_post_draw # wait for next frame to get drawn
|
||||
Filesystem.result = get_texture().get_image()
|
||||
image_sprite.texture = ImageTexture.create_from_image(Filesystem.result)
|
||||
set_vsync(true) # reenable vsync
|
||||
image_sprite.material = null
|
||||
# done
|
||||
return errors
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue