Commit Graph
28 Commits
Author SHA1 Message Date
Martín Lucas Golini 36e54fe2a3 Add reactive UI data binding and observable collections
Introduce observable and computed values, typed widget bindings, validation groups, UI properties, commands, and UI-thread delivery.

Add observable vector and list model support for incrementally updated collections, with filtering and source-row mapping.

Modernize the Flight Booker and CRUD examples and add focused data handling and collection examples demonstrating the new APIs.

Organize the UI binding headers under ui/databinding, expand test coverage for notification and lifetime semantics, and document API selection, validation, ownership, threading, and performance behavior.
2026-08-22 01:00:04 -03:00
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 6a56b21868 EE::Maps is now a module and not part of the main library. 2022-12-03 18:54:13 -03:00
Martín Lucas Golini 3eb9d75fa4 eterm code refactor. 2022-07-03 19:41:58 -03:00
Martín Lucas Golini 344ce7ddb0 Renamed modules to plugins.
Moved plugins configuration files to plugins folder.
UICodeEditor: Fixed whitespaces color.
2022-05-31 16:46:01 -03:00
Martín Lucas Golini cf83d8fbf3 Renamed "codeeditor" folder to "ecode" (the real app name). 2022-04-01 00:38:10 -03:00
Martín Lucas Golini e47247180d Minor mingw64 GCC v5 fix. 2020-12-12 03:33:42 -03:00
Martín Lucas Golini 2a81ade262 Fixes for mingw and vc. 2020-08-18 02:02:44 -03:00
Martín Lucas Golini 5a7ffbf0f5 Improved DPI awareness on Windows.
Minor fix in Code Editor.
Fixed Code Editor build with mingw32.
2020-06-21 00:47:41 -03:00
Martín Lucas Golini 71e9775824 Windows build fixes. 2020-05-25 16:52:11 -03:00
Martín Lucas Golini af29d3e7ef Added support for on screen keyboard on Windows.
--HG--
branch : dev
2020-01-12 14:56:40 -03:00
Martín Lucas Golini bb30c62fab Removed support for SFML2 module (mantaining this backend does not make any sense at this point).
Removed custom Platform implementations for windows and cursor control (control is taken by the SDL2 backend).
And some clean up.

--HG--
branch : dev
2019-10-06 02:49:41 -03:00
Martín Lucas Golini 02c59db98a Disabled EngineInitializer ( it doesn't work on windows ).
--HG--
branch : dev
2018-03-08 01:54:01 -03:00
Martín Lucas Golini 77637f71fa Moved "src/eepp/helper" folder to "src/thirdparty".
Also some minor fixes.

--HG--
branch : dev-2.1
2017-12-30 14:29:38 -03:00
Martín Lucas Golini 78e8b7fd33 Windows compilation fix.
--HG--
branch : dev
2017-04-12 02:51:33 -03:00
Martí­n Lucas Golini eee63bf784 Renamed EE::Gaming module to EE::Maps.
--HG--
branch : dev
2017-04-10 00:28:04 -03:00
Martí­n Lucas Golini e09b07ecc0 Added ClippingMask class, for clipping with scissor test, clip planes and stencil test.
Fixed some minor problems.

--HG--
branch : dev
2017-03-30 01:17:11 -03:00
Martín Lucas Golini c7735d75fe Fixes for VS windows build.
--HG--
branch : dev
2017-03-22 01:57:39 -03:00
Martín Lucas Golini 2647f03933 Renamed "base" folder/module to "core".
Renamed "declares.hpp" to "config.hpp"
Removed some compiler warnings.
Fixed some minor bugs in cSound and cSoundBuffer.
2014-06-07 02:12:18 -03:00
Martín Lucas Golini 7eeea19d75 Updated files in qtcreator windows project. 2013-10-26 15:29:02 -03:00
Martín Lucas Golini 9409443df5 Fixd VC++ compilation.
SDL2 is now the default backend for VC++.
2013-08-16 00:39:51 -03:00
Martín Lucas Golini 03c481932e Fixed SDL2 for Windows. 2013-06-22 01:27:07 -03:00
Martín Lucas Golini 8da0bc0c09 Minor fixes to make it work eepp as a dll in windows. 2012-12-17 13:06:59 -03:00
spartanj@gmail.com 93ae458174 Cleaned up a little bit the code,to include stl only when is needed.
Reduced compilation time because of this.
Moved SOIL to src, api not exposed anymore.
Renamed the demos and examples namespaces.
2012-11-27 01:16:26 -03:00
spartanj@gmail.com 81c78d960a Added a new example.
Separated the Makefile in two parts.
2012-06-17 02:03:11 -03:00