Skip to content

Commit 61cf4fa

Browse files
committed
[WIP] Presort text draw calls.
1 parent 4d1f26e commit 61cf4fa

20 files changed

+1527
-90
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: 147 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,103 @@
5358
Draws box displaying character hexadecimal code. Used for replacing missing characters.
5459
</description>
5560
</method>
61+
<method name="draw_list_add_hexbox" 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="pos" type="Vector2" />
67+
<param index="4" name="index" type="int" />
68+
<param index="5" name="size" type="int" />
69+
<param index="6" name="modulate" type="Color" />
70+
<description>
71+
</description>
72+
</method>
73+
<method name="draw_list_add_line" qualifiers="const">
74+
<return type="void" />
75+
<param index="0" name="dc" type="RID" />
76+
<param index="1" name="layer" type="int" />
77+
<param index="2" name="transform" type="Transform2D" />
78+
<param index="3" name="start" type="Vector2i" />
79+
<param index="4" name="end" type="Vector2i" />
80+
<param index="5" name="width" type="float" />
81+
<param index="6" name="dash" type="float" />
82+
<param index="7" name="modulate" type="Color" />
83+
<description>
84+
</description>
85+
</method>
86+
<method name="draw_list_add_rect" qualifiers="const">
87+
<return type="void" />
88+
<param index="0" name="dc" type="RID" />
89+
<param index="1" name="layer" type="int" />
90+
<param index="2" name="transform" type="Transform2D" />
91+
<param index="3" name="rect" type="Rect2i" />
92+
<param index="4" name="filled" type="bool" />
93+
<param index="5" name="modulate" type="Color" />
94+
<description>
95+
</description>
96+
</method>
97+
<method name="draw_list_add_texture" qualifiers="const">
98+
<return type="void" />
99+
<param index="0" name="dc" type="RID" />
100+
<param index="1" name="layer" type="int" />
101+
<param index="2" name="transform" type="Transform2D" />
102+
<param index="3" name="texture" type="RID" />
103+
<param index="4" name="rect" type="Rect2i" />
104+
<param index="5" name="modulate" type="Color" />
105+
<description>
106+
</description>
107+
</method>
108+
<method name="draw_list_draw">
109+
<return type="void" />
110+
<param index="0" name="list" type="RID" />
111+
<param index="1" name="ci" type="RID" />
112+
<param index="2" name="free" type="bool" default="false" />
113+
<description>
114+
</description>
115+
</method>
116+
<method name="draw_list_reserve">
117+
<return type="void" />
118+
<param index="0" name="list" type="RID" />
119+
<param index="1" name="count" type="int" />
120+
<description>
121+
</description>
122+
</method>
123+
<method name="draw_list_sort">
124+
<return type="void" />
125+
<param index="0" name="list" type="RID" />
126+
<description>
127+
</description>
128+
</method>
129+
<method name="font_add_glyph_outline_to_draw_list" qualifiers="const">
130+
<return type="void" />
131+
<param index="0" name="font_rid" type="RID" />
132+
<param index="1" name="layer" type="int" />
133+
<param index="2" name="list" type="RID" />
134+
<param index="3" name="transform" type="Transform2D" />
135+
<param index="4" name="size" type="int" />
136+
<param index="5" name="outline_size" type="int" />
137+
<param index="6" name="pos" type="Vector2" />
138+
<param index="7" name="index" type="int" />
139+
<param index="8" name="color" type="Color" default="Color(1, 1, 1, 1)" />
140+
<param index="9" name="oversampling" type="float" default="0.0" />
141+
<description>
142+
</description>
143+
</method>
144+
<method name="font_add_glyph_to_draw_list" qualifiers="const">
145+
<return type="void" />
146+
<param index="0" name="font_rid" type="RID" />
147+
<param index="1" name="layer" type="int" />
148+
<param index="2" name="list" type="RID" />
149+
<param index="3" name="transform" type="Transform2D" />
150+
<param index="4" name="size" type="int" />
151+
<param index="5" name="pos" type="Vector2" />
152+
<param index="6" name="index" type="int" />
153+
<param index="7" name="color" type="Color" default="Color(1, 1, 1, 1)" />
154+
<param index="8" name="oversampling" type="float" default="0.0" />
155+
<description>
156+
</description>
157+
</method>
56158
<method name="font_clear_glyphs">
57159
<return type="void" />
58160
<param index="0" name="font_rid" type="RID" />
@@ -1361,6 +1463,21 @@
13611463
Adds inline object to the text buffer, [param key] must be unique. In the text, object is represented as [param length] object replacement characters.
13621464
</description>
13631465
</method>
1466+
<method name="shaped_text_add_outline_to_draw_list" qualifiers="const">
1467+
<return type="void" />
1468+
<param index="0" name="shaped" type="RID" />
1469+
<param index="1" name="layer" type="int" />
1470+
<param index="2" name="list" type="RID" />
1471+
<param index="3" name="transform" type="Transform2D" />
1472+
<param index="4" name="pos" type="Vector2" />
1473+
<param index="5" name="clip_l" type="float" default="-1" />
1474+
<param index="6" name="clip_r" type="float" default="-1" />
1475+
<param index="7" name="outline_size" type="int" default="1" />
1476+
<param index="8" name="color" type="Color" default="Color(1, 1, 1, 1)" />
1477+
<param index="9" name="oversampling" type="float" default="0.0" />
1478+
<description>
1479+
</description>
1480+
</method>
13641481
<method name="shaped_text_add_string">
13651482
<return type="bool" />
13661483
<param index="0" name="shaped" type="RID" />
@@ -1374,6 +1491,20 @@
13741491
Adds text span and font to draw it to the text buffer.
13751492
</description>
13761493
</method>
1494+
<method name="shaped_text_add_to_draw_list" qualifiers="const">
1495+
<return type="void" />
1496+
<param index="0" name="shaped" type="RID" />
1497+
<param index="1" name="layer" type="int" />
1498+
<param index="2" name="list" type="RID" />
1499+
<param index="3" name="transform" type="Transform2D" />
1500+
<param index="4" name="pos" type="Vector2" />
1501+
<param index="5" name="clip_l" type="float" default="-1" />
1502+
<param index="6" name="clip_r" type="float" default="-1" />
1503+
<param index="7" name="color" type="Color" default="Color(1, 1, 1, 1)" />
1504+
<param index="8" name="oversampling" type="float" default="0.0" />
1505+
<description>
1506+
</description>
1507+
</method>
13771508
<method name="shaped_text_clear">
13781509
<return type="void" />
13791510
<param index="0" name="rid" type="RID" />
@@ -2199,6 +2330,22 @@
21992330
<constant name="SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE" value="16" enum="SubpixelPositioning">
22002331
Maximum font size which will use "one quarter of the pixel" subpixel positioning in [constant SUBPIXEL_POSITIONING_AUTO] mode.
22012332
</constant>
2333+
<constant name="DRAW_CALL_NULL" value="0" enum="DrawCallType">
2334+
</constant>
2335+
<constant name="DRAW_CALL_NORMAL" value="1" enum="DrawCallType">
2336+
</constant>
2337+
<constant name="DRAW_CALL_MSDF" value="2" enum="DrawCallType">
2338+
</constant>
2339+
<constant name="DRAW_CALL_LCD" value="3" enum="DrawCallType">
2340+
</constant>
2341+
<constant name="DRAW_CALL_HEX" value="4" enum="DrawCallType">
2342+
</constant>
2343+
<constant name="DRAW_CALL_LINE" value="5" enum="DrawCallType">
2344+
</constant>
2345+
<constant name="DRAW_CALL_RECT" value="6" enum="DrawCallType">
2346+
</constant>
2347+
<constant name="DRAW_CALL_IMAGE" value="7" enum="DrawCallType">
2348+
</constant>
22022349
<constant name="FEATURE_SIMPLE_LAYOUT" value="1" enum="Feature">
22032350
TextServer supports simple text layouts.
22042351
</constant>

0 commit comments

Comments
 (0)