Sokol Alternatives
Similar projects and alternatives to sokol
-
bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
-
v
Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. https://vlang.io
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
LearnOpenGL
Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com
-
-
-
-
nanovg
Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
-
SonarLint
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
-
-
imgui
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
-
-
nuklear
A single-header ANSI C immediate mode cross-platform GUI library (by Immediate-Mode-UI)
-
magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
-
-
sol2
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
-
-
simple-game
A personal collection of windowing/graphics/game code to get started quickly on games and graphical applications
-
-
-
sokol reviews and mentions
-
What is glib? What situations is it useful?
sokol headers seem to be lightweight and provide a similar cross platform library, but it's very minimilistic, and maybe you don't need to do audio or rendering stuff with it : https://github.com/floooh/sokol
-
Notes on WebAssembly
Shameless plug: It's not C++ (but C instead, but of course also usable from C++), and not "great" as in "created by a big Silicon Valley company", but check out the sokol headers:
https://github.com/floooh/sokol
...live samples:
- Recommendations for a lightweight cross platform windowing library?
-
Deprecation of OpenGL and OpenCL (2018)
Quick shout-out to a graphics abstraction library that works quite well: sokol.
https://github.com/floooh/sokol
It has DX11, Metal, and OpenGL backends (with optional shader compilation tool from GLSL to each target), which is probably all you need to get cross-platform support for all desktop and mobile targets. Rewrote my OpenGL code to this, was a pretty nice experience. The subset of graphical features it exposes seems more than good enough for simple 2D games (probably enough for simple 3D ones also). Can't say more than that though, since I haven't seen a shipped 3D game on Steam using it yet.
Though what we ultimately need for the future is a Metal-like API that runs on all platforms (since from what I've heard from other graphics developers Metal's API design is quite nice and finds the right balance between low-level control and high-level usability). The experimental SDL_gpu development (https://gist.github.com/icculus/f731224bef3906e4c5e8cbed6f98...) strives to achieve this, although it's still in the early stages...
-
what are some graphics libraries that also support 3d?
Have a look at the Sokol libraries: https://github.com/floooh/sokol
-
Tools for rolling your own engine
Sokol -https://github.com/floooh/sokol Imgui
-
Magnum: Lightweight, modular C++11 graphics middleware for games/visualization
Some other interesting libraries I've seen along these lines:
- Sokol (sokol_gfx in particular): https://github.com/floooh/sokol
- wgpu (see wgpu-native for the C API): https://github.com/gfx-rs/wgpu
It kind of seems like graphics abstractions for modern hardware are getting pretty "figured out". There are wrappers that work for most DirectX/Metal/OpenGL applications so they can run just about anywhere, and new 2D/3D applications have a lot of accessible/open-source options to build on top of. Projects like Mesa's Zink will centralize the burden of maintaining legacy APIs away from hardware manufacturers. The future looks bright.
-
Resources for someone who'd like to have fun with graphics programming without going through drudge work
https://github.com/ocornut/imgui pre-setup to run on https://github.com/floooh/sokol all merged into 1 .h and 1 .cpp
-
What is your own favorite C project?
Some of my favorites are: sokol/pacman.c, Gunslinger, and gb
-
New to graphics development, where should I start?
An alternative you did not mention, which might also be useful to you, are these https://github.com/floooh/sokol and https://github.com/bkaradzic/bgfx . These are graphics API abstraction layers. They work the similarly to SDL in that they aim to abstract the API details of the graphics APIs into a single front facing API, allowing you to do graphics work without caring (too much) about the underlying backends. This could be a good option for you too if you want to go the multiplatform way.
-
First Public Working Drafts: WebGPU and WebGPU Shading Language
> This isn't exactly a massive obstacle if you've set out to build a complex game in the browser.
It is an obstacle (at least a massive annoyance) for library authors (like this: https://github.com/floooh/sokol). Those libraries can be used for extremely simple and small WASM snippets embedded in blog posts (like here: https://floooh.github.io/2019/01/05/wasm-embedding.html), or in "proper" games hosted through "proper" web services which allow to set the response headers.
Right now the choice is to either support WASM threading, but tell users that the resulting code most likely won't work on the hosting provider of their choice, or not support WASM threading and work everywhere. At least for me I have decided to ignore WASM threading until the problem is solved (either the response headers are supported automatically by most popular hosting services, or there's another way to enable WASM threading which doesn't require control over the web server).
-
What would be the best rendering library for a noob to use with C++?
sokol
-
Nuklear: A cross-platform GUI library in C
The library itself doesn't depend on anything, instead it delegates the "platform integration" (rendering and input) to outside code.
The examples somehow need to connect to the underlying operating system, and that's why they depend on GLFW as intermediate layer, but this could also be SDL, or - shameless plug - the sokol headers (https://github.com/floooh/sokol), or (more commonly) a game engine like Unity, Unreal Engine, or your own.
-
Want to learn graphics programming
You could take a look at sokol: https://github.com/floooh/sokol
-
Migrating a JavaScript Library from JavaScript to WebAssembly
Regarding the "emscripten-imposed file size problem", I've written a couple of alternative cross-platform headers which might help in this case (e.g. avoiding SDL). These enable WASM apps in the "dozens of KBytes" range, and you get native-platform support "for free":
https://github.com/floooh/sokol
Check out these samples and have a look at the size in the browser devtools which are IMHO quite sensible:
Stats
floooh/sokol is an open source project licensed under zlib License which is an OSI approved license.
Popular Comparisons
Are you hiring? Post a new remote job listing for free.