Support all text styles for text input#24187
Conversation
ickshonpe
left a comment
There was a problem hiding this comment.
Ah yeah I think I just left out font features specifically because for some reason I thought, at some moment, it's just small caps and superscripts, no one needs that. But it isn't, and, of course, we should support the full text API.
I'd like us to add a few options to one of the examples (or a new example) with some controls to enable or disable some of these features. That should be left for a follow up though, there's no reason to hold up on merging this.
| style_set.insert(StyleProperty::FontWeight(text_font.weight.into())); | ||
| style_set.insert(StyleProperty::FontWidth(text_font.width.into())); | ||
| style_set.insert(StyleProperty::FontStyle(text_font.style.into())); | ||
| style_set.insert(StyleProperty::FontFeatures( |
There was a problem hiding this comment.
I was going to ask why you left out FontVariations, but I didn't realise the variations PR isn't merged yet. It looks like it got forgotten with all the problems we had with github a few days ago.
|
Blocked by #24088 |
c7d248b to
99dbd75
Compare
|
Updated. |
Brings in 25 upstream commits since 90a282a, including: - Resource hooks & immutable resources (bevyengine#24164) — `#[resource(immutable)]`, `add_resource_hook`, `mutate_resource[_safe]` reorganization - OpenType font variations (bevyengine#24088) — `FontVariations`, `font_variations.rs` example, integration through `bevy_text` and `bevy_ui` - Tileset grids in `ImageArrayLayout` (bevyengine#24132) — new `ImageArrayLayout::Tileset` variant supported by the image loader - Free camera controller local-Y controls (bevyengine#24161) and showcase wiring - Solari shader updates: gbuffer perceptual roughness, motion vector wiring in DLSS-RR resolve, GI alpha=0 outputs, PSR uses perceptual roughness - Stale directional light shadow map caching fix (bevyengine#24199) - All-style support for text input (bevyengine#24187), `Outline::Default`, ECS query contiguous-iterator API returning `Result`, lz4_flex 0.13 bump, and a raft of wasm/feature gating fixes (bevyengine#24188..bevyengine#24195) plus dependabot bumps Conflicts (Solari WGSL, both resolved): - `crates/bevy_solari/src/realtime/resolve_dlss_rr_textures.wgsl` Took upstream's `motion_vectors` import (now used by the `specular_motion_vectors` write upstream added) while preserving the fork's `dlss_rr_bias` binding, the `DLSS_RR_DIFFUSE/GLOSSY_SURFACE_BIAS` constants, and the `store_dlss_rr_background_guides` helper. The depth==0 branch keeps the fork's helper call (it writes the same diffuse/specular/normal defaults plus the bias texture, which the fork's bind group still expects). - `crates/bevy_solari/src/realtime/specular_gi.wgsl` Took upstream's three `textureStore` lines for the PSR mirror branch (alpha=0.0 in albedo writes, `material.perceptual_roughness` instead of `saturate(material.roughness)` for the normal_roughness `.w`). Re-added the `dlss_rr_bias` write at 0.85 to keep the fork's DLSS-RR bias texture initialized — removing it would leave bind group 2 binding 4 uninitialized after PSR. Validation: `cargo check --workspace --all-targets` clean. The only warnings are upstream `f32` fallback notices in `crates/bevy_feathers/src/controls/text_input.rs`, introduced by PR bevyengine#24187 and not caused by this merge.
Objective
Current text inputs do not apply all styles set in
TextFontto their text.Solution
Set the missing text styles in
update_editable_text_styles.Testing
Tested in my own non-public project. If desired I can write or extend an existing example to showcase.