Commit Graph

46 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
3117a3e098 🤷 2026-06-12 17:51:01 -03:00
Martín Lucas Golini
7928980286 Mh? 2026-06-12 17:10:00 -03:00
Martín Lucas Golini
a01068e56b Maybe now? 2026-06-12 16:40:51 -03:00
Martín Lucas Golini
96cee9d1c4 This should make premake5 configuration beta8 friendly.
Improvement for: SpartanJ/ecode#913.
2026-06-12 14:43:35 -03:00
Martín Lucas Golini
a81f99e0a5 Try fix ecode arm64 MSVC nightly build. 2026-06-12 01:51:08 -03:00
Martín Lucas Golini
4005d2ccc5 Fix MSBuild path. 2026-06-12 00:11:44 -03:00
Martín Lucas Golini
7ec44b1547 Added pending SDL3 script support for MSVC and mingw. It can now be built without previously installing SDL3 manually, it resolves the dependency the same way we do for SDL2.
Scripts now accept the CLI argument: `--backend=sdl3` to force building with SDL3 backend. ecode build script will just generate the package with SDL3.
2026-06-08 21:42:42 -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
9fbb16dee3 I guess this should work and fix the issues on ecode MSVC build. 2025-12-14 20:38:47 -03:00
Martín Lucas Golini
7cb012be90 Fix eepp.dll path. 2025-12-14 20:02:23 -03:00
Martín Lucas Golini
1116575774 Adds ecode nightly build MSVC arm64 target. 2025-12-14 19:40:00 -03:00
blueberryscone238
bd86dd50d5 Update ecode-nightly.yml (#155)
* Update ecode-nightly.yml

* Create patch_commit_number.ps1

* Update ecode-nightly.yml

* Create copy_ecode_assets.ps1

* Update ecode-nightly.yml

For consistency, all use backward slashes now.

* Update ecode-nightly.yml

* Update ecode-nightly.yml

* Create build.app.ps1

* Update build.app.ps1

* Update ecode-nightly.yml

* Update build.app.ps1

* Update build_sdl2.sh

* Update ecode-nightly.yml

* Update patch_commit_number.ps1

* Update build.app.ps1

* Update patch_commit_number.ps1

* Update copy_ecode_assets.ps1

* Update copy_ecode_assets.ps1

* Update build.app.ps1

* Update ecode-nightly.yml

* Update ecode-nightly.yml
2025-12-13 13:50:27 -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
1567708633 Added "windows-vc-build" argument to premake5. 2020-01-17 23:43:25 -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
588ce9251a Fix in editor for Windows.
--HG--
branch : dev
2019-11-10 00:45:59 -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
dd9d2021f2 Windows fixes and some changes in the premake projects.
--HG--
branch : dev
2019-06-19 03:15:47 -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
Martín Lucas Golini
1f42c01174 Fixed hgignore. It was ignoring files that didn't have to.
Added the files wrongly ignored.
Changed EE::MemoryManager::LogResults() to EE::MemoryManager::ShowResults().
Because it's not loging anything!
2012-12-17 00:29:06 -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
0cc276d89b Added InputEvent::TextInput event.
Added support to switcheable backends without recompiling.
Added some helpers to load WindowSettings and ContextSettings from an ini file.
Moved default Demo to a Demo namespace.
Optimized cGameObjectsShapeEx lights.
Changed some functions names to CamelCase.
cIniFile avoids to re-read files.
Windows 8 and Windows Server 2012 now are correctly detected.
2012-10-15 02:33:01 -03:00
spartanj@gmail.com
81c78d960a Added a new example.
Separated the Makefile in two parts.
2012-06-17 02:03:11 -03:00
spartanj@gmail.com
ff0d35f212 Added Visual Studio 2010 projects ( static and dynamic compilation, and one example ). 2012-06-09 21:02:56 -03:00