Commit graph

44 commits

Author SHA1 Message Date
Jason Yau
947f815181
Video playback fixes and improvements (#1155)
* android oes video zero-copy and gles shader fixes

* regenerate windows-rs by windows-strip

* fix windows video freezes with MF on an MTA worker

* regenerate windows-rs by windows-strip

* MTA MF video, COM notify, YUV texture reuse

* add local video file playback support to video-player example

* NV12 Metal present, seek warm-up gate, YUV full range

* fix Linux GStreamer video: A/V mute, HLS prepare, async teardown

* no-op SelectVideoTrack/SelectAudioTrack on non-Linux backends

* Linux ALSA/Pulse: bigger buffers, fix resample setup, report device rate

* fix some warnings

* Move XInput/DirectInput device discovery off the UI thread

* fix GLSL unpack4u8 for GLES 3.0 (#version 300 es)

* Linux GStreamer: DMA-Buf NV12 OES zero-copy, optional GLMemory path

* Linux MediaPlugin: DMA-Buf NV12 and GLMemory zero-copy present APIs

* Add Windows SourceReader DXGI NV12 zero-copy video path

* fix build error

* fix GLES: add highp precision for sampler2DArray in Linux shaders

* playback speed support for android

---------

Co-authored-by: jasonqiu <jasonqiuchen@outlook.com>
Co-authored-by: jasonqiu <jasonqiu@futunn.com>
2026-08-10 12:29:33 +02:00
admin2
dfacfb5d51 Clean unused workspace patch warnings 2026-07-08 12:48:33 +02:00
Admin
f50ee44a0f update zune 2026-06-02 18:47:28 +02:00
Kevin Boos
2e6726f4c3 Add full app lifecycle event support, and Ctrl+C/signal catch (#1074)
* WIP: adding full app lifecycle event support, and Ctrl+C/signal catch

* Added fuller lifecycle event support, plus ability to catch sigquit

Tested working well on every platform except web/wasm, as I don't have
a working setup able to test that.
2026-05-01 22:30:24 +02:00
Admin
ff07672927 optimize 2026-03-29 22:12:33 +02:00
Admin
c8b0a7ad4b remove dep 2026-03-18 00:06:32 +01:00
Admin
45c277dc59 almost reasonable 2026-03-17 19:00:27 +01:00
Admin
771141ced9 slow voxels 2026-03-15 15:36:30 +01:00
Admin
c2e6b29f39 fixup 2026-03-12 09:39:16 +01:00
Sabin Regmi
d0e0c08fe9 Optimize font loading and add SharedBytes (#938)
Introduce selective font loading and a SharedBytes abstraction with mmap support to reduce memory and IO overhead when handling fonts.

Key changes:
- Add SharedBytes (with MappedBytes using memmap2) and stats; switch FontData to SharedBytes and update loader/loader tests.
- Platform: add memmap2 dependency (non-wasm), new platform API helpers get_resource_abs_path and get_resource_font_bytes to prefer mmap'ed files and fall back to owned bytes.
- Font family/load changes: ensure_fonts_loaded_for_text and update_font_definitions now accept optional text to load only needed fallback fonts (CJK/emoji) based on text content and resource basename heuristics.
- Avoid eager loading of heavy bundled fallback fonts (LXGWWenKai*, NotoColorEmoji.ttf) when loading all script resources.
- Add env override MAKEPAD_TEXT_ATLAS_SIZE for text atlas size parsing and tests; add related parsing helpers and tests.
- Minor fixes: safer transmute for font_face data slice and several unit tests to validate behavior.

Overall this reduces unnecessary font resource reads/mmap usage and allows tuning text atlas size via environment.
2026-03-11 16:25:35 +01:00
Admin
6679035b4a hiccup 2026-03-11 10:19:58 +01:00
Sabin Regmi
d0d45be323 Hotreloading Nits (#936)
* Add wasm server_manager and ownership guard

Introduce a new wasm server_manager module that implements WasmServerOwnershipGuard to manage per-workspace lock files, PID/port ownership, and safe replacement of stale or live servers. Integrate the guard into compile::run by preparing and activating the guard before starting the HTTP server; start_wasm_server now accepts the guard, returns a Result, checks bind success, activates the guard, and propagates thread join errors. The server manager includes platform-specific PID handling, port-probing, lock read/write/remove helpers, and unit tests exercising startup scenarios and lock lifecycle. Also add mod declaration and apply minor formatting/refactor cleanups across compile.rs (error formatting, whitespace, and logging improvements).

* Add startup mutex and port occupant diagnostics

Rename server_manager into top-level module and add startup mutex handling and improved diagnostics. Introduces atomic lock writes (write_file_atomically), a StartupMutexGuard with configurable timeouts/polling, and logic to detect/recover stale startup locks to prevent concurrent wasm run startups. Extends ServerManagerProbes with describe_port_occupant and implements platform-specific detection (lsof on Unix, netstat/tasklist on Windows) to provide clearer errors when ports are occupied. Updates imports (main.rs, compile.rs, mod.rs) and adds unit tests covering startup lock behavior and unknown-occupant error text.

* Improve hot-reload logging and delivery

Add clearer logging and error handling for wasm hot-reload events. Introduces hot_reload_display_name to extract a user-friendly file name, logs when a hotreload is detected, and checks tx.send result to avoid panics when the watcher channel is closed. broadcast_hot_reload_event now logs whether events were skipped (no /$watch clients) or sent and includes the delivered client count with proper pluralization.

* Check lock PID owns port and add startup timestamp

Require that a lock's PID both be alive and actually own the server port to be considered a live lock (classify_lock_state now takes listen_addr). Add parsing of a started_at timestamp in startup locks and use now_unix_millis to age out stale startup locks even if the PID is alive. Extend ServerManagerProbes with now_unix_millis and pid_owns_port, implement port_occupant_info and PortOccupant to centralize occupant detection/refinement for unix and windows, and refactor describe_port_occupant to use it. Update tests and MockProbes to exercise PID ownership checks and startup-lock aging; add tests for PID reuse (treated as stale if it doesn't own the port) and for startup lock aging.

* Hot reload: dedupe sites, add logging

Avoid duplicate ScriptMod sites during hot reload and improve diagnostics. collect_compiled_sites_for_file now tracks seen ScriptModKey values to prevent pushing duplicates. handle_cx_live_edit counts processed files and logs how many overrides were applied and from how many changed files. forward_hot_reload_fs_event logs each detected file and reports if the watcher channel is closed. Minor import cleanup and a helper hot_reload_display_name were added for nicer log output.

* shared core for reload

* Warn and fallback to unminified JS on write error

When writing the minified JS file fails, log a warning and fall back to copying the original JS file instead of returning an error. This avoids failing the build on IO/write errors (e.g. permissions or disk issues) while preserving the previous behavior of using the unminified copy when reading fails. No change to successful minification path.
2026-03-10 12:47:38 +01:00
Admin
9cb19135e0 hotreloading 2026-03-09 17:25:14 +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
6c5f2728a9 cleanup 2026-03-01 23:15:39 +01:00
Admin
0aa3533210 network refactor 2026-02-24 14:04:37 +01:00
Admin
582af4b271 splice out a makepad-network crate 2026-02-23 23:21:31 +01:00
Admin
8fb6cdff83 vulkan vendoring completed 2026-02-16 09:10:27 +01:00
Admin
d4e6c53358 vulkan otw + widget fixes 2026-02-15 16:04:24 +01:00
Admin
11e49f0700 android vulkan otw 2026-02-15 14:18:42 +01:00
Admin
e6bf62d801 headless optimized 2026-02-15 12:31:30 +01:00
Admin
6b0baf9244 headless multithreading 2026-02-15 12:21:22 +01:00
Admin
71bee4562c headless otw 2026-02-15 09:48:28 +01:00
Admin
1ee7299f84 linux 2026-02-14 18:07:21 +01:00
Admin
8c8e25c89a x11 working 2026-02-14 16:53:27 +01:00
Admin
eb324d255a fix 2026-02-14 15:12:37 +01:00
Admin
14d4b8b533 windowsrs vendored 2026-02-14 12:27:38 +01:00
Admin
a1e0174c9a vendored windows 2026-02-14 11:54:41 +01:00
Admin
7d3863bff2 windows rs strip 2026-02-14 11:32:16 +01:00
Admin
8e6702c56b First 2.0 2026-02-12 14:52:33 +01:00
Jason Yau
01c48991b7 fixed IME composition popup position for Windows (#841)
Co-authored-by: jasonqiu <jasonqiuchen@outlook.com>
2026-01-17 17:57:36 +01:00
Julián Montes de Oca
e09086a1d8 Remove unused tempfile dep (#805) 2025-12-02 18:42:01 +01:00
Admin
0a1e93a89e align mathtypes to WGSL 2025-12-02 11:43:12 +01:00
Admin
520ef9486f platform2/draw2 otw 2025-11-30 14:56:53 +01:00
Admin
6a5b52217e first shader typeinferencing 2025-11-18 07:43:55 +01:00
Drin
1c4758655e feat: a native wayland backend (#793)
* initialize the event loop for wayland backend

Signed-off-by: drindr <dreamchancn@qq.com>

* feat: hidpi wayland and mouse event
- hidpi support with wayland
- mouse event support
- refactor some code

Signed-off-by: drindr <dreamchancn@qq.com>

* wayland xkbcommon for key pressing event

Signed-off-by: drindr <dreamchancn@qq.com>

* add support for IME in with wayland

---------

Signed-off-by: drindr <dreamchancn@qq.com>
Co-authored-by: makepaddev <20386332+makepaddev@users.noreply.github.com>
2025-10-25 19:35:58 +02:00
Admin
d9fc8da18a add script dep to platform 2025-10-16 13:04:49 +02:00
Kevin Boos
31c2476c4d Update old windows-targets dep version to reduce lockfile duplicates (#780)
All other crates in the Rust ecosystem depend on `windows-targets`
v0.52.*, so this small change vastly reduces the number of duplicate
`windows-*` crate dependencies that cargo must download and track in the lockfile.

Also address minor compiler warnings in AdaptiveView.
2025-07-12 02:10:51 +02:00
Admin
cf4f18c829 1.0.0 2025-05-15 16:46:16 +02:00
Admin
05ac4d0e06 revert jni/android state 2025-05-12 12:47:17 +02:00
Admin
e6249de0c6 fix split 2025-05-12 12:08:13 +02:00
Admin
a60261c1da 0.9.0 test 2025-05-11 22:24:36 +02:00
Eddy Bruel
ff9048cc37 Initial commit 2025-05-06 10:11:37 +02:00