Comments (4)
Behaviour is rare (app launched ~30 times to reproduce)
from bevy.
I was wrong about source of problem earlier. compute_camera_layout() generates layout for viewport and all of it's child into cache (for current resolution). Then update_uinode_geometry_recursive() places nodes according to layout from cache.
The reason of #13517 is that layout is generated from styles (taffy's version of it) of node, but taffy's version of style of root node allready contains width equals to Some(0.0)!
Why? Because first time camera resolution was (0.0, 0.0), this is why when UiSurface::upsert_node it converts from bevy's style to taffy's style once, and never changes. It sets width to 0.0 because of Val::Vw(100.0) for zero resolution gives just 0.0.
I don't see nice solution yet.
@nicoburns Can you, as the author of layout calculation, advise what is best? Clear fields in taffy's Style
which corresponds to Val fields in bevy's Style
or just convert styles again before layout calculation?
from bevy.
Before you ask, UiSurface doesn't upsert again, because no condition is met, because when camera changes resolution from zero to nonzero it doesn't understand that something changes, it assumes that camera changes resolution when window changes resolution, attaching is not the case
from bevy.
@porkbrain Looks like you can workaround by emmiting resize event for window containing your ui after respawn of ui and camera
from bevy.
Related Issues (20)
- Consider making check for unregistering observers faster
- use custom material 2d, with same logic draw part of texture, get different result with wgpu.
- Regression: Disabling `multi_threaded` feature causes broken rendering HOT 10
- Wrong type returned when trying to access component that is a Vec of entities HOT 4
- Window resizing glitches on MacOS HOT 3
- Examples with Rendering Crash on main (#f0560b8) HOT 6
- Crash on Camera Initialization HOT 4
- `loading_screen` example panics after switching twice HOT 1
- Camera's near plane clips into FogVolume when positioned near its edge
- Incorrect Time resource for fixed systems run with World::run_schedule(FixedMain) HOT 3
- 9-slice images have seams at certain sizes HOT 1
- Move sprite 9 patches to a shader to avoid thin lines
- bug: cannot create an unfocused window on Mac for dev HOT 1
- Expose a way to manually run startup schedules HOT 1
- Nine-patch shaders should support image flipping
- Replace "system order ambiguity" terminology to make it more clear it's a race condition HOT 1
- Add `many_entities_mut` function variants to `DeferredWorld`
- Too many bindings of type SampledTextures in Stage ShaderStages(FRAGMENT), limit is 31, count was 32. Check the limit `max_sampled_textures_per_shader_stage` passed to `Adapter::request_device`
- A UI node size of zero shouldn't be used as a proxy to indicate that a node has `Display::None` set
- Segmentation fault on loading 3d examples HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bevy.