lamarrr / ashura Goto Github PK
View Code? Open in Web Editor NEWAshura is a 2D & 3D Engine for use in High-performance GUI applications and games
Ashura is a 2D & 3D Engine for use in High-performance GUI applications and games
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
Rendered Text is pixelated on zoom or when it is larger than it's rasterized size.
We also presently render the glyphs twice, one for the regular glyph with alpha channels, and another with static strokes, this has the disadvantage that the stroke widths are static and the new stroke atlas is allocated separately.
Expected behavior
Not be pixelated and use less memory
Proposal
Switch to SDF text rendering
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
ashura/ashura/include/ashura/canvas.h
Line 175 in 5c9d68b
presently, rendering large text is very inefficient even with command culling, we should batch text rendering and pack all font atlases into a single sampler2DArray. this will enable us to render all the text in the scene with a single draw command or with instanced rendering and vertex attributes if necessary.
once the new render graph is implemented, this should be trivial to implement
The CI build seems to be broken as it is failing to find the Freetype package's libraries.
I don't know why and a quick search reveals nothing
Presently we are not even specifying if the memory resides on the host or the device, we need to check for resizable bar support and then use resizable bar if it is supported, otherwise fall back to using device buffers.
VecBuffer, for example, isn't specifying if to use device or host memory, vertex buffers can be mmap-d.
Textures' staging buffers should also use resizable bar where possible.
we might need a separate function that isn't find_suitable_memory_type().
Things to think about
We need to be able to dynamically create, use, and disable render targets and render passes.
Our sample use cases are:
The render graph should be able to efficiently take care of:
To prevent lerp between vert and frag shaders use flat values.
i.e.
flat out vec2 out_uv;
flat in vec2 in_uv;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.