awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
glfw avatar

glfw/glfw

0
View on GitHub↗
14,716 stars·5,806 forks·C·zlib·24 viewswww.glfw.org↗

Glfw

This project is a cross-platform library designed for desktop application development, providing a unified interface for window management, input handling, and hardware-accelerated graphics. It serves as a foundational framework that abstracts platform-specific windowing protocols and graphics APIs, enabling developers to create interactive software that functions consistently across Windows, macOS, and Linux.

The library distinguishes itself by providing deep integration with low-level graphics APIs, specifically OpenGL and Vulkan. It manages the complexities of graphics context initialization, hardware extension discovery, and frame synchronization, while offering a modular backend that maps unified commands to native system calls. By encapsulating native operating system objects within platform-agnostic handles, it allows for consistent resource management without sacrificing the ability to access underlying system-specific features when necessary.

Beyond its core graphics capabilities, the project includes comprehensive systems for managing user interactions and display environments. It supports advanced input processing for keyboards, mice, and gamepads, alongside utilities for clipboard access, cursor customization, and file drop handling. The display management layer provides granular control over multi-monitor configurations, including resolution, refresh rates, gamma correction, and high-DPI scaling, ensuring that applications can adapt to diverse hardware setups.

The library is implemented in C and provides a stable, event-driven architecture that relies on polling loops and callback mechanisms to maintain application responsiveness. It includes robust support for library lifecycle management, custom memory allocation, and high-resolution timing, and is distributed with extensive documentation to assist in integrating its native handles with other system-level APIs.

