mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-03-14 15:25:17 +00:00
Ensure that the text field grabs focus and fix alpha issue when using antialiasing in the text
This commit is contained in:
parent
38444cb916
commit
1d44c3d0df
3 changed files with 14 additions and 4 deletions
5
assets/premult_alpha_canvas_item_mat.tres
Normal file
5
assets/premult_alpha_canvas_item_mat.tres
Normal file
|
@ -0,0 +1,5 @@
|
|||
[gd_resource type="CanvasItemMaterial" format=3 uid="uid://c4nxqxi1khn0"]
|
||||
|
||||
[resource]
|
||||
blend_mode = 4
|
||||
light_mode = 1
|
|
@ -5,6 +5,7 @@ const ITALIC_FLAG := 2
|
|||
const EMBOLDEN_AMOUNT := 0.6
|
||||
const ITALIC_AMOUNT := 0.2
|
||||
const ITALIC_TRANSFORM := Transform2D(Vector2(1.0, ITALIC_AMOUNT), Vector2(0.0, 1.0), Vector2.ZERO)
|
||||
const NEW_CANVAS_ITEM_MATERIAL := preload("res://assets/premult_alpha_canvas_item_mat.tres")
|
||||
|
||||
var text_edit: TextToolEdit:
|
||||
set(value):
|
||||
|
@ -98,6 +99,8 @@ func draw_move(pos: Vector2i) -> void:
|
|||
|
||||
|
||||
func draw_end(pos: Vector2i) -> void:
|
||||
if is_instance_valid(text_edit):
|
||||
text_edit.grab_focus()
|
||||
super.draw_end(pos)
|
||||
|
||||
|
||||
|
@ -120,15 +123,16 @@ func text_to_pixels() -> void:
|
|||
RenderingServer.viewport_set_disable_3d(vp, true)
|
||||
RenderingServer.viewport_set_active(vp, true)
|
||||
RenderingServer.viewport_set_transparent_background(vp, true)
|
||||
RenderingServer.viewport_set_default_canvas_item_texture_filter(
|
||||
vp, RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST
|
||||
)
|
||||
|
||||
var ci_rid := RenderingServer.canvas_item_create()
|
||||
RenderingServer.viewport_set_canvas_transform(vp, canvas, Transform2D())
|
||||
RenderingServer.canvas_item_set_parent(ci_rid, canvas)
|
||||
var texture := RenderingServer.texture_2d_create(image)
|
||||
RenderingServer.canvas_item_add_texture_rect(
|
||||
ci_rid, Rect2(Vector2(0, 0), project.size), texture
|
||||
)
|
||||
|
||||
RenderingServer.canvas_item_add_texture_rect(ci_rid, Rect2(Vector2.ZERO, project.size), texture)
|
||||
RenderingServer.canvas_item_set_material(ci_rid, NEW_CANVAS_ITEM_MATERIAL.get_rid())
|
||||
var text := text_edit.text
|
||||
var color := tool_slot.color
|
||||
var font_ascent := font.get_ascent(text_size)
|
||||
|
|
|
@ -9,6 +9,7 @@ var _border_node := Control.new()
|
|||
|
||||
|
||||
func _ready() -> void:
|
||||
grab_focus()
|
||||
Global.camera.zoom_changed.connect(func(): _border_node.queue_redraw())
|
||||
_border_node.draw.connect(_on_border_redraw)
|
||||
_border_node.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
|
|
Loading…
Add table
Reference in a new issue