Commit graph

605 commits

Author SHA1 Message Date
Admin
3bfb59e91e xr 2026-03-12 13:30:40 +01:00
Admin
bfd4a13648 fix 2026-03-11 18:15:12 +01:00
Admin
73d997258c mipmapping 2026-03-09 09:18:33 +01:00
Admin
cf22b515c8 fix script mods 2026-03-08 18:20:07 +01:00
Admin
eba48ce826 live reloading 2026-03-08 17:25:27 +01:00
Admin
ef6255c291 bootstrap change 2026-03-08 13:36:58 +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
Admin
af3995b33b remove apprs 2026-03-08 10:28:40 +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
8d73f700e6 exr 2026-03-07 15:01:34 +01:00
Admin
73035bcdd9 Harden widget tree refresh and require explicit widget uids 2026-03-07 11:23:22 +01:00
Admin
8c5987039d fix shader compiler 2026-03-06 18:49:24 +01:00
Admin
2aad6a6aa9 drumroll 2026-03-06 17:21:17 +01:00
Admin
bb331d0eb3 split f32 + uniformbuffers 2026-03-06 17:21:17 +01:00
Admin
3ed6de6cac fix 2026-03-06 09:26:02 +01:00
Admin
3f71a13648 widget tree change 2026-03-03 21:22:58 +01:00
Admin
521b31d132 y flip webgl rendertartet 2026-03-03 09:42:54 +01:00
Admin
e6aed38950 finall fix render glitch 2026-03-02 20:16:29 +01:00
Admin
6c5f2728a9 cleanup 2026-03-01 23:15:39 +01:00
Admin
11859b7a44 makepad studio old 2026-02-28 22:42:57 +01:00
Admin
3ce4f836ef fix 2026-02-28 12:48:06 +01:00
Admin
5b07941f35 plaintext error 2026-02-28 11:40:11 +01:00
Julián Montes de Oca
a41329500b Restore StackNavigation widget, add examples to ui-zoo (#892) 2026-02-26 13:54:36 +01:00
Admin
956471c1a6 counter splash example 2026-02-26 10:08:25 +01:00
Kevin Boos
bb31284475 Fix circle view (#887)
* Fix `CircleView` shader, support true circle shader behavior

Add CircleView examples w/ variety to `uizoo`

* splash example: fix popup notification behavior
2026-02-26 08:17:49 +01:00
admin
ddebd64601 api 2026-02-25 17:14:39 +01:00
Kevin Boos
7bd65ad570 FIx Icon, improve to support IconRotated, expose geom in draw_svg (#883)
* Fix draw_svg to support a rotated Icon. Add `IconRotated` widget.

Fix icon resource paths in `splash` example

* Expose geometry in draw_svg to make icon/svg rotation more efficient

simplifies the code too
2026-02-25 13:05:14 +01:00
Sabin Regmi
6757648426 Remove left margin from window caption label (#884)
* Remove left margin from window caption label

Delete the hardcoded Inset{left: 100} margin on the caption Label in widgets/src/window.rs so the label can be centered by the parent layout. This cleans up alignment and removes an unnecessary offset in the window header.

* Use window title in caption; format button click

Apply the configured window title to the window caption and make a small UI code cleanup.

- examples/splash: set window.title to "Splash Example" and reformat the tooltip button click check to a multiline expression for readability.
- widgets/src/window.rs: import label::* and update ensure_initialized to copy cx.windows[window_id].create_title into the caption_label when non-empty so the window chrome shows the configured title.
2026-02-25 13:04:46 +01:00
Admin
c8ab367b14 little glitches in script engine 2026-02-24 23:32:56 +01:00
Admin
56501e372b cleanup warnings 2026-02-24 21:40:08 +01:00
Admin
f2ea64ce71 edmx 2026-02-24 21:40:08 +01:00
Admin
aae121f31d fix gc issues 2026-02-24 21:40:08 +01:00
Kevin Boos
8512c1d430 Fix Tooltip behavior and structure. Add CalloutTooltip widget (#881)
The CalloutTooltip is a fancier wrapper atop Tooltip that allows
the user to display a tooltip with a callout triangle that points
at a particular widget, making it clearer what the tooltip
corresponds to. It also supports a custom text color, background color,
positioning suggestion (top, right, left, bottom), full text wrapping,
and dynamically resize and re-orient itself to fit within the app screen.
2026-02-24 19:43:06 +01:00
Admin
582af4b271 splice out a makepad-network crate 2026-02-23 23:21:31 +01:00
Admin
251df9ebec fix dx11 memleak 2026-02-23 18:30:26 +01:00
Admin
9cb709f6a5 fix up uizoo 2026-02-23 18:00:19 +01:00
Julián Montes de Oca
0774c184a3 Video Widget: Support on MacOS & iOS (#863)
* Add macOS video playback support using AVPlayer + CVMetalTextureCache

Extends the Video widget from Android-only to also support macOS with
hardware-accelerated, zero-copy video rendering through Metal. Uses
AVPlayer for decoding and CVMetalTextureCache to map decoded frames
directly to MTLTextures without CPU copies.

Key changes:
- New AppleVideoPlayer module (AVPlayer + CVPixelBuffer → MTLTexture pipeline)
- FFI bindings for CVMetalTextureCache, CMTime, and related Apple APIs
- Video frame polling integrated into macOS paint cycle
- TextureFormat::VideoRGB ungated from Android-only to all platforms
- Video widget made cross-platform (TextureHandleReady wait is Android-only)
- Fixed shader aspect ratio bug (&&→|| for non-positive dimension check)
- Added video demo to uizoo and scratchpad examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add iOS video playback support

* Enhance video playback functionality with seek support and current position tracking

Key changes:
- Added `seek_video_playback` operation to allow seeking to specific timestamps.
- Introduced `current_position_ms` field in `VideoTextureUpdatedEvent` for tracking playback position.
- Implemented seeking functionality across iOS, macOS, and Android platforms.
- Updated Video widget to support new controls and indicators for seeking.

* Improve error handling for unsupported texture pixel formats

* Make volume icon drawing  use fixed width

* Make play/pause drawing use fixed width

* Remove video from scratchpad

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:19:21 +01:00
admin
4cfac71525 automated click animation 2026-02-22 13:34:00 +01:00
admin
b6c847faf2 theme cleanup 2026-02-21 15:40:12 +01:00
admin
c4a7c3e8d9 fix up theme hook 2026-02-21 15:21:27 +01:00
Admin
88baa3eff8 sortable drawcalls 2026-02-21 10:05:07 +01:00
Admin
e5cc73cfe6 splats without sort yet 2026-02-21 08:43:52 +01:00
Admin
dbbdadbe34 fix 2026-02-20 23:58:48 +01:00
Admin
d0fe4151ac portal list unstuck 2026-02-20 16:05:31 +01:00
Admin
9d86689d07 drawcall ordering and git ui 2026-02-20 15:47:56 +01:00
Julián Montes de Oca
40cad5dd37 Restore IME support (#860)
* Restore IME support

* Remove unused voice handling methods from Window
2026-02-20 14:06:02 +01:00
Admin
f06fce0cee terminal split 2026-02-19 07:18:43 +01:00
Admin
393ad66d27 ui proto 2026-02-18 21:10:25 +01:00