Pangolin
nanovg
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Pangolin
-
Is there a C++-oriented platform that is similar to Three.js?
Check out this C++ opengl prototyping/visualization library https://github.com/stevenlovegrove/Pangolin
- How to plot graphs in C++
- Make own GUI in C/C++
nanovg
-
nanovg VS nitro-gl - a user suggested alternative
2 projects | 21 Aug 2023
- Cairo – Open-Source 2D Graphics Layer/API with Fonts and Many Back-Ends
-
2D graphics lib recommendation?
I use nanovg for my projects and it works surprisingly well for its size. It integration is pretty simple .... if you know a little bit of OpenGL, otherwise there is a slight learning curve.
-
minimax — minimalist 3D game engine in Clojure
The "engine" is built on top of amazing https://www.lwjgl.org/ and https://github.com/bkaradzic/bgfx/, and UI system is baked by https://github.com/memononen/nanovg and https://github.com/facebook/yoga
-
W4 Games formed to strengthen Godot ecosystem
NanoVG is the closest thing I came across when I had a similar quesiton: https://github.com/memononen/NanoVG
unfortunately it doesn't seem like it's getting steady updates now unlike the last time I checked. But I imagine it's pretty mature at this point. There also seem to be ports in Metal/DX11 if you didn't want to be stuck in OpenGL.
-
Why are there so little Skia recources?
Also there's NanoVG if you really want a vector api in C, but don't need anti-aliased clipping.
-
Advice for the next dozen Rust GUIs
Getting sufficient antialiasing quality for 2D graphics is difficult on GPUs. https://github.com/memononen/nanovg accomplishes this with GL2/GLES2 level hardware for most of the stuff one would want to render as part of a GUI. My project https://github.com/styluslabs/nanovgXC supports rendering arbitrary paths with exact coverage antialiasing, but requires GLES3.1 or GL4 level hardware for reasonable performance.
-
Ask HN: Modern Alternatives to C
> to learn the 'nuts and bolts' of rendering
These nuts and bolts are very different between CPU and GPU. CPU-based libraries are painting pixels in bitmaps in system memory. Most GPU-based libraries are uploading indexed triangle meshes, and rendering them with weird shaders.
Worse, there're no good open source implementations of GPU-based ones. Microsoft ships an implementation as a part of OS (Direct2D) but it's not open source. Linux simply doesn't have an equivalent.
At least for initial versions, consider C interop with this https://github.com/memononen/nanovg It cuts a few corners (no cleartype for text, CPU overhead for repeated rendering of same static paths) but it's still good overall, simple, and easy to use.
> My only concern with C# is the cross compatibility
Works well on Linux, Windows and OSX, including ARM CPUs. Not sure about Android and iOS, never tested.
My largest concern with C# would be performance. Technically the language allows to code in any style, but most guides and examples are using OO-heavy one.
-
Any good video tutorials on making a OS with a GUI?
In fact, if using a modern graphics pipeline with shaders, you will actually have to learn how to draw a single rectangle to your screen, and then use that knowledge to draw (anti-aliased) lines, rectangles, arcs, circles, ellipses, etc. too. For instance, have a look at https://www.cairographics.org/ https://github.com/vurtun/nuklear https://github.com/memononen/nanovg and https://github.com/nical/lyon. There are probably also tutorials on how to draw vectorized graphics using OpenGL, Vulkan, etc.
- So you want to write a GUI framework
What are some alternatives?
Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
DiligentEngine - A modern cross-platform low-level graphics library and rendering framework
sokol - minimal cross-platform standalone C headers
MetalNanoVG - The Metal port of NanoVG.
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
matplotlib-cpp - Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib
raylib - A simple and easy-to-use library to enjoy videogames programming
tinyrenderer - A brief computer graphics / rendering course
twitchslam - A toy implementation of monocular SLAM written while livestreaming
microui - A tiny immediate-mode UI library
Vrmac - Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.