209 Commits

Author SHA1 Message Date
Alec Murphy
0d2b51cc39 System/Libraries/Css/Tokenizer: Handle parentheses 2025-04-24 20:04:56 -04:00
Alec Murphy
3bf6238aac System/Libraries/Html/Renderer: A whole bunch of CSS changes
We now handle simple and compound selectors, but not yet pseudo-classes
or (most) combinators.
2025-04-24 15:17:15 -04:00
Alec Murphy
fc2b4ba4e5 Everywhere: Live patch MAlloc/Free to use RMAlloc/RFree
To make MAlloc/Free operations consistent across multiple processors, we
use a dedicated task on core 5 to service the requests.
2025-04-24 15:11:46 -04:00
Alec Murphy
04a602bb3b Meta: Update debugging stuff 2025-04-23 10:27:21 -04:00
Alec Murphy
d9b835cea3 System/Libraries/Html/Renderer: Handle font-size pt values 2025-04-23 10:25:57 -04:00
Alec Murphy
ae408a4679 System/Libraries/Css/Tokenizer: Allow descendant combinator in matches 2025-04-23 10:07:19 -04:00
Alec Murphy
652396a18c System/Libraries/Html/Renderer: Apply CSS display rules in order 2025-04-23 09:22:38 -04:00
Alec Murphy
453d6f35a5 System/Libraries/Css+Html: Handle text-align: left 2025-04-22 15:45:39 -04:00
Alec Murphy
1cf0007b0b System/Libraries/Css+Html: Handle display: inline-block 2025-04-22 15:34:17 -04:00
Alec Murphy
d8fe2f0899 System/Libraries/Graphics2D+Widget: Use CAlloc2() 2025-04-21 19:49:25 -04:00
Alec Murphy
1b5635962f System/Core: Use CAlloc2() 2025-04-21 19:48:33 -04:00
Alec Murphy
9d774cfc23 System/Setup/Environment: Add CAlloc2(), MAlloc2() 2025-04-21 19:45:51 -04:00
Alec Murphy
e04b8e6fb4 System/Libraries/Graphics2D: Use Plot2D() for HLine2D() 2025-04-21 09:53:02 -04:00
Alec Murphy
75a2bb10c4 System/Libraries/Css+Html: Implement text-decoration-line: line-through 2025-04-21 09:31:00 -04:00
Alec Murphy
d723c7d9df System/FFI/TrueType: Reduce memory pool size from 32MB to 8MB
The maximum allocated memory by stbtt_RenderText() has never exceeded
2MB during testing. 8MB ought to be enough for anybody :^)
2025-04-20 10:09:58 -04:00
Alec Murphy
39973f452d Meta: Suppress compiler warnings 2025-04-19 21:38:13 -04:00
Alec Murphy
a322c06850 Everywhere: Give stbtt its own 32MB static memory pool
At boot time, we preallocate 32MB of RAM to reuse for all malloc()
requests by stbtt_RenderText(), which should be more than enough for the
primary use case (browsing web pages).
2025-04-19 21:01:14 -04:00
Alec Murphy
b40820272f System/Setup/Environment+FFI/LibC: Increase calloc/malloc mem_tasks
Give LibC malloc() and calloc() an array of 16 mem_tasks each, for now.
We will probably be removing this, in favor of giving each non-HolyC
library its own static memory pool, as we will do with stb_truetype.h in
a forthcoming commit.
2025-04-19 20:33:30 -04:00
Alec Murphy
b7cab3b419 System/Libraries/Html/Renderer: Use renderer->task instead of erythros_mem_task where applicable 2025-04-19 16:28:14 -04:00
Alec Murphy
d56a092dde System/FFI/LibC: Use Round-robin mem_task selection for calloc 2025-04-19 16:26:09 -04:00
Alec Murphy
15926654f8 System/Core/Compositor: Show available TrueType fonts in system log 2025-04-19 16:07:17 -04:00
Alec Murphy
b9eb4cb874 System/Libraries/Graphics2D: Alloc c2d wrapper functions off of Adam task's code heap 2025-04-19 16:00:21 -04:00
Alec Murphy
9550f24f73 System/Core/Compositor: Set TrueType font defaults from global config 2025-04-19 14:34:14 -04:00
Alec Murphy
a15de6eb33 System/Libraries/Graphics2D: Update @get_truetype_text_width() to use @stbtt_GetTextWidth() 2025-04-19 14:18:15 -04:00
Alec Murphy
80f691385a System/Utilities/TrueType: Add @stbtt_GetTextWidth() 2025-04-19 14:17:46 -04:00
Alec Murphy
546fd54a62 System/Libraries/Graphics2D: Update @get_truetype_text_width() to include advance 2025-04-19 10:42:26 -04:00
Alec Murphy
78ba717732 System/Utilities/TrueType: Update stbtt_RenderText() API to include advance 2025-04-19 10:41:55 -04:00
Alec Murphy
33b795fa93 System/Libraries/String: Add StrLenI32() 2025-04-19 10:41:11 -04:00
Alec Murphy
c54cd6ea51 System: Use Settings/config.json for debug options 2025-04-19 08:13:58 -04:00
Alec Murphy
3448acac38 System/Setup/Environment: Remove duplicate erythros_mem_task 2025-04-19 07:54:42 -04:00
Alec Murphy
c214ba9552 Meta: clang-format 20 2025-04-19 07:54:18 -04:00
Alec Murphy
e7d8b456aa Everywhere: Update to clang-format 20 2025-04-19 07:31:54 -04:00
Alec Murphy
402d802d2f System/Libraries/Html/Renderer: Set text underline height to 2px 2025-04-16 19:43:18 -04:00
Alec Murphy
5192ae34ec System/Libraries/Html/Renderer: Set focus is autofocus attribute is present 2025-04-16 18:21:31 -04:00
Alec Murphy
5ea8809a34 System/Libraries/Html/Tokenizer: Support empty attributes 2025-04-16 18:04:54 -04:00
Alec Murphy
4ef542cf32 System/Libraries/Html/Renderer: Keep track of form element widgets
Save a pointer to the corresponding Gui widget for each form element as
an attribute in the @html_dom_node.

