Skip to content

Commit 2ea9abf

Browse files
committed
[WIP] Presort text draw calls.
1 parent e825169 commit 2ea9abf

26 files changed

+1648
-164
lines changed

doc/classes/TextLine.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@
2020
Adds inline object to the text buffer, [param key] must be unique. In the text, object is represented as [param length] object replacement characters.
2121
</description>
2222
</method>
23+
<method name="add_outline_to_draw_list" qualifiers="const">
24+
<return type="void" />
25+
<param index="0" name="layer" type="int" />
26+
<param index="1" name="list" type="RID" />
27+
<param index="2" name="transform" type="Transform2D" />
28+
<param index="3" name="pos" type="Vector2" />
29+
<param index="4" name="outline_size" type="int" default="1" />
30+
<param index="5" name="color" type="Color" default="Color(1, 1, 1, 1)" />
31+
<param index="6" name="oversampling" type="float" default="0.0" />
32+
<description>
33+
</description>
34+
</method>
2335
<method name="add_string">
2436
<return type="bool" />
2537
<param index="0" name="text" type="String" />
@@ -31,6 +43,17 @@
3143
Adds text span and font to draw it.
3244
</description>
3345
</method>
46+
<method name="add_to_draw_list" qualifiers="const">
47+
<return type="void" />
48+
<param index="0" name="layer" type="int" />
49+
<param index="1" name="list" type="RID" />
50+
<param index="2" name="transform" type="Transform2D" />
51+
<param index="3" name="pos" type="Vector2" />
52+
<param index="4" name="color" type="Color" default="Color(1, 1, 1, 1)" />
53+
<param index="5" name="oversampling" type="float" default="0.0" />
54+
<description>
55+
</description>
56+
</method>
3457
<method name="clear">
3558
<return type="void" />
3659
<description>

doc/classes/TextParagraph.xml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,54 @@
99
<tutorials>
1010
</tutorials>
1111
<methods>
12+
<method name="add_dropcap_outline_to_draw_list" qualifiers="const">
13+
<return type="void" />
14+
<param index="0" name="layer" type="int" />
15+
<param index="1" name="list" type="RID" />
16+
<param index="2" name="transform" type="Transform2D" />
17+
<param index="3" name="pos" type="Vector2" />
18+
<param index="4" name="outline_size" type="int" default="1" />
19+
<param index="5" name="color" type="Color" default="Color(1, 1, 1, 1)" />
20+
<param index="6" name="oversampling" type="float" default="0.0" />
21+
<description>
22+
</description>
23+
</method>
24+
<method name="add_dropcap_to_draw_list" qualifiers="const">
25+
<return type="void" />
26+
<param index="0" name="layer" type="int" />
27+
<param index="1" name="list" type="RID" />
28+
<param index="2" name="transform" type="Transform2D" />
29+
<param index="3" name="pos" type="Vector2" />
30+
<param index="4" name="color" type="Color" default="Color(1, 1, 1, 1)" />
31+
<param index="5" name="oversampling" type="float" default="0.0" />
32+
<description>
33+
</description>
34+
</method>
35+
<method name="add_line_outline_to_draw_list" qualifiers="const">
36+
<return type="void" />
37+
<param index="0" name="layer" type="int" />
38+
<param index="1" name="list" type="RID" />
39+
<param index="2" name="transform" type="Transform2D" />
40+
<param index="3" name="pos" type="Vector2" />
41+
<param index="4" name="line" type="int" />
42+
<param index="5" name="outline_size" type="int" default="1" />
43+
<param index="6" name="color" type="Color" default="Color(1, 1, 1, 1)" />
44+
<param index="7" name="oversampling" type="float" default="0.0" />
45+
<description>
46+
</description>
47+
</method>
48+
<method name="add_line_to_draw_list" qualifiers="const">
49+
<return type="void" />
50+
<param index="0" name="layer" type="int" />
51+
<param index="1" name="list" type="RID" />
52+
<param index="2" name="transform" type="Transform2D" />
53+
<param index="3" name="pos" type="Vector2" />
54+
<param index="4" name="line" type="int" />
55+
<param index="5" name="color" type="Color" default="Color(1, 1, 1, 1)" />
56+
<param index="6" name="oversampling" type="float" default="0.0" />
57+
<description>
58+
</description>
59+
</method>
1260
<method name="add_object">
1361
<return type="bool" />
1462
<param index="0" name="key" type="Variant" />
@@ -20,6 +68,19 @@
2068
Adds inline object to the text buffer, [param key] must be unique. In the text, object is represented as [param length] object replacement characters.
2169
</description>
2270
</method>
71+
<method name="add_outline_to_draw_list" qualifiers="const">
72+
<return type="void" />
73+
<param index="0" name="layer" type="int" />
74+
<param index="1" name="list" type="RID" />
75+
<param index="2" name="transform" type="Transform2D" />
76+
<param index="3" name="pos" type="Vector2" />
77+
<param index="4" name="outline_size" type="int" default="1" />
78+
<param index="5" name="color" type="Color" default="Color(1, 1, 1, 1)" />
79+
<param index="6" name="dc_color" type="Color" default="Color(1, 1, 1, 1)" />
80+
<param index="7" name="oversampling" type="float" default="0.0" />
81+
<description>
82+
</description>
83+
</method>
2384
<method name="add_string">
2485
<return type="bool" />
2586
<param index="0" name="text" type="String" />
@@ -31,6 +92,18 @@
3192
Adds text span and font to draw it.
3293
</description>
3394
</method>
95+
<method name="add_to_draw_list" qualifiers="const">
96+
<return type="void" />
97+
<param index="0" name="layer" type="int" />
98+
<param index="1" name="list" type="RID" />
99+
<param index="2" name="transform" type="Transform2D" />
100+
<param index="3" name="pos" type="Vector2" />
101+
<param index="4" name="color" type="Color" default="Color(1, 1, 1, 1)" />
102+
<param index="5" name="dc_color" type="Color" default="Color(1, 1, 1, 1)" />
103+
<param index="6" name="oversampling" type="float" default="0.0" />
104+
<description>
105+
</description>
106+
</method>
34107
<method name="clear">
35108
<return type="void" />
36109
<description>

