font.4th: TEXT entry point, UTF-8 string rendering (item 4.3.6f)
Punch list §25 item 4.3.6f complete. TEXT ( c-addr u x y size color -- ) walks a UTF-8 byte string, decoding one codepoint at a time via DECODE-UTF8, drawing each via DRAW-GLYPH, and accumulating the cursor X by the glyph's em-advance scaled to pixels. Uses 2>R/2R> to stash the DECODE-UTF8 remainder off the data stack while DRAW-GLYPH's args are pushed. Defined in font.4th, not fabric.4th, so its compiled DRAW-GLYPH call binds to the real definition, not fabric.4th's 4.3.6b placeholder -- same early-binding constraint as DISPATCH-GLYPH itself. Verified live: a string mixing ASCII, Latin-1 (degree sign), and General Punctuation (em dash) renders correctly in one TEXT call with proportional spacing, no overlap. Three-arch acceptance boot clean, Stadium conservation unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
aee09cac0a
commit
2960989100
+63
-62
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-10T00:39:34Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-10T00:45:33Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
@@ -14,7 +14,7 @@
|
||||
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
|
||||
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
|
||||
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9b1d061339cea98d` |
|
||||
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984 | `0x4aea980f4e15fafa` |
|
||||
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x720792b4fc758156` |
|
||||
| `hermes:init.4th` | 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4175, 4176 | `0x85c7b311d1e5bf97` |
|
||||
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` |
|
||||
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` |
|
||||
@@ -255,66 +255,67 @@
|
||||
| 4922 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 4923 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 4924 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 4925 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4926 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4927 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4928 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4929 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4930 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4931 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4932 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4933 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4934 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4935 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4936 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4937 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4938 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4939 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4940 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4941 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4942 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4943 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4944 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4945 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4946 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4947 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4948 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4949 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4950 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4951 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4952 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4953 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4954 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4955 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4956 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4957 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4958 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4959 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4960 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4961 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4962 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4963 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4964 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4965 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4966 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4967 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4968 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4969 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4970 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4971 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4972 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4973 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4974 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4975 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4976 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4977 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4978 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4979 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4980 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4981 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4982 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4983 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4984 | `font.4th` | `0x4aea980f4e15fafa` | ok |
|
||||
| 4925 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4926 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4927 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4928 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4929 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4930 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4931 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4932 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4933 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4934 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4935 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4936 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4937 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4938 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4939 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4940 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4941 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4942 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4943 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4944 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4945 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4946 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4947 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4948 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4949 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4950 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4951 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4952 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4953 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4954 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4955 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4956 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4957 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4958 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4959 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4960 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4961 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4962 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4963 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4964 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4965 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4966 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4967 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4968 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4969 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4970 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4971 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4972 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4973 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4974 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4975 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4976 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4977 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4978 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4979 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4980 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4981 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4982 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4983 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4984 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 4985 | `font.4th` | `0x720792b4fc758156` | ok |
|
||||
| 5000 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 5001 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 5002 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
|
||||
Reference in New Issue
Block a user