https://github.com/neovide/vide
A straightforward wgpu renderer for 2d interfaces
https://github.com/neovide/vide
d3d12 hacktoberfest metal opengl rust vulkan webgpu
Last synced: 9 months ago
JSON representation
A straightforward wgpu renderer for 2d interfaces
- Host: GitHub
- URL: https://github.com/neovide/vide
- Owner: neovide
- License: mit
- Created: 2024-05-01T19:05:14.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-12T08:37:12.000Z (almost 2 years ago)
- Last Synced: 2025-03-19T23:42:15.916Z (over 1 year ago)
- Topics: d3d12, hacktoberfest, metal, opengl, rust, vulkan, webgpu
- Language: Rust
- Homepage:
- Size: 3.71 MB
- Stars: 21
- Watchers: 3
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vide
A basic wgpu gui renderer intended to be used with
[Neovide](https://neovide.dev/) based on ideas from Vello
and Zed's rendering approaches but with a focus on
simplicity.
Some key goals and principles we are trying to follow with this
effort:
1. Use wgpu as the graphics library for maximum portability.
2. Define a scene format which can fluently be defined in
rust code, and can be serialized to disk for easy
rendering and logging.
3. Render the entire scene layer by layer. Within a layer
individual components are drawn in declaration order by
kind reducing the need for offscreen buffers.
4. Where possible, features of the renderer should be
regression tested to ensure that changes do not change
the quality of the rendering unless explicitly intended.
## Dependencies
The tests require the nerd fonts to be installed. Run the
following:
### Windows
```powershell
scoop bucket add extras
scoop bucket add nerd-fonts
scoop install Monaspace-NF FiraCode-NF ProFont-NF CascadiaCode-NF Noto-NF
```
### Mac
```bash
brew install font-monaspace font-fira-code-nerd-font font-profont-nerd-font font-caskaydia-cove-nerd-font font-monaspace-nerd-font font-noto-nerd-font
```
### Linux
```bash
FONT_DIR="${HOME}/.local/share/fonts"
mkdir -p "$FONT_DIR"
for font in ${{ env.FONTS }}; do
ZIP_FILE="${font}${EXTENSION}"
if [[ "$font" == "Monaspace" ]]; then
DOWNLOAD_URL="https://github.com/githubnext/monaspace/releases/download/v1.101/monaspace-v1.101.zip"
else
DOWNLOAD_URL="https://github.com/ryanoasis/nerd-fonts/releases/download/${VERSION}/${ZIP_FILE}"
fi
echo "Downloading and installing '$font'..."
wget --quiet "$DOWNLOAD_URL" -O "$ZIP_FILE"
unzip -oq "$ZIP_FILE" -d "$FONT_DIR"
rm "$ZIP_FILE"
echo "'$font' installed successfully."
done
# Refresh font cache
fc-cache -fv
```