Commit graph

661 commits

Author SHA1 Message Date
Admin
62a7fd33f4 cef 2026-03-17 19:00:28 +01:00
Admin
c4064cef6a vulkan video textures 2026-03-17 19:00:28 +01:00
Kevin Boos
b376a3c447 Proper widget tree fix (#956)
* Fix macos platform build failures related to PR#946

* Properly fix the new breadth-first widget tree lookup
2026-03-16 19:27:32 +01:00
Admin
98bc76b705 vulkan back 2026-03-15 13:20:49 +01:00
Admin
0cfd9f36e0 otw 2026-03-15 09:52:45 +01:00
Sabin Regmi
747d04c898 ft floating panel on macos (#945) 2026-03-14 12:12:35 +01:00
offline-ant
2e94536b28 platform: rework custom MSE playback sessions (#946)
Co-authored-by: ant <ant@offline.click>
2026-03-14 12:12:21 +01:00
Kevin Boos
682592c214 Fix HtmlLink attribute init to handle any attr order (#948) 2026-03-14 12:11:42 +01:00
Kevin Boos
a97c2ca8a6 fix tooltip by force-drawing the draw list upon show/hide (#950)
Without this, the tooltip will not necessarily be shown upon its
first call to `show()`, especially if the CalloutTooltip wrapper
is driving it.
2026-03-14 12:11:32 +01:00
Kevin Boos
fa9cb2d6b0 Support image rotation in degrees (#952)
This was previously a feature but was lost in the 2.0 migration
2026-03-14 12:11:01 +01:00
wyenox
1f67fd014d Fix and optimize widget search to return the shallowest match in the tree (#949) 2026-03-14 07:49:32 +01:00
Admin
695403ef72 xr otw 2026-03-12 15:51:30 +01:00
Sabin Regmi
f3a149446b Windows Blur, System Composition (#940)
* Initial plan

* feat(platform): add window visuals API and M1 backdrop wiring

Co-authored-by: wheregmis <26774729+wheregmis@users.noreply.github.com>

* feat(uizoo): add M2 GlassPanel widget and demo tab

Co-authored-by: wheregmis <26774729+wheregmis@users.noreply.github.com>

* blue example

* Apply backdrop intensity and transparency

macOS: apply visuals.backdrop_intensity to the NSVisualEffectView alpha (clamped) so backdrop intensity affects the effect view.

Windows: honor visuals.backdrop_intensity by computing an alpha-packed accent color, toggle WS_EX_LAYERED for transparent windows, call SetLayeredWindowAttributes and DwmExtendFrameIntoClientArea when needed, and set the AccentPolicy accordingly (enable blur for transparent or non-none backdrops, set gradient_color based on intensity, and set accent_flags depending on DWM attribute result).

Tests: update expected backdrop_intensity in a unit test from 4.0/1.0 to 0.25 and assert a platform op is emitted. These changes ensure backdrop intensity and transparency settings are respected across platforms.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: wheregmis <26774729+wheregmis@users.noreply.github.com>
2026-03-12 14:57:09 +01:00
Admin
bfd4a13648 fix 2026-03-11 18:15:12 +01:00
Admin
6c320a7afc dock fix 2026-03-11 10:19:58 +01:00
Admin
6679035b4a hiccup 2026-03-11 10:19:58 +01:00
Kevin Boos
aa75380abc Support hiding a dock tabs bar (#937) 2026-03-10 08:00:44 +01:00
Admin
58531df4f4 fix uid 2026-03-09 16:42:43 +01:00
Admin
eba48ce826 live reloading 2026-03-08 17:25:27 +01:00
offline-ant
642a929e5f platform: video/camera subsystem with media plugin architecture (#929)
Video playback: extended API with volume, playback rate, seek ranges,
buffered ranges, can_play_type, audio-only mode. Unified player wrapping
native backend (AVPlayer/GStreamer/MediaFoundation) with software fallback.
YUV shader pipeline (BT.601/709/2020, NV12 biplanar, rotation).

Camera: V4L2 backend (Linux), expanded NDK Camera2 (Android), AVCapture
stream refactor (iOS/macOS) with shared session architecture. NV12
zero-copy paths on iOS (CVMetalTextureCache) and Android (AImage planes).
Camera preview modes (texture/native/auto).

Video encoding: H264 hardware encode on Apple (VideoToolbox) and Android
(MediaCodec). Camera-to-encoder pipeline with pixel buffer passthrough.

Media plugin system: externalized codec implementation via MediaPlugin
trait. MsePlayer, VideoFrameDecoder, MediaVideoEncoder, SoftwareVideoPlayer
interfaces. Runtime codec capability query and merge.

Includes camera example app.

Co-authored-by: ant <ant@offline.click>
2026-03-08 13:10:58 +01:00
offline-ant
744f45db3e platform: native mobile selection handles (#930)
* platform: popup window API with X11/Wayland support

- Add popup window type for context menus and dropdowns
- Wayland: xdg_popup with grab for compositor-driven dismiss
- X11: override-redirect windows with pointer grab
- Explicit-close semantics: app must handle PopupDismissed
- Fix Wayland crash on repeated context menu open/close
- Emit WindowClosed before PopupDismissed in PopupDone

* platform: native mobile selection handles

iOS: custom UIView selection handles with UIPanGestureRecognizer (all versions),
UITextSelectionDisplayInteraction for native highlights (iOS 16+),
MakepadSelectionRect for UITextInput protocol.

Android: custom SelectionHandleView with GradientDrawable oval, touch drag
listeners, JNI bridge for handle drag events.

Widgets: TextFlow clipboard action integration (show on touch up with selection,
hide on touch down/focus lost, TextCut handler), PortalList select-all and
clipboard actions, selection bounding rect computation for popup positioning.

Includes text_selection example app.

---------

Co-authored-by: ant <ant@offline.click>
2026-03-08 12:15:31 +01:00
offline-ant
dd83d4b759 platform: small fixes and quality improvements (#928)
- Android log levels: map log! macro levels to Android log priorities
  (ERROR=6, WARN=5, INFO=4). Some devices suppress DEBUG by default.
- cargo-makepad android: show help text instead of panicking on missing
  or invalid subcommand.
- Android build: discover .class files dynamically instead of hardcoding
  ~25 individual paths. Add Java 8 source/target flags.
- Remove deprecated AsyncTask import from MakepadNetwork.java.
- Studio stdout: add newline after JSON messages for JSON-lines parsing.
- Studio stdout: skip profiler timing in stdout mode to avoid overhead.
- Script thread: fix panic on empty call stack in call_has_me/call_has_try.
- Cursor: reset to Default on FingerHoverOut in TextFlow and TextInput.

Co-authored-by: ant <ant@offline.click>
2026-03-08 11:24:18 +01:00
Admin
9e4f24977a script api for slide panel 2026-03-08 10:57:03 +01:00
Admin
d758d6d95e fixing 2026-03-08 09:20:34 +01:00
Admin
c8412703b0 oops. uids 2026-03-08 08:42:49 +01:00
Admin
73035bcdd9 Harden widget tree refresh and require explicit widget uids 2026-03-07 11:23:22 +01:00
Kevin Boos
97bb42e439 TextInput: actually use color_empty_hover/focus in draw_text shader (#927) 2026-03-07 09:46:44 +01:00
Sabin Regmi
3905ae4d1c Load script resources per-handle (avoid global loads) (#923)
Replace broad cx.load_all_script_resources() calls with a targeted cx.load_script_resource(handle) to only request the specific resource needed. Refactor script resource loading (platform/src/script/res.rs) by extracting load_script_resource_impl(handle, crate_manifests) and exposing load_script_resource(handle); keep load_all_script_resources() by iterating per-handle. Improve wasm handling: resolve web_url per-resource, set explicit error states when missing, and fire async HTTP requests safely. Remove an early call to load_all_script_resources() from web startup. Additional changes: serve precompressed .br files in the local wasm dev server (with COOP/COEP headers when threaded), add wasm-specific font/theme script entries for widgets, and update various callers (draw shaders, widgets, math_view, gltf/view_splat, image) to use the per-handle loader. These changes reduce unnecessary global loads and limit network/file operations to only required resources.
2026-03-06 16:01:07 +01:00
admin
3b15713f12 fix splitter fingerdown 2026-03-04 15:13:21 +01:00
admin
660a3cc5d0 tweakra 2026-03-04 15:00:52 +01:00
Admin
8976538a43 fix path 2026-03-04 11:38:29 +01:00
Admin
74c9abad8f fix path 2026-03-04 11:36:01 +01:00
Admin
2e660f00dc widget tree refactor 2026-03-04 10:16:33 +01:00
Admin
6ecc045812 widget tree refactor 2026-03-04 09:52:17 +01:00
Admin
3f71a13648 widget tree change 2026-03-03 21:22:58 +01:00
Admin
3af7afb04c widget tree fixup 2026-03-03 20:19:06 +01:00
Admin
307dfe4709 remove origin from widget tree 2026-03-03 08:55:01 +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
d4683f522f remote control 2026-03-02 12:07:59 +01:00
Admin
6c5f2728a9 cleanup 2026-03-01 23:15:39 +01:00
Admin
daf440ee80 wasm 2026-03-01 20:22:11 +01:00
Admin
d5d59d01c3 backend proto splitoff 2026-03-01 10:12:00 +01:00
Admin
5b07941f35 plaintext error 2026-02-28 11:40:11 +01:00
Julián Montes de Oca
5a56fe5338 Video Widget: Support on More Platforms (#867)
* Add support for Video widget on WASM

* Add support for Video widget on Linux

* Linux video:  GStreamer appsink pipeline, GL texture upload, accurate seeking

* Add support for Video widget on Windows

* Harden cross-platform video playback and error handling

* Cleanup video playback logs

* Restore wasm builds

* Restore linux builds

* Restore linux builds

* Remove unused import
2026-02-27 18:52:49 +01:00
Admin
7f9b0451bd centralised resource cache 2026-02-27 16:55:05 +01:00
offline-ant
d361d6d2dc iOS: app icons, fullscreen, iOS 15 support, GL texture fix, NSLog logging (#897)
Co-authored-by: ant <ant@offline.click>
2026-02-27 16:42:47 +01:00