summaryrefslogtreecommitdiff
path: root/src/tools/screen_recorder
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/screen_recorder')
-rw-r--r--src/tools/screen_recorder/ScreenRecorder.tscn26
-rw-r--r--src/tools/screen_recorder/screen_recorder.gd13
2 files changed, 39 insertions, 0 deletions
diff --git a/src/tools/screen_recorder/ScreenRecorder.tscn b/src/tools/screen_recorder/ScreenRecorder.tscn
new file mode 100644
index 0000000..c5ddcd2
--- /dev/null
+++ b/src/tools/screen_recorder/ScreenRecorder.tscn
@@ -0,0 +1,26 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://addons/GifMaker/GifRectangle.gd" type="Script" id=1]
+[ext_resource path="res://tools/screen_recorder/screen_recorder.gd" type="Script" id=2]
+[ext_resource path="res://addons/GifMaker/GifRecorder.gd" type="Script" id=3]
+
+[node name="ScreenRecorder" type="CanvasLayer"]
+layer = 0
+script = ExtResource( 2 )
+
+[node name="Control" type="Control" parent="."]
+anchor_right = 1.0
+anchor_bottom = 1.0
+
+[node name="GifRectangle" type="ReferenceRect" parent="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource( 1 )
+
+[node name="GifRecorder" type="Viewport" parent="Control"]
+size = Vector2( 2, 2 )
+script = ExtResource( 3 )
+render_type = 1
+seconds = 4.0
+autostart = true
+capture_node_path = NodePath("../GifRectangle")
diff --git a/src/tools/screen_recorder/screen_recorder.gd b/src/tools/screen_recorder/screen_recorder.gd
new file mode 100644
index 0000000..2ab77e5
--- /dev/null
+++ b/src/tools/screen_recorder/screen_recorder.gd
@@ -0,0 +1,13 @@
+extends CanvasLayer
+
+onready var gif_recorder: GifRecorder = $Control/GifRecorder
+
+
+func _input(event: InputEvent) -> void:
+ if event is InputEventKey and event.scancode == KEY_G and event.pressed:
+ print("Encoding GIF.")
+ gif_recorder.render_to_file("res://test.gif")
+ yield(gif_recorder, "done_encoding")
+ print("Done encoding GIF.")
+ gif_recorder.clear()
+ gif_recorder.start()