{"id":13440083,"url":"https://github.com/glfw/glfw","last_synced_at":"2025-05-13T10:52:03.022Z","repository":{"id":8109372,"uuid":"9524997","full_name":"glfw/glfw","owner":"glfw","description":"A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input","archived":false,"fork":false,"pushed_at":"2025-01-13T19:06:45.000Z","size":16720,"stargazers_count":13754,"open_issues_count":699,"forks_count":5487,"subscribers_count":384,"default_branch":"master","last_synced_at":"2025-05-05T20:27:19.328Z","etag":null,"topics":["c","linux","macos","opengl","opengl-es","unix","vulkan","windows"],"latest_commit_sha":null,"homepage":"https://www.glfw.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glfw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":"docs/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-18T15:24:53.000Z","updated_at":"2025-05-05T18:23:46.000Z","dependencies_parsed_at":"2023-01-16T21:01:03.511Z","dependency_job_id":"e147a6c3-96b6-440a-bac6-d7ef730713ff","html_url":"https://github.com/glfw/glfw","commit_stats":{"total_commits":4618,"total_committers":203,"mean_commits":"22.748768472906406","dds":"0.13165872672152445","last_synced_commit":"b35641f4a3c62aa86a0b3c983d163bc0fe36026d"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glfw%2Fglfw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glfw%2Fglfw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glfw%2Fglfw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glfw%2Fglfw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glfw","download_url":"https://codeload.github.com/glfw/glfw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253171250,"owners_count":21865290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","linux","macos","opengl","opengl-es","unix","vulkan","windows"],"created_at":"2024-07-31T03:01:19.637Z","updated_at":"2025-05-13T10:52:02.991Z","avatar_url":"https://github.com/glfw.png","language":"C","funding_links":[],"categories":["Graphics","C","c","Graphic Libraries \u0026 Renderers","其他_机器视觉","Libraries","图像数据与CV","windows"],"sub_categories":["Data Management","网络服务_其他","C"],"readme":"# GLFW\n\n[![Build status](https://github.com/glfw/glfw/actions/workflows/build.yml/badge.svg)](https://github.com/glfw/glfw/actions)\n[![Build status](https://ci.appveyor.com/api/projects/status/0kf0ct9831i5l6sp/branch/master?svg=true)](https://ci.appveyor.com/project/elmindreda/glfw)\n\n## Introduction\n\nGLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan\napplication development.  It provides a simple, platform-independent API for\ncreating windows, contexts and surfaces, reading input, handling events, etc.\n\nGLFW natively supports Windows, macOS and Linux and other Unix-like systems.  On\nLinux both Wayland and X11 are supported.\n\nGLFW is licensed under the [zlib/libpng\nlicense](https://www.glfw.org/license.html).\n\nYou can [download](https://www.glfw.org/download.html) the latest stable release\nas source or Windows binaries.  Each release starting with 3.0 also has\na corresponding [annotated tag](https://github.com/glfw/glfw/releases) with\nsource and binary archives.\n\nThe [documentation](https://www.glfw.org/docs/latest/) is available online and is\nincluded in all source and binary archives.  See the [release\nnotes](https://www.glfw.org/docs/latest/news.html) for new features, caveats and\ndeprecations in the latest release.  For more details see the [version\nhistory](https://www.glfw.org/changelog.html).\n\nThe `master` branch is the stable integration branch and _should_ always compile\nand run on all supported platforms, although details of newly added features may\nchange until they have been included in a release.  New features and many bug\nfixes live in [other branches](https://github.com/glfw/glfw/branches/all) until\nthey are stable enough to merge.\n\nIf you are new to GLFW, you may find the\n[tutorial](https://www.glfw.org/docs/latest/quick.html) for GLFW 3 useful.  If\nyou have used GLFW 2 in the past, there is a [transition\nguide](https://www.glfw.org/docs/latest/moving.html) for moving to the GLFW\n3 API.\n\nGLFW exists because of the contributions of [many people](CONTRIBUTORS.md)\naround the world, whether by reporting bugs, providing community support, adding\nfeatures, reviewing or testing code, debugging, proofreading docs, suggesting\nfeatures or fixing bugs.\n\n\n## Compiling GLFW\n\nGLFW is written primarily in C99, with parts of macOS support being written in\nObjective-C.  GLFW itself requires only the headers and libraries for your OS\nand window system.  It does not need any additional headers for context creation\nAPIs (WGL, GLX, EGL, NSGL, OSMesa) or rendering APIs (OpenGL, OpenGL ES, Vulkan)\nto enable support for them.\n\nGLFW supports compilation on Windows with Visual C++ 2013 and later, MinGW and\nMinGW-w64, on macOS with Clang and on Linux and other Unix-like systems with GCC\nand Clang.  It will likely compile in other environments as well, but this is\nnot regularly tested.\n\nThere are [pre-compiled binaries](https://www.glfw.org/download.html) available\nfor all supported compilers on Windows and macOS.\n\nSee the [compilation guide](https://www.glfw.org/docs/latest/compile.html) for\nmore information about how to compile GLFW yourself.\n\n\n## Using GLFW\n\nSee the [documentation](https://www.glfw.org/docs/latest/) for tutorials, guides\nand the API reference.\n\n\n## Contributing to GLFW\n\nSee the [contribution\nguide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for\nmore information.\n\n\n## System requirements\n\nGLFW supports Windows XP and later and macOS 10.11 and later.  Linux and other\nUnix-like systems running the X Window System are supported even without\na desktop environment or modern extensions, although some features require\na running window or clipboard manager.  The OSMesa backend requires Mesa 6.3.\n\nSee the [compatibility guide](https://www.glfw.org/docs/latest/compat.html)\nin the documentation for more information.\n\n\n## Dependencies\n\nGLFW itself needs only CMake 3.16 or later and the headers and libraries for your\nOS and window system.\n\nThe examples and test programs depend on a number of tiny libraries.  These are\nlocated in the `deps/` directory.\n\n - [getopt\\_port](https://github.com/kimgr/getopt_port/) for examples\n   with command-line options\n - [TinyCThread](https://github.com/tinycthread/tinycthread) for threaded\n   examples\n - [glad2](https://github.com/Dav1dde/glad) for loading OpenGL and Vulkan\n   functions\n - [linmath.h](https://github.com/datenwolf/linmath.h) for linear algebra in\n   examples\n - [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) for test and example UI\n - [stb\\_image\\_write](https://github.com/nothings/stb) for writing images to disk\n\nThe documentation is generated with [Doxygen](https://doxygen.org/) if CMake can\nfind that tool.\n\n\n## Reporting bugs\n\nBugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues).\nPlease check the [contribution\nguide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for\ninformation on what to include when reporting a bug.\n\n\n## Changelog since 3.4\n\n - Added `GLFW_UNLIMITED_MOUSE_BUTTONS` input mode that allows mouse buttons beyond\n   the limit of the mouse button tokens to be reported (#2423)\n - Updated minimum CMake version to 3.16 (#2541)\n - [Cocoa] Added `QuartzCore` framework as link-time dependency\n - [Cocoa] Removed support for OS X 10.10 Yosemite and earlier (#2506)\n - [Wayland] Bugfix: The fractional scaling related objects were not destroyed\n - [Wayland] Bugfix: `glfwInit` would segfault on compositor with no seat (#2517)\n - [Wayland] Bugfix: A drag entering a non-GLFW surface could cause a segfault\n - [X11] Bugfix: Running without a WM could trigger an assert (#2593,#2601,#2631)\n - [Null] Added Vulkan 'window' surface creation via `VK_EXT_headless_surface`\n - [Null] Added EGL context creation on Mesa via `EGL_MESA_platform_surfaceless`\n - [EGL] Allowed native access on Wayland with `GLFW_CONTEXT_CREATION_API` set to\n   `GLFW_NATIVE_CONTEXT_API` (#2518)\n\n\n## Contact\n\nOn [glfw.org](https://www.glfw.org/) you can find the latest version of GLFW, as\nwell as news, documentation and other information about the project.\n\nIf you have questions related to the use of GLFW, we have a\n[forum](https://discourse.glfw.org/).\n\nIf you have a bug to report, a patch to submit or a feature you'd like to\nrequest, please file it in the\n[issue tracker](https://github.com/glfw/glfw/issues) on GitHub.\n\nFinally, if you're interested in helping out with the development of GLFW or\nporting it to your favorite platform, join us on the forum or GitHub.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglfw%2Fglfw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglfw%2Fglfw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglfw%2Fglfw/lists"}