Features

  • Cross-Platform Windowing Abstractions - Provides a unified cross-platform interface for window management, graphics context creation, and input handling.
  • Desktop Application Development - Serves as a foundational framework for building interactive desktop applications with system-level access.
  • Input Handling - Capture and process keyboard, mouse, joystick, and gamepad events to enable interactive control within the application window.
  • Input Handling Systems - Captures and manages keyboard, mouse, and gamepad input events through a unified system-level framework.
  • Display Configuration Managers - Query supported video resolutions and refresh rates or retrieve the current display configuration for a specific monitor.
  • Graphics API Integrations - Provides deep integration for initializing and managing OpenGL and Vulkan rendering environments.
  • Graphics API Loaders - Initializes graphics rendering environments and retrieves function pointers for hardware-accelerated APIs.
  • Input Handling - Captures and normalizes keyboard, mouse, and gamepad input across different operating systems.
  • Window Management - Interacts with native windowing protocols to manage the full lifecycle of application windows across platforms.
  • Native Handle Accessors - Retrieve underlying platform-specific handles for windows and contexts to allow direct integration with native system APIs.
  • Graphics Rendering APIs - Provides a unified interface for interacting with low-level graphics drivers and rendering surfaces.
  • Graphics Context Initializers - Initializes and maintains rendering environments by negotiating with native graphics drivers.
  • Library Initializers - Handle library initialization, version checking, and error reporting to ensure the graphics environment is correctly set up for the application.
  • Vulkan Surface Initializers - Initializes native surfaces for windows to enable direct rendering via Vulkan.
  • Platform Abstraction Layers - Maps unified API calls to native windowing and input protocols via a modular platform abstraction layer.
  • Display Metrics - Retrieve precise window dimensions and high-resolution framebuffer sizes to ensure correct viewport scaling across various display hardware and screen densities.
  • Window Lifecycle Monitors - Monitors window lifecycle events to enable responsive, event-driven application logic.
  • Event Handling Systems - Implements event polling loops to maintain application responsiveness and process system interactions.
  • Vulkan Loader Configurations - Provides runtime configuration for Vulkan loader libraries to support custom driver integration paths.
  • Multi-Window Controllers - Enables creation and control of multiple independent windows, each with dedicated graphics contexts.
  • Graphics API Loaders - Resolves graphics API entry points at runtime to enable hardware-specific features.
  • Engines and Frameworks - Windowing and input library with Vulkan support.
  • Graphics and Rendering - Cross-platform library for OpenGL windowing and input.
  • Graphics Libraries - Cross-platform API for windowing and graphics contexts.
  • Graphics Rendering - OpenGL context and window management library.
  • Window Geometry Managers - Enforces window dimension constraints and retrieves frame geometry for precise layout management.
  • Display Hardware Initializers - Manage the lifecycle of input devices and rendering backends, including on-demand initialization to ensure hardware compatibility.
  • Monitor Enumerators - Detects connected display devices and retrieves supported video modes to configure multi-monitor environments.
  • Hardware-Accelerated Rendering - Manages hardware-accelerated rendering pipelines and frame synchronization for real-time applications.
  • Function Pointer Retrievers - Retrieves graphics API function addresses at runtime to access vendor-specific extensions.
  • Graphics API Bridges - Bridges platform-specific windowing systems with low-level graphics APIs like OpenGL and Vulkan.
  • Display Configuration Managers - Enables enumeration and querying of connected display monitors to retrieve properties, resolutions, and refresh rates.
  • Waitable Swap Chains - Manages frame presentation and vertical synchronization through swap chain configuration.
  • Extension Detectors - Identifies required instance extensions for managing graphics surfaces on local hardware.
  • Hardware Extension Detectors - Verifies hardware extension support at runtime to prevent application crashes.
  • System Clipboard Access - Provides read and write access to the system clipboard for cross-application data exchange.
  • Window Property Setters - Sets persistent window attributes such as title, size, and monitor selection for individual windows.
  • Event-Driven Loops - Implements an event-driven polling loop to maintain application responsiveness and state synchronization.
  • Application Lifecycle Managers - Initialize the library before use and terminate it to release all allocated resources and destroy active windows.
  • Cursor Controllers - Configures cursor visibility and movement constraints, including locking cursors to specific windows.
  • Display Scaling - Retrieves DPI-based scaling factors to ensure UI elements render correctly on high-density displays.
  • Mouse Event Handlers - Handles mouse button states and scroll wheel offsets via event callbacks or polling.
  • Gamepad Mappers - Maps joystick inputs to standardized gamepad layouts for consistent controller support.
  • Main Thread Dispatchers - Execute functions across threads by adhering to specific constraints regarding which operations must occur on the main thread versus background threads.
  • Unicode Text Input Capturers - Captures Unicode text input while respecting local keyboard layouts and modifier keys.
  • Presentation Support Verifiers - Verifies if hardware queue families support surface presentation before rendering initialization.
  • Gamma Correction Utilities - Provides hardware-level gamma ramp control to adjust brightness and color output characteristics for monitors.
  • Native Platform Access - Access platform-specific handles and functions to bridge the gap between standard cross-platform interfaces and the underlying windowing systems of the host operating system.
  • Display Connection Monitors - Trigger a callback function whenever a display is connected or disconnected from the system.
  • System Resource Initializers - Prepare the library for use by detecting hardware features, enumerating monitors, and setting up internal resources for window management.
  • Backend Selectors - Configure the library to use a specific windowing system backend at runtime and query the current platform support.
  • Graphics Context Threading - Handles the assignment and transfer of graphics context ownership between threads for stable rendering.
  • Event Dispatchers - Provides a callback-based event dispatch system for handling window lifecycle and hardware input events.
  • Cursor Customizations - Allows definition of custom cursor shapes and mouse-transparent window behaviors.
  • System File Drop Handlers - Handles file drop events from the operating system onto application windows.
  • Input Device Detection - Tracks the physical state of input hardware including cursor positioning and scroll offsets.
  • Raw Mouse Motion Trackers - Provides unscaled and unaccelerated mouse movement data for precise control in 3D applications.

Star history

Star history chart for glfw/glfwStar history chart for glfw/glfw

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does glfw/glfw do?