I'm not a fan of doing this, but it is probably one of the better
options considering the way things are currently implemented, and the
remaining work to be done.
2025-04-16 14:57:33 -04:00
Alec Murphy
99268200f4 System/Libraries/Html/Renderer: Fix BGR/RGB flip in background
This is no longer needed and breaks things, so let's revert it.
2025-04-16 14:55:31 -04:00
Alec Murphy
24500f52a3 System/Libraries/(Css,Graphics2D,Html): Support underlined text
This commit adds the necessary functions to minimally implement support
for CSS text-decoration: underline.
2025-04-16 14:53:16 -04:00
Alec Murphy
622c35e038 System/Libraries/Html/Renderer: Apply CSS and HTML Element attribute width/height values to form elements 2025-04-16 10:36:51 -04:00
Alec Murphy
e60ffee006 System/Libraries/Html/Renderer: Unset node->display_block based on CSS value 2025-04-16 10:19:50 -04:00
Alec Murphy
e3d6121fe3 System/Libraries/Css/Tokenizer: Include single/double quoted tokens in CSS value 2025-04-16 10:09:29 -04:00
Alec Murphy
58f2243bf1 System/Core/Compositor: Update defaults for TrueType fonts 2025-04-15 16:22:12 -04:00
Alec Murphy
0a579a4f09 System/Libraries/Html/Renderer: Handle italic/oblique text 2025-04-15 16:21:52 -04:00
Alec Murphy
97187728e8 System/Libraries/Html/Tokenizer: Add italic property to @html_dom_node 2025-04-15 16:21:07 -04:00
Alec Murphy
3b83397e60 System/Libraries/Html/Renderer: Render STRONG 2025-04-15 15:35:20 -04:00
Alec Murphy
60606317b2 System/Libraries/Html/Renderer: Render LI ordered/unordered items 2025-04-15 15:34:54 -04:00
Alec Murphy
49b1e82e55 System/Core/Compositor: Update defaults for TrueType fonts 2025-04-15 11:54:53 -04:00
Alec Murphy
d6ff8beb9f System/Libraries/Html/Renderer: Initial support for CSS font-weight 2025-04-15 11:52:43 -04:00
Alec Murphy
d60fc53798 System/Libraries/Graphics2D: Chop 16px off X2 max pos in @get_truetype_text_width()
This is a quick and dirty hack to compensate for artifacts at the far
right edge of the font rasterization buffer. Chopping off 16px allows us
to get the proper width of the rasterized text.
2025-04-15 11:45:47 -04:00
Alec Murphy
0d303b0134 System/Libraries/Html/Tokenizer: Add fontWeight property to @html_dom_node 2025-04-15 11:28:07 -04:00