git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commite8298ae8a661907e33bf82589b5ecf949505440f
parent9afd4d8c63 fd1b4ce9ed
authorlsgalante <lucas@lucas.co>
date2026-10-05 20:45
Run cce-ui in the browser and on macOS, with input-method support (#2)

The runner split into a portable driver, frame and pacer; a browser shell over WebGPU; a macOS shell over Vulkan on MoltenVK (type-checked only); and one input-method model for every shell and text widget.

 .cargo/config.toml                    |    5 +
 CLAUDE.md                             |  463 ++-
 Cargo.lock                            |   35 +
 Cargo.toml                            |  195 +-
 examples/carve_union_demo.rs          |    5 +-
 examples/compute_native.rs            |   19 +
 examples/compute_probe/jobs.rs        |  151 +
 examples/compute_web.rs               |   22 +
 examples/demo_web.rs                  |   41 +
 examples/frost_pair.rs                |    5 +-
 examples/grouped_recess_probe.rs      |    5 +-
 examples/probe/scene.rs               |  147 +
 examples/probe3d/scene.rs             |  307 ++
 examples/probe3d_native.rs            |   15 +
 examples/probe3d_web.rs               |   37 +
 examples/probe_native.rs              |   10 +
 examples/probe_web.rs                 |   52 +
 examples/trigger_near_roll_warning.rs |    8 +-
 scripts/check-mac                     |   18 +
 scripts/check-wasm                    |   22 +
 scripts/web-probe/browser.mjs         |   44 +
 scripts/web-probe/capture-app.mjs     |   21 +
 scripts/web-probe/capture.mjs         |   19 +
 scripts/web-probe/clipboard           |   21 +
 scripts/web-probe/clipboard.mjs       |   85 +
 scripts/web-probe/compare.py          |   43 +
 scripts/web-probe/compute             |   21 +
 scripts/web-probe/compute.html        |   10 +
 scripts/web-probe/compute.mjs         |   16 +
 scripts/web-probe/demo                |   32 +
 scripts/web-probe/demo.html           |   30 +
 scripts/web-probe/drive.mjs           |   64 +
 scripts/web-probe/ime                 |   22 +
 scripts/web-probe/ime.mjs             |   77 +
 scripts/web-probe/page.html           |   19 +
 scripts/web-probe/probe3d             |   33 +
 scripts/web-probe/run                 |   30 +
 src/backend/app.rs                    |  637 ++++
 src/backend/appkit.rs                 |  242 ++
 src/backend/dom.rs                    |  215 ++
 src/backend/driver.rs                 | 1154 +++++++
 src/backend/frame.rs                  |  366 +++
 src/backend/mod.rs                    |   28 +-
 src/backend/shell.rs                  |  426 +++
 src/backend/tessellate.rs             | 3057 ++++++++++++++++++
 src/backend/text.rs                   |  727 +++++
 src/backend/text_input.rs             |  387 +--
 src/backend/touch.rs                  |  229 +-
 src/backend/window_runner.rs          | 5751 +++------------------------------
 src/bin/cce-ramp.rs                   |    8 +-
 src/bin/cce-relief.rs                 |    8 +-
 src/compute.rs                        |  253 ++
 src/context.rs                        |    4 +-
 src/{vk => draw}/glyph.wgsl           |    0
 src/draw/glyphs.rs                    |  356 ++
 src/draw/images.rs                    |  169 +
 src/draw/mod.rs                       |  221 ++
 src/draw/rt.rs                        |  691 ++++
 src/{vk => draw}/rt_bvh.wgsl          |    0
 src/{vk => draw}/rt_common.wgsl       |    0
 src/{vk => draw}/rt_denoise.wgsl      |    0
 src/{vk => draw}/rt_query.wgsl        |    0
 src/draw/scene.rs                     |  236 ++
 src/{vk => draw}/scene3d.wgsl         |    8 +-
 src/{vk => draw}/scene3d_image.wgsl   |    0
 src/{vk => draw}/shader2d.wgsl        |   11 +-
 src/draw/shaders.rs                   |   49 +
 src/engine.rs                         |   27 +-
 src/icon.rs                           |    4 +-
 src/ime.rs                            |  190 ++
 src/input.rs                          |    5 +-
 src/lib.rs                            |  214 +-
 src/mac/mod.rs                        | 1065 ++++++
 src/main.rs                           |   16 +-
 src/motion.rs                         |    2 +-
 src/scene/heightfield.rs              |    4 +-
 src/scene/material.rs                 |    2 +-
 src/scene/paint.rs                    |    6 +
 src/scene/relief_shade.rs             |    2 +-
 src/text_input.rs                     |   60 +-
 src/vk/compute.rs                     |  157 +-
 src/vk/core.rs                        |  136 +-
 src/vk/image.rs                       |  208 +-
 src/vk/mod.rs                         |    2 +-
 src/vk/plate_probe.rs                 |    6 +-
 src/vk/renderer.rs                    |  291 +-
 src/vk/rt.rs                          |  686 +---
 src/vk/scene.rs                       |  180 +-
 src/vk/text.rs                        |  317 +-
 src/web/compute.rs                    |  321 ++
 src/web/mod.rs                        |   59 +
 src/web/renderer.rs                   |  918 ++++++
 src/web/rt.rs                         |  469 +++
 src/web/scene.rs                      |  339 ++
 src/web/shell.rs                      |  930 ++++++
 src/widget/container/parameters_bg.rs |    5 +-
 src/widget/container/treelist.rs      |    4 +-
 src/widget/core.rs                    |  212 +-
 src/widget/display/graph.rs           |    4 +-
 src/widget/display/image_view.rs      |    4 +-
 src/widget/display/label.rs           |    2 +-
 src/widget/display/list_item.rs       |    2 +-
 src/widget/display/text_label.rs      |    2 +-
 src/widget/doc_editor/mod.rs          |  199 +-
 src/widget/input/button.rs            |    6 +-
 src/widget/input/color_selector.rs    |   66 +-
 src/widget/input/dropdown.rs          |   10 +-
 src/widget/input/ramp.rs              |    4 +-
 src/widget/input/slider.rs            |    7 +-
 src/widget/input/spinbox.rs           |    5 +-
 src/widget/input/text_box.rs          |  239 +-
 src/widget/line_edit.rs               |  174 +-
 src/widget/scroll_motion.rs           |    2 +-
 src/widget/shaping.rs                 |    8 +-
 src/widget/side_swipe.rs              |    3 +-
 tests/lattice_probe.rs                |    4 +-
 tests/plate_golden.rs                 |    2 +-
 117 files changed, 17352 insertions(+), 7610 deletions(-)