This project is a cross-platform library designed for desktop application development, providing a unified interface for window management, input handling, and hardware-accelerated graphics. It serves as a foundational framework that abstracts platform-specific windowing protocols and graphics APIs, enabling developers to create interactive software that functions consistently across Windows, macOS, and Linux.

What are the main features of glfw/glfw?

The main features of glfw/glfw are: Cross-Platform Windowing Abstractions, Desktop Application Development, Input Handling, Input Handling Systems, Display Configuration Managers, Graphics API Integrations, Graphics API Loaders, Window Management.

Which projects share features with glfw/glfw?

Projects with overlapping indexed features include: microsoft/windows-universal-samples — This repository is a comprehensive collection of reference implementations and sample libraries for the Universal… bkaradzic/bgfx — bgfx is a cross-platform, graphics rendering abstraction layer designed for high-performance applications. It provides… libgdx/libgdx — LibGDX is a Java-based framework designed for cross-platform game development, enabling the creation and deployment of… sfml/sfml — SFML is a cross-platform C++ multimedia library designed for building 2D games and interactive applications. It… gfx-rs/wgpu — This project is a cross-platform graphics and compute framework that provides a unified, hardware-agnostic abstraction… mosra/magnum — Magnum is a C++ middleware suite for cross-platform graphics development and real-time data visualization. It provides…

Projects sharing features with Glfw

These projects share indexed features with Glfw. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • microsoft/windows-universal-samplesmicrosoft avatar

    microsoft/Windows-universal-samples

    9,696View on GitHub↗

    This repository is a comprehensive collection of reference implementations and sample libraries for the Universal Windows Platform. It provides practical examples of how to use Windows Runtime APIs to build cross-device applications, including detailed guidance on XAML-based declarative user interfaces and DirectX-integrated rendering. The project distinguishes itself by providing a wide array of hardware integration suites, covering low-level communication with USB, Serial, I2C, SPI, and GPIO peripherals. It includes specialized implementations for mixed reality holographic rendering, advanc

    JavaScript
    View on GitHub↗9,696
  • bkaradzic/bgfxbkaradzic avatar

    bkaradzic/bgfx

    17,161View on GitHub↗

    bgfx is a cross-platform, graphics rendering abstraction layer designed for high-performance applications. It provides a unified interface that maps high-level rendering commands to native graphics APIs, allowing developers to maintain a single codebase that executes consistently across diverse operating systems and hardware architectures. The library distinguishes itself through a multi-threaded command submission model that decouples rendering logic from the main application thread, effectively minimizing CPU bottlenecks. It utilizes a backend-agnostic command buffer and a deferred resource

    Cd3d11d3d12directx
    View on GitHub↗17,161
  • libgdx/libgdxlibgdx avatar

    libgdx/libgdx

    24,816View on GitHub↗

    LibGDX is a Java-based framework designed for cross-platform game development, enabling the creation and deployment of 2D and 3D games across desktop, mobile, and web environments from a single codebase. It functions as a comprehensive library that abstracts hardware-accelerated graphics, audio, input, and file system access, providing a unified interface for developers to manage game logic and application lifecycles. The framework distinguishes itself through a high-performance architecture that prioritizes efficiency and native interoperability. It utilizes a batch-oriented graphics pipelin

    Java2d3dandroid
    View on GitHub↗24,816
  • sfml/sfmlSFML avatar

    SFML/SFML

    11,665View on GitHub↗

    SFML is a cross-platform C++ multimedia library designed for building 2D games and interactive applications. It provides a unified interface for hardware-accelerated graphics, audio playback, and window management, allowing developers to create visual software that functions consistently across different operating systems. The library abstracts native windowing and graphics APIs, enabling the use of object-oriented primitives to render shapes, sprites, and text. It includes a dedicated audio engine that supports sound effects and music with controls for volume, pitch, and spatial positioning,

    C++audioc-plus-pluscross-platform
    View on GitHub↗11,665
  • Compare all 30 related projects→