GLFW VS bgfx

Compare GLFW vs bgfx and see what are their differences.

GLFW

A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input (by glfw)

bgfx

Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. (by bkaradzic)
Our great sponsors
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • InfluxDB - Access the most powerful time series database as a service
  • SonarQube - Static code analysis for 29 languages.
GLFW bgfx
70 63
10,668 13,058
1.3% -
8.3 8.5
about 1 month ago 8 days ago
C C++
zlib License BSD 2-clause "Simplified" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

GLFW

Posts with mentions or reviews of GLFW. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-30.
  • OpenGL (GLFW and GLAD) not linking with cmake
    2 projects | reddit.com/r/cmake | 30 May 2023
    There is a pattern to it which is usable with every GitHub repository. For example, GLFW v3.3.8 can be fetched from: https://github.com/glfw/glfw/archive/refs/tags/3.3.8.tar.gz
    2 projects | reddit.com/r/cmake | 30 May 2023
    What exactly would I fetch with this method? He's fetching a raylib url, but I don't really see a pattern in it I can follow when fetching glfw. I assume I can use this repository? https://github.com/glfw/glfw
  • Curseforge Minecraft running on M2?
    2 projects | reddit.com/r/macgaming | 1 Apr 2023
    I'm not sure how to fix it, sorry. I searched for some of the messages and found this bug: . I think overriding the LWJGL library might fix the issue, but I don't see any way to do that with the CurseForge launcher.
  • GLFW has merged proper support for client-side window decorations on Wayland!
    4 projects | reddit.com/r/linux | 28 Mar 2023
  • Newbie questions about how to start
    2 projects | reddit.com/r/VoxelGameDev | 21 Feb 2023
    To go multiplatform with OpenGL / Vulkan (harder for a beginner) you can use a simple window library like GLFW and Dear ImGui for UI. I use these for Avoyd, along with a few other libraries.
  • CMake can't find GLEW
    2 projects | reddit.com/r/learnprogramming | 20 Feb 2023
    cmake_minimum_required(VERSION 3.16) project(P1_PR) add_executable(P1_PR src/main.cpp ) find_package(GLFW QUIET) if(NOT GLFW_FOUND) message(STATUS "GLFW not found, fetching from GitHub...") include(FetchContent) FETCHCONTENT_DECLARE( GLFW GIT_REPOSITORY https://github.com/glfw/glfw/ GIT_TAG 3.3.8 ) FetchContent_GetProperties(GLFW) if (NOT GLFW_POPULATED) set(FETCHCONTENT_QUIET NO) FetchContent_Populate(GLFW) set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(BUILD_GAMES OFF CACHE BOOL "" FORCE) add_subdirectory(${glfw_SOURCE_DIR} ${glfw_BINARY_DIR}) endif() endif() find_package(GLEW QUIET) if(NOT GLEW_FOUND) message(STATUS "GLEW not found, fetching from GitHub...") include(FetchContent) FETCHCONTENT_DECLARE( GLEW GIT_REPOSITORY https://github.com/Perlmint/glew-cmake GIT_TAG glew-cmake-2.2.0 ) FetchContent_GetProperties(GLEW) if (NOT GLEW_POPULATED) set(FETCHCONTENT_QUIET NO) FetchContent_Populate(GLEW) set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(BUILD_GAMES OFF CACHE BOOL "" FORCE) add_subdirectory(${glew_SOURCE_DIR} ${glew_BINARY_DIR}) endif() endif() target_include_directories(${PROJECT_NAME} PRIVATE ${GLFW_SOURCE_DIR} PRIVATE ${GLEW_SOURCE_DIR} ) target_link_libraries(${PROJECT_NAME} glfw glew32 opengl32 gdi32 glm ) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
  • ayuda OpengL
    3 projects | reddit.com/r/programacion | 2 Jan 2023
  • Cursor scaling on Wayland is not there yet
    4 projects | reddit.com/r/linux | 11 Dec 2022
    I recently started following the Learn OpenGL tutorial and noticed that when I create a window with GLFW in the Wayland GNOME session the cursor becomes much larger when hovering over the window. This is because a Wayland client is expected to define its own pointer (cursor) and that seems to lead to inconsistencies between implementations. I do not have a problem with CSD being default on Wayland (I even prefer it when done really well, like Telegram Desktop, or any GTK app with GtkHeaderBar) but the cursor switching scale while moving it over surfaces (windows) is much more jarring.
  • Ayuda con OpenGL
    2 projects | reddit.com/r/programacion | 8 Dec 2022
  • I have trouble creating window In Ubuntu
    2 projects | reddit.com/r/vulkan | 25 Nov 2022
    I recall an issue specific to Wayland where windows only appear after the first command buffer is submitted. https://github.com/glfw/glfw/issues/1398

bgfx

Posts with mentions or reviews of bgfx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-21.
  • Is it a crazy idea to create a 3D operating system?
    5 projects | reddit.com/r/osdev | 21 May 2023
    Another route could be using an abstraction over Vulkan (faster, more efficient, more difficult): bgfx, dawn, magma, or wgpu (Rust).
  • The update we all want but will never get
    2 projects | reddit.com/r/PhoenixSC | 28 Mar 2023
    my guess for why renderdragon made performance worse is because old bedrock was built on bgfx which is a layer of abstraction ontop of a bunch of graphics apis which benefits the programmer because they can write the graphics code once and use it on a bunch of graphics apis (just like java! i heart cross compatibility)
    2 projects | reddit.com/r/PhoenixSC | 28 Mar 2023
    now, java is actually quite a performant language and even if its not most of the performance bugs in mc are due to it being single threaded, inefficient chunk generation and optimizing, and it built ontop of opengl WHICH isn't much of a performance hit but its still ehh idk it doesn't matter that much (NOW SWITCHING THE GAME TO AN ENTIRELY DIFFERENT GRAPHICS API WOULD SUCK ASS TO DO (and vulkan is quite verbose :))) (AND also bgfx would probably be better due to it being an abstraction layer ontop of all the graphics apis so minecraft could target many depending on your platform (and also bedrock used to (or still does i dont know) use bgfx before they switched to just two (IF IM READING MC WIKI RIGHT BECAUSE IM NOT ENTIRELY SURE IF THEY USE BGFX STILL ?? SO THEY COULD STILL BE TARGETING MULTIPLE YET THEY JUST WROTE THEIR NEW SHIT BAD IDK))
  • GUI frameworks for an SDL-based roguelike?
    4 projects | reddit.com/r/roguelikedev | 26 Mar 2023
    We use a lot of software used by big companies. :) Git and C++ come to mind. But as far I see on their software list there are one or two roguelikes. Also, bgfx uses ImGUI under the hood, so it is a good place to see how it can look or even use it instead of just ImGUI.
  • Best C++ Game Framework
    4 projects | reddit.com/r/gameenginedevs | 10 Mar 2023
    I think if you're not going to use an existing game engine, it makes sense to learn OpenGL and implement things yourself, or use something with the explicit goal of being a rendering abstraction like bgfx. It's more of a time commitment though, and sfml is much simpler and easier to get started with.
  • minimax — minimalist 3D game engine in Clojure
    5 projects | reddit.com/r/Clojure | 26 Feb 2023
    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
  • Just found out about Zig and wonder what would be the best graphics library to pair with it?
    5 projects | reddit.com/r/Zig | 1 Feb 2023
    If you want juste a renderer, you can use BGFX, there is a zig binding that is not a third party.
  • Cross platform low level graphics API suitable for game development?
    4 projects | reddit.com/r/gamedev | 27 Jan 2023
    Take a look at BGFX, sounds like its what you want. Its a cross platform graphics API that is low level like metal or opengl, however it treats opengl, metal, vulkan, etc as backends that u can compile to so you can write your code once and then compile to macos using metal as the backend, compile to web using webgl as the backend, compile for windows using directx as the backend etc etc. Its written in C++ but it has officially supported C bindings so you can use it with C no problem.
  • rayllib vs bgfx - what is difference ?
    2 projects | reddit.com/r/raylib | 27 Dec 2022
    bgfx:https://github.com/bkaradzic/bgfx
  • Want to a 3D game without a game engine but not having to deal with opengl stuff ?
    4 projects | reddit.com/r/gamedev | 9 Dec 2022
    BGFX

What are some alternatives?

When comparing GLFW and bgfx you can also consider the following projects:

SDL - Simple Directmedia Layer

magnum - Lightweight and modular C++11 graphics middleware for games and data visualization

Ogre 3D - scene-oriented, flexible 3D engine (C++, Python, C#, Java)

DiligentEngine - A modern cross-platform low-level graphics library and rendering framework

glad - Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.

The-Forge - The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2

sokol - minimal cross-platform standalone C headers

Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

raylib - A simple and easy-to-use library to enjoy videogames programming

urho3d - Game engine

OpenSceneGraph - OpenSceneGraph git repository