Commit graph

2,973 commits

Author SHA1 Message Date
Admin
4ca7685256 terminal wrangling 2026-03-03 13:21:53 +01:00
Admin
c17c4924cb fix 2026-03-03 09:43:45 +01:00
Admin
521b31d132 y flip webgl rendertartet 2026-03-03 09:42:54 +01:00
Admin
106de2274f rename network 2026-03-03 09:18:19 +01:00
Admin
307dfe4709 remove origin from widget tree 2026-03-03 08:55:01 +01:00
offline-ant
3098478266 turtle: rename BeginTurtle/EndTurtle to BeginClip/EndClip, add push/pop_clip_rect (#907)
Rename AlignEntry::BeginTurtle/EndTurtle to BeginClip/EndClip — these
entries control GPU clip rect stacking, not turtle lifecycle.

Add push_clip_rect/pop_clip_rect to Cx2d: lightweight API for manual
clip rect control without creating a full turtle. The existing
clip_and_shift_align_list pass intersects nested clip rects and writes
draw_clip into draw call instances.

Co-authored-by: ant <ant@offline.click>
2026-03-03 08:53:50 +01:00
offline-ant
aa5b0a9922 text: add letter/word spacing, RTL, features, y_offset, variations to shaper (#908)
Co-authored-by: ant <ant@offline.click>
2026-03-03 08:53:26 +01:00
offline-ant
e1bcba34a3 texture: add set_data_u32 for resize-safe updates (#910)
Add Texture::set_data_u32(cx, width, height, data) that replaces pixel
data and dimensions in one call. Unlike put_back_vec_u32, this also
updates width/height, making it safe for image sources that change
resolution (animated images, lazy-loaded placeholders).

Co-authored-by: ant <ant@offline.click>
2026-03-03 08:52:54 +01:00
Admin
c06fb56d4d find_child 2026-03-03 08:44:18 +01:00
Admin
6313b13e73 find_child 2026-03-03 08:38:55 +01:00
Admin
4dec4ce497 find_child 2026-03-03 08:37:28 +01:00
Admin
d80a6b8327 weakref widget tree 2026-03-02 22:22:30 +01:00
Admin
e6aed38950 finall fix render glitch 2026-03-02 20:16:29 +01:00
Admin
1f0cdc2f17 add studio proto 2026-03-02 12:46:52 +01:00
Admin
d64373e940 add studio proto 2026-03-02 12:30:33 +01:00
Admin
7bf6afa3ab fix paste in terminal 2026-03-02 12:18:26 +01:00
Admin
d4683f522f remote control 2026-03-02 12:07:59 +01:00
Admin
45ebb95cd4 remote working 2026-03-02 10:40:33 +01:00
Admin
bc2730365d filter proto 2026-03-02 09:32:23 +01:00
Admin
2e73aef735 unsupress fs events 2026-03-01 23:22:34 +01:00
Admin
6c5f2728a9 cleanup 2026-03-01 23:15:39 +01:00
Admin
1b435e0ffa studio tweaks 2026-03-01 21:58:08 +01:00
Admin
42e951bcde fixup studio backend 2026-03-01 21:12:24 +01:00
Admin
daf440ee80 wasm 2026-03-01 20:22:11 +01:00
Admin
1c7f08b4b3 logs 2026-03-01 11:26:27 +01:00
Admin
23f987ed8c logs 2026-03-01 11:23:04 +01:00
Admin
bd3d649fa2 logs 2026-03-01 10:51:46 +01:00
Admin
c7a45834f7 logs 2026-03-01 10:47:46 +01:00
Admin
a28fdfbd12 logs 2026-03-01 10:43:26 +01:00
Admin
695e2e92e4 logs 2026-03-01 10:40:47 +01:00
Admin
264485471d logs 2026-03-01 10:38:01 +01:00
Admin
18e0c8d68c fix 2026-03-01 10:28:49 +01:00
Admin
f612559a91 fix 2026-03-01 10:24:21 +01:00
Admin
d5d59d01c3 backend proto splitoff 2026-03-01 10:12:00 +01:00
Admin
fb60464757 fixes 2026-02-28 23:41:15 +01:00
Admin
a6a859f28d fix better errors 2026-02-28 23:19:25 +01:00
Admin
11859b7a44 makepad studio old 2026-02-28 22:42:57 +01:00
Admin
58a9032ee2 studio2 2026-02-28 22:30:21 +01:00
Admin
83f66a6e8a better vfs threading 2026-02-28 22:29:48 +01:00
Admin
d0d781bd10 studio2 otw 2026-02-28 21:27:26 +01:00
Admin
8ee8505d33 studio2 otw 2026-02-28 17:22:50 +01:00
Admin
3ce4f836ef fix 2026-02-28 12:48:06 +01:00
Admin
52b4bac5bd add cx module 2026-02-28 12:35:13 +01:00
Admin
5b07941f35 plaintext error 2026-02-28 11:40:11 +01:00
offline-ant
4ec9ba5c8b Apple metal and compile updates (#903)
Merge actool partial Info.plist into main plist for iOS 15 icon support.

Co-authored-by: ant <ant@offline.click>
2026-02-28 11:36:48 +01:00
offline-ant
b7231c05fc ios: use CVPixelBuffer-first GL/Metal bridge path (#904)
Co-authored-by: ant <ant@offline.click>
2026-02-28 11:17:48 +01:00
offline-ant
2781d6fc24 trigger redraw on Screenshot request in windowed mode (#905)
dispatch_studio_msg pushed to screenshot_requests but never
triggered a redraw. The GL readback that captures the screenshot
only runs during the render path, so the request was never
serviced in windowed backends (Wayland, X11, macOS).

Co-authored-by: ant <ant@offline.click>
2026-02-28 11:17:35 +01:00
offline-ant
b0880778b4 platform: add custom studio app message events (#906)
Co-authored-by: ant <ant@offline.click>
2026-02-28 11:17:10 +01:00
offline-ant
beabd2ac30 Fix missing app icons on iOS 15 by adding classic idiom entries to asset catalog (#902)
The Contents.json only had a single universal+platform entry, which is
only recognized by iOS 16+. Add classic per-idiom entries (iphone, ipad,
ios-marketing) so actool compiles both sets into Assets.car. iOS 15
falls back to the idiom-based entries.

Co-authored-by: ant <ant@offline.click>
2026-02-28 11:16:59 +01:00
offline-ant
a4150871e9 Font loading: defer registration to draw-time, add fast-path completeness check (#901)
Move font family registration out of on_custom_apply (script apply time)
and into ensure_fonts_loaded (draw time). This avoids redundant work when
the same FontFamily is applied to hundreds of widgets during a frame.

ensure_fonts_loaded now has a fast path that checks is_font_family_complete()
and returns immediately when all expected members are already registered.
The slow path calls load_all_script_resources() to progress pending loads
before falling back to update_font_definitions().

Other changes:
- FontFamilyDefinition gains expected_member_count to distinguish partial
  from complete registrations.
- set_font_family_definition skips cache eviction when the definition or
  cached family is already equivalent.
- load_font_family now clones the definition instead of removing it,
  allowing re-loads after cache eviction without losing the definition.
- Loader::font_family_definitions and Layouter::loader are now pub(crate)
  to support the completeness query from Fonts.

---

Review observations (not yet addressed):

1. STALE FAMILY ON RE-APPLY (medium risk): If a FontFamily is re-applied
   with different members but the same object index (same family_id), the
   fast path in ensure_fonts_loaded will see the old definition as
   "complete" and never call update_font_definitions with the new members.
   Fix: compare current member handles against stored definition, or set a
   dirty flag in on_custom_apply that forces one refresh.

2. UNNECESSARY LAYOUT CACHE FLUSH (medium risk): Layouter::set_font_family_definition
   unconditionally clears cached_params and cached_results even when
   Loader::set_font_family_definition short-circuits as unchanged. During
   partial-load states ensure_fonts_loaded may call update repeatedly with
   identical partial definitions, flushing the text layout cache each time.
   Fix: propagate a changed bool from Loader and only clear when true.

3. COMPLETENESS IGNORES CACHE-ONLY STATE (low risk): is_font_family_complete
   only checks font_family_definitions, not font_family_cache. If a family
   was already loaded into cache and its definition consumed, completeness
   returns false. The new early-return in set_font_family_definition for
   cache-match mitigates this in practice but the invariant is fragile.
   Fix: also check font_family_cache in is_font_family_complete, or ensure
   definitions are always retained (which this diff partly does by switching
   from remove to get+clone in load_font_family).

Co-authored-by: ant <ant@offline.click>
2026-02-28 10:29:36 +01:00