glbinding
Skia


glbinding | Skia | |
---|---|---|
3 | 59 | |
839 | 9,517 | |
0.6% | 1.4% | |
6.2 | 9.9 | |
8 months ago | 6 days ago | |
C++ | C++ | |
MIT License | BSD 3-clause "New" or "Revised" License |
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.
glbinding
-
Questions about the official xml registry (gl.xml).
Ever heard of https://glbinding.org ?
-
Low-level OpenGL abstractions
You should checkout glbinding, it might give you some ideas for your own wrapper.
-
Thriving in a Crowded and Changing World: C++ 2006–2020 [pdf]
I have based my career on top of C++/backend/soft-real time systems.
I still have to read the full paper, thanks for the post!
Many people rant about C++, but, IMHO, overall, taking into account ecosystem, tools, etc. C++ stands as an almost unbeatable technology when you put everything together. It has quirks, asymmetries and all of that.
But since C++11 it is nicer to use and all the standards after it have been improving on it: generic lambdas, structured bindings, string non-template parameters, constexpr and consteval... it is amazing what you can do with C++ that is difficult or almost impossible to do with other languages.
On the missing pieces I would mention that you need to use macros to have some kind of reflection for members and pattern matching and networking would be really nice to have.
Modules are still an experiment implementation-wise, but hey, they will improve on the side of hiding implementation details by a big margin.
As for the ecosystem, nowadays you have CMake (whose language sucks badly) and Meson. Together with Conan things have improved a lot since I started coding in around 2001.
Pack that with an IDE like CLion or Visual Studio + Resharper or lightweight IDE (Emacs + Lsp and the like) and you have an environment that is very competitive and whose code can be compiled almost anywhere. From ARM to x86, MIPS and even Webassembly.
That is why I think C++ is still the way to go if what you want is performance: you also have interfaces such as OpenCL/GL/Vulkan/SIMD libraries (though not C++ standard) where you can access hardware. Also, vendors and open source have things such as https://github.com/cginternals/glbinding
Skia
- Better text rendering in Chromium-based browsers on Windows
-
Skia Canvas: Browser-Less Implementation of the HTML Canvas Drawing API for Node
If you're interested in node-compatible canvas implementations, there are several:
* canvaskit-wasm, from the skia project. I don't think it's gpu-accelerated: https://github.com/google/skia/tree/main/modules/canvaskit/n...
* @napi-rs/canvas. This is the fastest binding: https://github.com/Brooooooklyn/canvas?tab=readme-ov-file#pe...
* node-canvas. Uses Cairo instead of Skia: https://github.com/Automattic/node-canvas
-
Web Browser Engineering
Yes [4].
> [1] The library is used as of 2023 in Google Chrome, ChromeOS, ChromiumOS, Mozilla Firefox, Mozilla Thunderbird, Android, Firefox OS, Flutter,[5] Avalonia (from Alpha 4), LibreOffice (from version 7.0) and RAD Studio[6](since version 12.0).
> [2] Changes to the Skia repository will be rolled into Chromium by the AutoRoll bot several times per day.
> [3] It serves as the graphics engine for Google Chrome and ChromeOS, Android, Flutter, and many other products.
[1]: https://en.wikipedia.org/wiki/Skia_Graphics_Engine
[2]: https://skia.org/docs/dev/chrome/
[3]: https://skia.org/
[4]: https://github.com/chromium/chromium/tree/main/skia
-
Skia VS nitro-gl - a user suggested alternative
2 projects | 21 Aug 2023
- The Future of the Web Is VNC
- Cairo – Open-Source 2D Graphics Layer/API with Fonts and Many Back-Ends
-
Lottie under the hood
Actually, that's not entirely accurate. The lottie-web library itself doesn't support rendering to WebGL. However, there is a package called canvaskit-wasm that wraps Skia (a graphics engine) with WebAssembly (wasm). This package includes a module called skottie which supports rendering animations into a WebGL surface. However, there is a drawback with this approach: using wasm requires loading a relatively large package, and it's uncertain whether all features are supported correctly, as the official compatibility table that tracks lottie support on different platforms does not include skottie.
-
Widely-used graphics library
Skia is pretty great if you can get it running.
- Vivaldi 6.0 Web Browser Introduces Tab Workspaces and Custom Icons
-
Due to popular demand, here’s part 2
The imgs are mainly used by Tencent QQ and Baidu Tieba users. QQ and Tieba compress imgs by default, so the popular imgs (in China we call them "屌图" or "表情包") would be compressed million of times during the spreading, causing the super low quality. These APPs on Android are using Skia for image processing, which suffering from a legendary bug: result would be more green. The bug was fixed in 2016: https://github.com/google/skia/commit/c7d01d3e1d3621907c27b283fb7f8b6e177c629d
What are some alternatives?
OpenSubdiv - An Open-Source subdivision surface library.
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs.
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
OpenVDB - OpenVDB - Sparse volume data structure and tools
Ogre 3D - scene-oriented, flexible 3D engine (C++, Python, C#, Java)
OpenMesh, 7.0
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Horde3D - Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
Atomic Game Engine - The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

