Comments (4)
The problem is that we have to lay out the atlas from frame to frame as glyphs enter and exit the view (because we don't render glyphs that are off screen). That means that we have to keep modifying uvs every frame, since glyphs may be at a different atlas rect each frame. This is the same kind of thing that WebRender has to do. Unfortunately, I have to do it in JavaScript, which is why it's slow…
There is probably a simpler solution that will work.
from pathfinder.
Interesting. Especially since the amount of text in the demo is a pretty small amount I would hope WebRender would be able to process in less than a millisecond. I know Javascript is slower than Rust but over 10x isn't what I would have expected for a modern JIT, does Webrender do something smarter that Pathfinder could do as well maybe? Or is it maybe something that making the JS use more linear typed arrays could help?
Although I imagine that CPU performance of the JS demo isn't considered super important since it's a demo, and while GPU performance is reflective of GPU performance in a real system, any real system would have a different CPU implementation.
from pathfinder.
Has the situation evolved now ?
from pathfinder.
No longer relevant with Pathfinder 3
from pathfinder.
Related Issues (20)
- Can pathfinder_color get a version bump to include the latest changes? HOT 1
- Project state HOT 3
- Mismatched dependencies in text package HOT 1
- Can't build demo for mac without EGL HOT 1
- Can not locate shaders and other resources
- Export as pdf HOT 2
- pathfinder_simd failed to compile with nightly toolchain on Apple M1 MBP
- [Dx9] Incorrect clipping when the destination texture width is not a multiple of the tile size
- PartialEq not implemented for pathfinder_simd::arm::F32x2 HOT 1
- android render problem HOT 3
- Compile Error on nightly, unknown feature `stdsimd` HOT 14
- Panicking when font is not found or can't be loaded
- Linking Error when building pathfinder_canvas with pf-text HOT 2
- Compile Error on nightly, platform_intrinsics - feature has been removed HOT 1
- use `portable_simd` for simd implementation
- cannot get bounding box of a path HOT 2
- Please publish a new crates.io release HOT 4
- compile issue on Fedora 39, freetype2 not found
- Crate does not build due to stdarch_arm_crc32 feature
- Fails to build on MacOS HOT 1
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 pathfinder.