doc/classes/TextServer.xml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
<tutorials>
2020
</tutorials>
2121
<methods>
22+
<method name="create_draw_list">
23+
<return type="RID" />
24+
<description>
25+
</description>
26+
</method>
2227
<method name="create_font">
2328
<return type="RID" />
2429
<description>
@@ -53,6 +58,112 @@
5358
Draws box displaying character hexadecimal code. Used for replacing missing characters.
5459
</description>
5560
</method>
61+
<method name="draw_list_add_custom" qualifiers="const">
62+
<return type="void" />
63+
<param index="0" name="dc" type="RID" />
64+
<param index="1" name="layer" type="int" />
65+
<param index="2" name="transform" type="Transform2D" />
66+
<param index="3" name="callback" type="Callable" />
67+
<description>
68+
</description>
69+
</method>
70+
<method name="draw_list_add_hexbox" qualifiers="const">
71+
<return type="void" />
72+
<param index="0" name="dc" type="RID" />
73+
<param index="1" name="layer" type="int" />
74+
<param index="2" name="transform" type="Transform2D" />
75+
<param index="3" name="pos" type="Vector2" />
76+
<param index="4" name="index" type="int" />
77+
<param index="5" name="size" type="int" />
78+
<param index="6" name="modulate" type="Color" />
79+
<description>
80+
</description>
81+
</method>
82+
<method name="draw_list_add_line" qualifiers="const">
83+
<return type="void" />
84+
<param index="0" name="dc" type="RID" />
85+
<param index="1" name="layer" type="int" />
86+
<param index="2" name="transform" type="Transform2D" />
87+
<param index="3" name="start" type="Vector2i" />
88+
<param index="4" name="end" type="Vector2i" />
89+
<param index="5" name="width" type="float" />
90+
<param index="6" name="dash" type="float" />
91+
<param index="7" name="modulate" type="Color" />
92+
<description>
93+
</description>
94+
</method>
95+
<method name="draw_list_add_rect" qualifiers="const">
96+
<return type="void" />
97+
<param index="0" name="dc" type="RID" />
98+
<param index="1" name="layer" type="int" />
99+
<param index="2" name="transform" type="Transform2D" />
100+
<param index="3" name="rect" type="Rect2i" />
101+
<param index="4" name="filled" type="bool" />
102+
<param index="5" name="modulate" type="Color" />
103+
<description>
104+
</description>
105+
</method>
106+
<method name="draw_list_add_texture" qualifiers="const">
107+
<return type="void" />
108+
<param index="0" name="dc" type="RID" />
109+
<param index="1" name="layer" type="int" />
110+
<param index="2" name="transform" type="Transform2D" />
111+
<param index="3" name="texture" type="RID" />
112+
<param index="4" name="rect" type="Rect2i" />
113+
<param index="5" name="modulate" type="Color" />
114+
<description>
115+
</description>
116+
</method>
117+
<method name="draw_list_draw">
118+
<return type="void" />
119+
<param index="0" name="list" type="RID" />
120+
<param index="1" name="ci" type="RID" />
121+
<param index="2" name="free" type="bool" default="false" />
122+
<description>
123+
</description>
124+
</method>
125+
<method name="draw_list_reserve">
126+
<return type="void" />
127+
<param index="0" name="list" type="RID" />
128+
<param index="1" name="count" type="int" />
129+
<description>
130+
</description>
131+
</method>
132+
<method name="draw_list_sort">
133+
<return type="void" />
134+
<param index="0" name="list" type="RID" />
135+
<description>
136+
</description>
137+
</method>
138+
<method name="font_add_glyph_outline_to_draw_list" qualifiers="const">
139+
<return type="void" />
140+
<param index="0" name="font_rid" type="RID" />
141+
<param index="1" name="layer" type="int" />
142+
<param index="2" name="list" type="RID" />
143+
<param index="3" name="transform" type="Transform2D" />
144+
<param index="4" name="size" type="int" />
145+
<param index="5" name="outline_size" type="int" />
146+
<param index="6" name="pos" type="Vector2" />
147+
<param index="7" name="index" type="int" />
148+
<param index="8" name="color" type="Color" default="Color(1, 1, 1, 1)" />
149+
<param index="9" name="oversampling" type="float" default="0.0" />
150+
<description>
151+
</description>
152+
</method>
153+
<method name="font_add_glyph_to_draw_list" qualifiers="const">
154+
<return type="void" />
155+
<param index="0" name="font_rid" type="RID" />
156+
<param index="1" name="layer" type="int" />
157+
<param index="2" name="list" type="RID" />
158+
<param index="3" name="transform" type="Transform2D" />
159+
<param index="4" name="size" type="int" />
160+
<param index="5" name="pos" type="Vector2" />
161+
<param index="6" name="index" type="int" />
162+
<param index="7" name="color" type="Color" default="Color(1, 1, 1, 1)" />
163+
<param index="8" name="oversampling" type="float" default="0.0" />
164+
<description>
165+
</description>
166+
</method>
56167
<method name="font_clear_glyphs">
57168
<return type="void" />
58169
<param index="0" name="font_rid" type="RID" />
@@ -1361,6 +1472,21 @@
13611472
Adds inline object to the text buffer, [param key] must be unique. In the text, object is represented as [param length] object replacement characters.
13621473
</description>
13631474
</method>
1475+
<method name="shaped_text_add_outline_to_draw_list" qualifiers="const">
1476+
<return type="void" />
1477+
<param index="0" name="shaped" type="RID" />
1478+
<param index="1" name="layer" type="int" />
1479+
<param index="2" name="list" type="RID" />
1480+
<param index="3" name="transform" type="Transform2D" />
1481+
<param index="4" name="pos" type="Vector2" />
1482+
<param index="5" name="clip_l" type="float" default="-1" />
1483+
<param index="6" name="clip_r" type="float" default="-1" />
1484+
<param index="7" name="outline_size" type="int" default="1" />
1485+
<param index="8" name="color" type="Color" default="Color(1, 1, 1, 1)" />
1486+
<param index="9" name="oversampling" type="float" default="0.0" />
1487+
<description>
1488+
</description>
1489+
</method>
13641490
<method name="shaped_text_add_string">
13651491
<return type="bool" />
13661492
<param index="0" name="shaped" type="RID" />
@@ -1374,6 +1500,20 @@
13741500
Adds text span and font to draw it to the text buffer.
13751501
</description>
13761502
</method>
1503+
<method name="shaped_text_add_to_draw_list" qualifiers="const">
1504+
<return type="void" />
1505+
<param index="0" name="shaped" type="RID" />
1506+
<param index="1" name="layer" type="int" />
1507+
<param index="2" name="list" type="RID" />
1508+
<param index="3" name="transform" type="Transform2D" />
1509+
<param index="4" name="pos" type="Vector2" />
1510+
<param index="5" name="clip_l" type="float" default="-1" />
1511+
<param index="6" name="clip_r" type="float" default="-1" />
1512+
<param index="7" name="color" type="Color" default="Color(1, 1, 1, 1)" />
1513+
<param index="8" name="oversampling" type="float" default="0.0" />
1514+
<description>
1515+
</description>
1516+
</method>
13771517
<method name="shaped_text_clear">
13781518
<return type="void" />
13791519
<param index="0" name="rid" type="RID" />
@@ -2199,6 +2339,24 @@
21992339
<constant name="SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE" value="16" enum="SubpixelPositioning">
22002340
Maximum font size which will use "one quarter of the pixel" subpixel positioning in [constant SUBPIXEL_POSITIONING_AUTO] mode.
22012341
</constant>
2342+
<constant name="DRAW_CALL_NULL" value="0" enum="DrawCallType">
2343+
</constant>
2344+
<constant name="DRAW_CALL_NORMAL" value="1" enum="DrawCallType">
2345+
</constant>
2346+
<constant name="DRAW_CALL_MSDF" value="2" enum="DrawCallType">
2347+
</constant>
2348+
<constant name="DRAW_CALL_LCD" value="3" enum="DrawCallType">
2349+
</constant>
2350+
<constant name="DRAW_CALL_HEX" value="4" enum="DrawCallType">
2351+
</constant>
2352+
<constant name="DRAW_CALL_LINE" value="5" enum="DrawCallType">
2353+
</constant>
2354+
<constant name="DRAW_CALL_RECT" value="6" enum="DrawCallType">
2355+
</constant>
2356+
<constant name="DRAW_CALL_IMAGE" value="7" enum="DrawCallType">
2357+
</constant>
2358+
<constant name="DRAW_CALL_CUSTOM" value="8" enum="DrawCallType">
2359+
</constant>
22022360
<constant name="FEATURE_SIMPLE_LAYOUT" value="1" enum="Feature">
22032361
TextServer supports simple text layouts.
22042362
</constant>

0 commit comments

Comments
 (0)