Releases: usadson/retina
Releases · usadson/retina
v0.2.0
This is the first official release!
General Information
Version 0.1.0 was before the project was restructured to which it is today. In this version, there are a couple notable features:
- HTML is parsed into a reference-counted DOM
- Basic CSS parser
- Simple CSS selector matcher, only
<simple selector>
- Style collection & cascading
@media
query support forscreen
andall
types- Text & whitespace transformations
- User Agent style sheet
- Internal Fetch API implementation
- Remote & local document & resource fetch
- Window resize is acted upon
- Logging using the
log
crate - Window title is based upon the
<title>
element or the URL - A simple DOM inspector with F12
- Basic CSS box-model
- Shortcuts like Ctrl+W, F5, F12
- Extensive Font API
- Text hints (e.g. ligatures, CJK character forms)
- Text shaping using harfbuzz
- Still bitmap image support (JPG, PNG, BMP, WebP, etc.)
- Animated GIF support
- HTML
<img>
element support - CSS
background-image
support (non-gradients) - Basic compositor with parallel tiles of 256x256
- Ctrl+V to paste a URL to open
- Scrolling support
- Parallelized glyph rasterization
- Improved text anti-aliasing
- Non-colored emoji support
text-decoration
support- And a lot of performance improvements!
Changes
[deps]
Update dependencies[page]
Accept continuous task messages when no timeout expired[page]
Document the DirtyState mechanism[gfx+page]
Remove redundant debug messages[app]
Count FPS for paint-heavy scenario's[page]
Time scroll responsiveness[app]
Fix incorrectApp
creation[page]
Animate through each frame of GIFs[dom+gfx+page]
Generate textures from GIF frames[dom]
Special support for decoding GIF animated images[ci]
Add GitHub Pages link for Rustdoc[app+page]
Show backtrace of page crash in Window[app]
Show a crash screen when the pages crashes, instead of halting[compositor]
Ensure bottommost text fragments are continued on a vertical tile boundary[layout]
Support emoji text fragments[font]
Debug FontDescriptor with FontHandle[font]
AddFamilyName::Emoji
[layout]
Remove fast path of anonymous layout algorithm[page]
Reduce maximum delay between paints[compositor]
Recall staging belt after awaiting SubmissionFuture[compositor]
Enablewgpu
tracing/profiling[compositor]
Ensure composition of the last tiles are submitted correctly[font]
Improve glyph rendering by eliminating double AA[compositor]
Remove dependency on retina-gfx-font-backend-font-kit[gfx+font]
Move font descriptors and hints back to retina-gfx-font![font]
Move the font rendering code to a separate crate[gfx]
Decouplefont-kit
backend from the main crate[layout]
Hot fix crash in subtendril'ing[font]
Reduce locking overhead for FontKitFont and GlyphAtlas[font]
Add instrumentation to backend font implementation[compositor]
Allow tracing of composition cycles[gfx]
Cull textured rects outside the viewport[compositor]
Cull out tile-non-intersecting text fragments[compositor]
Fix some clippy hints[compositor]
Use stdlib's thread scope instead of crossbeam's[compositor]
Hide most messages behindtrace
log level[compositor]
Re-enable background color filling[compositor]
Clear the tile's background a normal color[compositor]
Document the publicly accessible API[compositor]
Don't request a composition cycle when the tile was cached[compositor]
Delay waiting on submit until next composite cycle[compositor]
Keep bottom tiles in cache when scrolling up[page]
Don't resubmit the composited page[compositor]
Mergepaint
andcomposite
into one[gfx]
Rename common log message to clear up confusion[compositor]
Composite tiles in parallel[compositor]
Composite immediately when a tile is ready[compositor]
Debug the times taken per tile[compositor]
Only paint tiles that intersect the viewport[compositor]
Paint tiles according to the viewport's vertical position[compositor]
Use a tile-based system for rendering the screen[font]
Prepare basic latin by also including the U+0020 SPACE glyph[ua]
Update test according to the CSS parsing improvements![gfx]
Trace bind & draw commands[gfx]
Create a sampler once per texture renderer[gfx-font]
Prepare renderer once per text run[gfx]
Instrument more functions[style]
Support compoundp.blue#main
selectors![style]
Move simple selector matching to a separate function[style+page]
Load correct fonts using the givenfont-weight
[font]
Better propagate succes status for font loading[gfx+style]
Supportfont-variant-position
[gfx]
Support East Asian glyph substitution[style]
Supportfont-variant-east-asian
[dom+i18n+layout]
Supporttext-transform
CSS property[style]
Supporttext-transform
[compositor]
Supporttext-decoration
: line-through and overline[style-parser]
Supportfont-weight
[compositor]
Support basictext-decoration
properties[font]
Add accessors for baseline, underline offset+thickness[style]
Addtext-decoration
properties[layout]
Remove old debug logging[common+layout]
Fix crash for multi-byte character index[woff]
Start working on an WOFF(2) decompressor[layout]
Translatefont-variant-caps
togfx-font
format[gfx-font]
Support capital letter font hints[style]
Supportfont-variant-caps
[page]
Add a CSS missing font loading mechanism[gfx]
Font description should beHash
andEq
[gfx-font]
AddFontProvider::load_from_system()
API[page]
Fix page task message timeout system[page]
Generalize style resource loading into a separate function[gfx-font]
Don't load fonts in the background if they don't exist[style]
Supportfont-kerning
andfont-variant-ligatures
[gfx-font]
Add ability to change ligatures & kerning hints[gfx+font+gui]
Removewgpu_glyph
dependency[gfx-font]
Diverge path for grayscale or anti-aliasing[gfx-font]
Remove oldascent
per glyph from the font[gfx-font]
Tidy upglyph_iter
[gfx]
Use HarfBuzz offsets & advances instead of the defaults[gfx-font]
Fix baseline correction in text painting[gfx-font]
Fix font height calculation[gfx-font]
Use HarfBuzz for text shaping[gfx-font]
Use the font size for atlas cache matching[gfx-font]
Calculate alpha channel based on avg glyph mask[gfx-font]
Use alpha blending for glyph painting[gfx]
Allow color blending inTextureMaterialRenderer
[gfx-font]
Paint using the text color supplied[gfx]
GiveTextureMaterialRenderer
better debug WebGPU labels[gfx]
Fix incorrect resource reference inpaint_rect_textured_with
[gfx]
Give texture paint resources a better name[gfx-font]
Implement glyph position correctly[gfx-font]
Chore: clean-up font_kit backend glue[gfx-font]
Re-enable parallelized glyph rasterization[gfx-font]
Remove debugabort
in Glyph loading[gfx]
Makepaint_rect_textured
extensible[gfx]
Streamline material rendering code[gfx-font]
Custom text rendering withfont_kit
glyph rasterization[gfx+font]
AbstractFont
painting[gfx-font]
RenameFont
toWgpuFont
[svg]
Start working on an SVG implementation[gfx]
Don't emit scroll events if the cursor is outside the window[fetch]
Special path for local page URL parsing[layout]
Use serif font as the default[style]
Support<body>
presentational hints[ci]
Install XCB package on Linux for clipboard to work[app]
Usecopypasta
instead ofclipboard
[ua]
Update stylesheet test because of CSS parser improvements[app+page]
Open a website using an URL of the clipboard (Control+V)[app+page]
Add keybind F6 to dump the style sheets[page]
Set the URL as the title on (re)load[style-comp]
Support pseudo selector specificity[gfx-font]
MoveFontKitAbGlyphFontBridge::new()
outside the Windows cfg[style-comp]
Support pseudo selector matching for links and empty elements[style]
Support parsing pseudo class selectors[gfx]
Fix incorrect text color[layout]
Add struct ActualValues[layout]
Pass the IFC state to the LayoutBox::run_layout() function[layout]
Describe crash (panic) for subtendril errors in line box fragmentation[style-parser]
SupportcurrentColor
[style-parser]
Extract color parsing into a separate function[layout+compositor]
Support CSScurrentColor
[gfx-font]
Begin working onfont-kit
rendering support[style]
Supportmargin-block
andmargin-inline
properties[style]
Parse<body>
presentationalbackground
andtext
hints[layout]
Run special path (replaced) for<img>
elements[page]
Don't crash on a network error in Fetch[page]
Follow redirect URLs in HTTP responses[fetch]
Add redirect URL getter forResponse
[page]
Scroll to top on page (re)load[page]
Warn if there isn't a layout root when calling paint()[page]
Always clean dirty state before entering command/task loop[common]
Remove failing example of StrExt::index_of_substring()[page]
Queue relayout, repaint, etc. by keeping track of the dirty state[app]
Map keys to PageUp, PageDown, Home, End[page]
Add actions Page{Up,Down} and ScrollTo{Bottom,Top} (Home & End)[page]
Construct the scroller with the initial viewport size[page]
Ensure scroll position isn't negative[layout]
Implement the line box fragment algorithm!- `[l...