mirror of
https://github.com/lihop/godot-xterm.git
synced 2024-11-25 18:50:25 +01:00
d2f073d7ae
- Use viewport as render target for terminal: Terminal now only draws cells which changed since the last _draw() call. A viewport is used with clear mode set to NEVER to cache previous draw calls. The terminal node and viewport are wrapped by a GDScript Terminal node which takes care of resizing the viewport scene, and forcing the terminal to redraw all cells when necessary (i.e. on resize or theme change). Adds update_mode to terminal interface which can be set to one of: - DISABLED: terminal will never be drawn - AUTO: terminal will only draw the cells that changed, but automatically redraw the full screen when necessary (for example, when the size or theme changed). - ALL: terminal will always draw every cell on every update. This is the most reliable but least performant option. - ALL_NEXT_FRAME: Will use update_mode ALL for the next _draw() call, then change update_mode back to AUTO. - Upgraded libtsm: Includes changes from Fredrik Wikstrom (salass00)'s fork of libtsm. - Don't require theme to be set. Terminal will use default fonts/colors if no theme is set.
32 lines
696 B
Text
32 lines
696 B
Text
[gd_scene load_steps=3 format=2]
|
|
|
|
[ext_resource path="res://addons/godot_xterm/nodes/terminal/terminal.gdns" type="Script" id=1]
|
|
|
|
[sub_resource type="GDScript" id=1]
|
|
script/source = "tool
|
|
extends Viewport
|
|
"
|
|
|
|
[node name="Viewport" type="Viewport"]
|
|
size = Vector2( 2, 2 )
|
|
own_world = true
|
|
transparent_bg = true
|
|
handle_input_locally = false
|
|
hdr = false
|
|
usage = 0
|
|
render_target_v_flip = true
|
|
render_target_clear_mode = 1
|
|
gui_snap_controls_to_pixels = false
|
|
script = SubResource( 1 )
|
|
|
|
[node name="Terminal" type="Control" parent="."]
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
margin_right = -2.0
|
|
margin_bottom = -2.0
|
|
script = ExtResource( 1 )
|
|
__meta__ = {
|
|
"_edit_use_anchors_": false
|
|
}
|
|
rows = 2
|
|
cols = 1
|