Commit Graph

89 Commits

Author SHA1 Message Date
Martín Lucas Golini
6b277e508b migrate fonts to scoped resource ownership
- replace FontManager with per-ResourceScope FontService instances
  - publish font factories into explicit or default resource scopes
  - import default resources into UI scene scopes unless explicitly disabled
  - keep related font faces strongly owned without hot-path weak_ptr locking
  - add cached glyph advance queries without creating texture pages
  - fix font picker preview ownership, cleanup, and rapid switching
  - selectively evict TextLayout cache entries when referenced fonts unload
  - document FontService, ResourceCatalog, and cache invalidation semantics
  - migrate examples, tools, benchmarks, and tests to the scoped font API
  - expand coverage for font ownership, texture release, and layout caching
2026-07-24 01:54:51 -03:00
Martín Lucas Golini
574b6b9014 move nine-patches into scoped catalogs
Return shared handles from NinePatch creation and remove the process-wide
  NinePatchManager singleton.

  Extend ResourceCatalog with typed drawable-source ownership and expose
  drawable publication, lookup, and removal through ResourceScope. Preserve
  separate texture and drawable namespaces for direct typed lookup.

  Give each UITheme its own resource catalog and have scene-owned theme
  managers explicitly import and remove theme catalogs. Handle registered
  themes and default-only themes without leaking stale resource visibility
  between scenes.

  Update theme loading, Engine teardown, platform source manifests, and
  resource ownership tests for the catalog-based model.

  Document that remaining singleton resource managers must migrate to
  naturally owned catalogs and explicit scope imports instead of becoming
  new process-global semantic namespaces.
2026-07-22 22:07:00 -03:00
Martín Lucas Golini
2d8693295c add shared WebView resource cache:
Introduce WebResourceCache with partitioned sharing, per-document sessions,
navigation generations, leases, and canonical request keys.

Coalesce concurrent document, stylesheet, font, and image requests while
discarding stale navigation subscribers independently. Retain completed
resources with TTL/LRU and byte-budget policies, and periodically prune
expired unleased entries from UIWebView.

Route UISceneNode, UIWebView, UIImage, CSS background images, and remote
drawable resolution through the shared cache. Preserve ResourceScope entries
as explicit overrides and allow multiple WebViews to share a cache partition.

Keep image decode and texture replacement on the guarded graphics-thread
completion path. Exclude volatile Cookie and Referer values from cache
identity while preserving partition isolation and content-affecting variants.

Start TTL retention when the final document lease is released so Back/Forward
navigation can reuse resources regardless of how long the previous page was
open.

Avoid unstable pointers and iterators into unordered_dense storage when
tracking leases and pruning entries. Add ASan regression coverage for dense
map growth, navigation, eviction, partition isolation, request coalescing,
retry behavior, and cache retention.

Fully document cache partitions, sessions, generations, request identity,
ownership, threading, and maintenance behavior.
2026-07-22 02:22:38 -03:00
Martín Lucas Golini
f7dba042df Replace DrawableSearcher with scoped drawable resolution:
Add a scene-owned UI::DrawableResolver for resolving file, data, HTTP, and
named drawable references through each UISceneNode's current resource scope.

Move generic texture, atlas region, nine-patch, and sprite lookup into
Graphics::ResourceScope, preserving drawable resolution for pure Graphics
consumers without introducing a UI dependency.

Migrate UI images, sprites, menus, CSS parsing, and tests to the new resolver.
Resolve CSS icons through the requesting node's scene instead of the global
scene, preserving embedded-scene isolation.

Remove the obsolete DrawableSearcher API and update platform project manifests,
tests, and the shared-resource architecture plan.
2026-07-21 23:50:58 -03:00
Martín Lucas Golini
d939766355 Disable glew by default (entering deprecation). 2026-06-23 22:54:44 -03:00
Martín Lucas Golini
461965f73d Fix SpartanJ/ecode#868. 2026-04-03 13:24:08 -03:00
Martín Lucas Golini
caebfc4d81 premake projects now enable text shaping by default. 2026-01-08 19:23:22 -03:00
Martín Lucas Golini
fa95500ab0 Use the copy_ecode_assets.sh script for building ecode in macOS too.
Fix incorrect check in `build_sdl2.sh`.
2025-12-13 11:51:07 -03:00
Martín Lucas Golini
9f55bee3e5 Fix macOS cross build. 2025-11-02 18:10:08 -03:00
Martín Lucas Golini
521631decf Fix ARGB images save when using WebP.
Upload artifacts.
2025-10-25 02:52:21 -03:00
Martín Lucas Golini
460eecdaa9 Update sign.sh script. 2025-10-14 20:25:01 -03:00
Martín Lucas Golini
4e8f93077d Do not notarize ecode.app... 2025-10-09 01:51:38 -03:00
Martín Lucas Golini
7139b7155c FML 2025-10-09 01:06:52 -03:00
Martín Lucas Golini
12f7fc9730 Try again? 2025-10-09 00:31:18 -03:00
Martín Lucas Golini
0ad52ad625 Notarize ecode.app. 2025-10-08 23:54:54 -03:00
Martín Lucas Golini
29dca584b5 Should fix notarization in macOS build. 2025-10-08 22:48:02 -03:00
Martín Lucas Golini
2d700f9e36 Use Resources path when building ecode.app. Should fix signing. 2025-10-08 22:21:59 -03:00
Martín Lucas Golini
97d6665d3b Implement macOS code-signing (not tested, let's see if CI works, very unlikely). 2025-10-08 21:39:44 -03:00
Martín Lucas Golini
2611af5a04 Fix crash in macOS. 2025-09-14 02:12:37 -03:00
Clemens Schmid
e5bd1dc3e1 added curry language definition for syntax highlighting (#138)
* added curry language definition for syntax highlighting

* fixed comment syntax definition for Haskell, Elm, and Curry
2025-08-06 14:19:58 -03:00
Martín Lucas Golini
cec4fa6e72 Add webp image format support (load and save).
Fix bug introduced in the last commit for UIDataBind initialization.
Change gmake2 in favor of gmake when using premake5 since it has been depreated in premake5-beta6 (hopefully I did not miss anything).
2025-06-04 21:02:38 -03:00
Martín Lucas Golini
1368ed30d3 Enable text-shaper in nightly builds. 2025-03-29 11:59:18 -03:00
Martín Lucas Golini
88b1b4df86 Fix clearing breakpoints. 2025-03-19 00:30:26 -03:00
Martín Lucas Golini
5d35302f87 Remove unused line in make scripts for macOS (closes #90). 2025-03-04 19:37:23 -03:00
Martín Lucas Golini
d73f1ea1ed debugger fixes and improvements for macOS. 2025-01-05 11:31:52 -03:00
Martín Lucas Golini
60784d79a6 Window size fixes on macOS.
Changes for SpartanJ/ecode/#373
2024-12-22 14:40:02 -03:00
Martín Lucas Golini
9c8a831ff3 Try again. 2024-11-01 01:30:53 -03:00
Martín Lucas Golini
ee11f236a8 This should fix the macOS CI version. 2024-11-01 01:21:07 -03:00
Martín Lucas Golini
d174b351e7 Check if forcing codesig-ing the app for macOS works for CI produced apps. 2024-11-01 00:46:18 -03:00
Martín Lucas Golini
3bdf32d3ec Nit in script. 2024-10-17 01:57:01 -03:00
Martín Lucas Golini
c6b08dec6d Fix SDL2.framework path. 2024-10-05 00:41:39 -03:00
Martín Lucas Golini
dba66e9e07 macOS dmg nightly is broken, trying to understand why... 2024-10-05 00:30:02 -03:00
Martín Lucas Golini
13a78c7491 Typo fix. 2024-10-03 20:20:10 -03:00
Martín Lucas Golini
13097468c6 Fix premake5 macOS build for nightly. 2024-10-03 18:09:06 -03:00
Martín Lucas Golini
2d3c0e88af This should localize SDL2 locally. 2024-10-01 18:51:04 -03:00
Martín Lucas Golini
0d880b8ac7 Try luck. 2024-10-01 18:14:14 -03:00
Martín Lucas Golini
06a2c605c8 Wrong script 🤦 2024-10-01 18:06:58 -03:00
Martín Lucas Golini
84cdfd2617 Try more verbosity to understand the problem. 2024-10-01 17:51:25 -03:00
Martín Lucas Golini
9d3e8f894c Disable cross build. 2024-10-01 14:40:35 -03:00
Martín Lucas Golini
32c87cc362 Fix typo. 2024-10-01 12:10:45 -03:00
Martín Lucas Golini
30b3478873 macOS nightly more WIP. 2024-10-01 12:00:43 -03:00
Martín Lucas Golini
5e97fcf4ef Try again. 2024-10-01 00:43:15 -03:00
Martín Lucas Golini
247f9cb8bf Fix typo. 2024-10-01 00:23:27 -03:00
Martín Lucas Golini
330f556af0 Try to setup macOS nightly. 2024-10-01 00:05:16 -03:00
Martín Lucas Golini
12e393b96a Minor improvements to the ecode build scripts. 2024-09-29 01:28:24 -03:00
Martín Lucas Golini
23bde61361 Don't delete different arch dmg when rebuilding. 2024-09-14 12:46:29 -03:00
Martín Lucas Golini
10c9906862 Keep folded regions on folding ranges refresh even if the folded region disappears from the new folded regions. It might be better/safer to unfold those regions but I'll experiment a little. 2024-08-21 01:34:47 -03:00
Martín Lucas Golini
20a22c5be2 More WIP. 2024-05-12 12:04:32 -03:00
Martín Lucas Golini
7a70e571b4 Try again. 2024-04-25 19:36:58 -03:00
Martín Lucas Golini
7f92fea3dc Try fix CI. 2024-04-25 19:18:46 -03:00