glfw - 适用于 OpenGL、OpenGL ES、Vulkan、窗口和输入的多平台库

Created at: 2013-04-18 23:24:53
Language: C
License: Zlib

GLFW公司

生成状态 生成状态

介绍

GLFW 是一个开源的多平台库,适用于 OpenGL、OpenGL ES 和 Vulkan 应用程序开发。它提供了一个简单的、独立于平台的 API 创建窗口、上下文和图面、读取输入、处理事件等。

GLFW 原生支持 Windows、macOS 和 Linux 以及其他类 Unix 系统。上 Linux 支持 Wayland 和 X11。

GLFW 在 zlib/libpng 下获得许可 许可证

你可以下载最新的稳定版本 作为源或 Windows 二进制文件。从 3.0 开始的每个版本还具有 一个相应的带注释的标签 源和二进制存档。

文档可在线获取,并且是 包含在所有源和二进制存档中。查看新闻稿 有关新功能、注意事项和 最新版本中的弃用。有关更多详细信息,请参阅版本 历史

该分支是稳定的集成分支,始终编译 并在所有支持的平台上运行,尽管新添加的功能的详细信息可能 更改,直到它们包含在版本中。新功能和许多错误 修复程序存在于其他分支中,直到 它们足够稳定,可以合并。

master

如果你不熟悉 GLFW,你可能会发现 GLFW 3 教程很有用。如果 你过去使用过 GLFW 2,有一个过渡 移至 GLFW 的指南 3 API。

GLFW 之所以存在,是因为世界各地许多人的贡献,无论是通过报告错误、提供社区支持还是添加 功能、审查或测试代码、调试、校对文档、建议 功能或修复错误。

编译 GLFW

GLFW 主要用 C99 编写,部分 macOS 支持是用 目标-C。GLFW 本身只需要操作系统的标头和库 和窗口系统。它不需要任何额外的标头来创建上下文 API(WGL、GLX、EGL、NSGL、OSMesa)或渲染 API(OpenGL、OpenGL ES、Vulkan) 以启用对它们的支持。

GLFW 支持在 Windows 上使用 Visual C++ 2013 及更高版本、MinGW 和 MinGW-w64,在带有 Clang 的 macOS 上,以及在带有 GCC 的 Linux 和其他类 Unix 系统上 和叮当声。它也可能在其他环境中编译,但这是 未定期测试。

预编译的二进制文件可用 适用于 Windows 和 macOS 上所有受支持的编译器。

请参阅编译指南 有关如何自己编译 GLFW 的更多信息。

使用 GLFW

有关教程、指南,请参阅文档 和 API 参考。

为GLFW做贡献

查看贡献 指南 更多信息。

系统要求

GLFW 支持 Windows XP 及更高版本以及 macOS 10.8 及更高版本。Linux 和其他 即使没有 桌面环境或新式扩展,尽管某些功能需要 正在运行的窗口或剪贴板管理器。OSMesa 后端需要 Mesa 6.3。

有关详细信息,请参阅文档中的兼容性指南

依赖

GLFW 本身只需要 CMake 3.1 或更高版本以及 操作系统和窗口系统。

示例和测试程序依赖于许多微小的库。这些是 位于目录中。

deps/

如果 CMake 可以,则使用 Doxygen 生成文档 找到那个工具。

报告错误

错误将报告给我们的问题跟踪器。 请检查贡献 指南 有关报告错误时应包含的内容的信息。

更新日志开始于 3.3.10

  • 添加了用于运行时平台选择的初始化提示 (#1958)
    GLFW_PLATFORM
  • 添加了 、 、 和 符号 指定所需的平台 (#1958)
    GLFW_ANY_PLATFORM
    GLFW_PLATFORM_WIN32
    GLFW_PLATFORM_COCOA
    GLFW_PLATFORM_WAYLAND
    GLFW_PLATFORM_X11
    GLFW_PLATFORM_NULL
  • 新增查询所选平台功能 (#1655,#1958)
    glfwGetPlatform
  • 新增查询平台是否受支持的功能 (#1655,#1958)
    glfwPlatformSupported
  • 添加了用于设置自定义内存分配器的功能 (#544,#1628,#1947)
    glfwInitAllocator
  • 添加了 struct 和 , 以及类型 (#544,#1628,#1947)
    GLFWallocator
    GLFWallocatefun
    GLFWreallocatefun
    GLFWdeallocatefun
  • 新增窗口标题查询功能(#1448,#1909,#2482)
    glfwGetWindowTitle
  • 添加了使用非默认 Vulkan 加载程序 (#1374,#1890)
    glfwInitVulkanLoader
  • 添加了 、 和光标形状 (#427)
    GLFW_RESIZE_NWSE_CURSOR
    GLFW_RESIZE_NESW_CURSOR
    GLFW_RESIZE_ALL_CURSOR
    GLFW_NOT_ALLOWED_CURSOR
  • 添加了别名 (#427)
    GLFW_RESIZE_EW_CURSOR
    GLFW_HRESIZE_CURSOR
  • 添加了别名 (#427)
    GLFW_RESIZE_NS_CURSOR
    GLFW_VRESIZE_CURSOR
  • 添加了别名 (#427)
    GLFW_POINTING_HAND_CURSOR
    GLFW_HAND_CURSOR
  • 添加了允许鼠标输入通过的窗口提示 透过窗户 (#1236,#1568)
    GLFW_MOUSE_PASSTHROUGH
  • 添加了光标模式以将光标限制在窗口内 内容区 (#58)
    GLFW_CURSOR_CAPTURED
  • 添加了初始位置的窗口提示 (#1603,#1747)
    GLFW_POSITION_X
    GLFW_POSITION_Y
  • 添加了 Wayland 和 macOS 缩放的窗口提示 (#2457)
    GLFW_SCALE_FRAMEBUFFER
  • 添加了让窗口管理器选择的提示值 (#1603,#1747)
    GLFW_ANY_POSITION
  • 添加了平台检测失败的错误 (#1958)
    GLFW_PLATFORM_UNAVAILABLE
  • 添加了平台限制错误 (#1692)
    GLFW_FEATURE_UNAVAILABLE
  • 添加了不完整后端的错误 (#1692)
    GLFW_FEATURE_UNIMPLEMENTED
  • 为 Wayland app_id选择添加了窗口提示字符串 (#2121,#2122)
    GLFW_WAYLAND_APP_ID
  • 添加了 init 提示和值以选择 ANGLE 后端 (#1380)
    GLFW_ANGLE_PLATFORM_TYPE
    GLFW_ANGLE_PLATFORM_TYPE_*
  • 添加了用于选择 X11 Vulkan 的初始化提示 表面延伸 (#1793)
    GLFW_X11_XCB_VULKAN_SURFACE
  • 添加了用于启用对窗口菜单的访问的窗口提示
    GLFW_WIN32_KEYBOARD_MENU
  • 添加了用于应用父进程的窗口提示 show 命令 (#2359)
    GLFW_WIN32_SHOWDEFAULT
  • 添加了用于禁用本机标头的包含 (#1348)
    GLFW_NATIVE_INCLUDE_NONE
  • 添加了用于启用 Win32 支持的 CMake 选项 (#1958)
    GLFW_BUILD_WIN32
  • 添加了用于启用 Cocoa 支持的 CMake 选项 (#1958)
    GLFW_BUILD_COCOA
  • 添加了用于启用 X11 支持的 CMake 选项 (#1958)
    GLFW_BUILD_X11
  • 添加了用于覆盖库类型的 CMake 变量 (#279,#1307,#1497,#1574,#1928)
    GLFW_LIBRARY_TYPE
  • 添加了对环境变量的支持
    XDG_SESSION_TYPE
  • 添加和 CMake 暴露 pkg-config 依赖项的变量 (#1307)
    GLFW_PKG_CONFIG_REQUIRES_PRIVATE
    GLFW_PKG_CONFIG_LIBS_PRIVATE
  • 使操纵杆子系统在首次使用时初始化 (#1284,#1646)
  • 制作了只读窗口属性
    GLFW_DOUBLEBUFFER
  • 如果两者都可用,则使 Wayland 成为 X11 的首选平台 (#2035)
  • 将所需的最低 CMake 版本更新为 3.4
  • 从上游更新了游戏手柄映射
  • 将 CMake 选项重命名为 (#1958)
    GLFW_USE_WAYLAND
    GLFW_BUILD_WAYLAND
  • 默认情况下,当构建为 CMake 子目录时禁用了测试和示例
  • 删除了启用 Null 平台的 CMake 选项 (#1958)
    GLFW_USE_OSMESA
  • 删除了 CMake 生成的配置标头
  • Bugfix:出错时返回无效模式 (#1292)
    glfwGetVideoMode
  • [Win32的]向 GLFW DLL 添加了版本信息资源
  • [Win32的]使隐藏的帮助程序窗口使用自己的窗口类
  • [Win32的]Bugfix:前台锁定超时被覆盖,忽略用户
  • [可可]新增原生访问功能 (#2235)
    glfwGetCocoaView
  • [可可]将主菜单创建移至 GLFW 初始化时间 (#1649)
  • [可可]Bugfix:在主线程之前从辅助线程接触事件队列 会中止 (#1649)
  • [韦兰]添加了对 (#2287) 的支持
    glfwRequestWindowAttention
  • [韦兰]添加了对以下内容的支持
    glfwFocusWindow
  • [韦兰]添加了对 (#2203) 的支持
    GLFW_RESIZABLE
  • [韦兰]添加了对窗口内容的分数缩放的支持
  • [韦兰]添加了所有 Wayland 库的动态加载
  • [韦兰]Bug修复:未正确启用
    CLOCK_MONOTONIC
  • [韦兰]错误修复:当光标位于任何 后备窗口装饰
    GLFW_HOVERED
  • [韦兰]Bugfix:允许将回退修饰调整为无效大小 (#2204)
  • [X11]Bugfix:如果 IM 被销毁,终止将导致段错误
  • [X11]Bug修复:不会检测到初始化后启动的任何 IM
  • [Linux操作系统]错误修复:操纵杆 evdev fds 在分叉中保持打开状态 (#2446)
  • [POSIX的]删除了已弃用函数的使用
    gettimeofday
  • [POSIX的]Bugfix:未正确测试或启用
    CLOCK_MONOTONIC
  • [WGL]禁用了 Windows 8 及更高版本的 DWM 交换间隔黑客 (#1072)
  • [国家政府关系]删除了对核心上下文的向前兼容标志的强制执行
  • [国家政府关系]错误修复:如果 3.2+ 返回核心配置文件 OpenGL 上下文 已请求兼容性配置文件
  • [EGL]通过扩展添加了平台选择 (#442)
    EGL_EXT_platform_base
  • [EGL]通过扩展添加了 ANGLE 后端选择 (#1380)
    EGL_ANGLE_platform_angle

自 3.3 起的更新日志

  • 添加了用于禁用 libdecor 支持的初始化提示 (#1639,#1693)
    GLFW_WAYLAND_LIBDECOR
  • Bugfix:CMake 配置文件包使用了绝对路径,但不是 可重定位 (#1470)
  • Bugfix:丢弃了具有重复屏幕区域的视频模式 (#1555,#1556)
  • Bugfix:使用 -Wextra-semi 编译导致警告 (#1440)
  • Bugfix:由于某些 OEM 重复使用了 VID/PID,内置映射失败 (#1583)
  • Bugfix:某些扩展加载器标头未阻止默认的 OpenGL 标头 包容 (#1695)
  • Bugfix:在单缓冲窗口上创建缓冲区时交换了缓冲区 (#1873)
  • Bugfix:由于以下原因,游戏手柄映射更新可能会发送垃圾邮件 不兼容的控制器共享硬件 ID (#1763)
    GLFW_INVALID_VALUE
  • Bugfix:上下文句柄的本机访问函数未检查 API 是否匹配
  • Bug修复:在初始化前会访问TLS插槽
    glfwMakeContextCurrent
  • Bug修复:初始化前可能会发出
    glfwSetGammaRamp
    GLFW_INVALID_VALUE
  • 错误修复:断开连接时返回 (#2092)
    glfwGetJoystickUserPointer
    NULL
  • Bugfix:初始化时错误返回,而不是
    glfwGetKeyScancode
    0
    -1
  • Bugfix:无法使新创建的上下文为当前可能会导致段错误 (#2327)
  • [Win32的]当 DWM 窗口 不透明 (#1512)
  • [Win32的]错误修复:加致 符号重新定义 (#1524)
    GLFW_INCLUDE_VULKAN
    VK_USE_PLATFORM_WIN32_KHR
  • [Win32的]Bug修复:光标位置事件在光标进入之前发出 事件 (#1490)
  • [Win32的]Bugfix:窗口提示未移动或调整 窗口 (#1499)
    GLFW_MAXIMIZED
  • [Win32的]Bugfix:禁用光标模式干扰了某些非客户端操作
  • [Win32的]Bugfix:Win+V 热键后未释放超级键 (#1622)
  • [Win32的]Bugfix:可以越界访问并返回一个 指针无效
    glfwGetKeyName
  • [Win32的]Bugfix:一些合成密钥事件被报告为 (#1623)
    GLFW_KEY_UNKNOWN
  • [Win32的]错误修复:非 BMP Unicode 代码点输入被报告为 UTF-16
  • [Win32的]Bug修复:监视函数可能在以下时间返回无效值 配置更改 (#1761)
  • [Win32的]错误修复:初始化会在 Windows 8(非 8.1)上出现段错误 (#1775)
  • [Win32的]Bugfix:未过滤重复大小事件 (#1610)
  • [Win32的]错误修复:DPI 更改错误地调整了全屏窗口的大小 (#1582)
  • [Win32的]错误修复:对早于以下日期的系统没有影响 Windows 10 版本 1703 (#1511)
    GLFW_SCALE_TO_MONITOR
  • [Win32的]Bugfix:对 CMake 3.15 没有影响或 后来 (#1783,#1796)
    USE_MSVC_RUNTIME_LIBRARY_DLL
  • [Win32的]错误修复:使用 LLVM for Windows 编译失败 (#1807,#1824,#1874)
  • [Win32的]Bugfix:内容规模查询可能会以静默方式失败 (#1615)
  • [Win32的]Bugfix:如果最近监视器,内容规模可能具有垃圾值 断开连接 (#1615)
  • [Win32的]Bugfix:最大化和未修饰的窗口将覆盖整个窗口 监视器 (#1806)
  • [Win32的]Bugfix:创建最大化的默认还原窗口位置丢失 窗
  • [Win32的]Bugfix:会使隐藏的窗口可见
    glfwMaximizeWindow
  • [Win32的]错误修复:会发出不同的 扫描码比 (#1993)
    Alt+PrtSc
    GLFW_KEY_UNKNOWN
    PrtSc
  • [Win32的]Bug修复:扫描代码未 匹配事件扫描码 (#1993)
    GLFW_KEY_PAUSE
    glfwGetKeyScancode
  • [Win32的]Bugfix:实例本地操作使用可执行实例 (#469,#1296,#1395)
  • [Win32的]Bugfix:终止时未卸载 OSMesa 库
  • [Win32的]Bugfix:使用 CJK 输入法时发出右移 (#2050)
    GLFW_KEY_UNKNOWN
  • [Win32的]Bugfix:某些已发送消息未返回 (#2408)
    glfwWaitEventsTimeout
  • [Win32的]Bugfix: 修复 Windows 上动态库的 pkg-config (#2386, #2420)
  • [Win32的]Bugfix:据报告,XInput 可能会提供无效的 DPad 位掩码 (#2291)
  • [Win32的]Bugfix:快速剪贴板调用可能因剪贴板历史记录而失败
  • [Win32的]Bugfix:通过 RDP 连接时,禁用的光标模式无法正常工作 (#1276,#1279,#2431)
  • [可可]添加了对 (#1619) 的支持
    VK_EXT_metal_surface
  • [可可]添加了在应用程序捆绑包中查找运行时的 Vulkan 加载程序
  • [可可]从更改为 (#1169)
    EGLNativeWindowType
    NSView
    CALayer
  • [可可]更改了 F13 键以报告打印屏幕以实现跨平台一致性 (#1786)
  • [可可]当为 false 时禁用 macOS 全屏
    GLFW_RESIZABLE
  • [可可]删除了对 CoreVideo 框架的依赖
  • [可可]Bugfix:使用了左下角的锚点 (#1553)
    glfwSetWindowSize
  • [可可]Bugfix:窗口在销毁后一直保留在屏幕上,直到事件轮询 (#1412)
  • [可可]Bugfix:在创建窗口之前处理事件会断言 (#1543)
  • [可可]Bugfix:在最近的 macOS 上无法图标化未修饰的窗口
  • [可可]错误修复:非 BMP Unicode 代码点输入被报告为 UTF-16 (#1635)
  • [可可]Bug修复:无法检索内置显示器的刷新率 可能会泄漏内存
  • [可可]Bugfix: Objective-C 文件使用 CMake 3.19 编译为 C 语言 (#1787)
  • [可可]Bugfix:未过滤掉重复的视频模式 (#1830)
  • [可可]Bugfix:菜单栏在macOS 10.15+上无法点击,直到它丢失并 重新获得焦点 (#1648,#1802)
  • [可可]错误修复:监视器名称查询可能会在 macOS 11 上出现段错误 (#1809,#1833)
  • [可可]Bugfix:已安装的 dylib 的安装名称是相对的 (#1504)
  • [可可]Bugfix:MoltenVK 图层内容比例仅在以下时间更新 发出了相关事件
  • [可可]Bugfix:以编程方式移动光标会将其冻结 几分之一秒 (#1962)
  • [可可]错误修复:在 macOS 12.0 中已弃用 (#1980)
    kIOMasterPortDefault
  • [可可]错误修复:在 macOS 12.0 中已弃用 (#2003)
    kUTTypeURL
  • [可可]错误修复:连接的 Apple AirPlay 会发出无用的错误 (#1791)
  • [可可]错误修复:终止时未卸载 EGL 和 OSMesa 库
  • [可可]错误修复:当为假时总是为 true
    GLFW_MAXIMIZED
    GLFW_RESIZABLE
  • [可可]Bugfix:在macOS全屏中更改会中止 应用程序 (#1886)
    GLFW_DECORATED
  • [可可]Bugfix:从 macOS 全屏设置显示器会中止 应用程序 (#2110)
  • [可可]Bugfix:Vulkan 加载程序未从捆绑包中加载 子目录 (#2113,#2120)
    Frameworks
  • [可可]Bugfix:由于无条件使用 10.9+,OS X 10.8 上的编译失败 符号 (#2161)
  • [可可]Bugfix:据报道,在macOS上查询操纵杆元素可能会出现段错误 13 文图拉 (#2320)
  • [X11]Bugfix: CMake 文件未检查 XInput 标头 (#1480)
  • [X11]Bugfix:键盘布局更改时,键名未更新 (#1462,#1528)
  • [X11]Bugfix:创建窗口后无法启用装饰 (#1566)
  • [X11]Bugfix:内容缩放回退值可能不一致 (#1578)
  • [X11]错误修复:对隐藏的窗口没有影响
    glfwMaximizeWindow
  • [X11]Bugfix:清除隐藏窗口导致读取无效
    GLFW_FLOATING
  • [X11]Bugfix:在隐藏窗口上进行更改可能会以静默方式失败
    GLFW_FLOATING
  • [X11]Bug修复:禁用的光标模式被指示器窗口打断
  • [X11]Bugfix:显示器物理尺寸可能报告为零毫米
  • [X11]Bugfix:调整大小期间未发出窗口位置事件 (#1613)
  • [X11]错误修复:可能会在较旧的 WM 上终止或没有 WM
    glfwFocusWindow
  • [X11]Bugfix:查询断开连接的监视器可能会出现段错误 (#1602)
  • [X11]错误修复:CJK 的 IME 输入因“C”区域设置而损坏 (#1587,#1636)
  • [X11]Bugfix: Xlib 错误可能是由应用程序的其他部分引起的 报告为 GLFW 错误
  • [X11]Bugfix:句柄争用条件可能导致错误 (#1633)
    BadWindow
  • [X11]Bugfix:XKB 路径使用键符号而不是物理位置 不可打印的密钥 (#1598)
  • [X11]Bugfix:功能键已映射到某些布局 组合 (#1598)
    GLFW_KEY_UNKNOWN
  • [X11]Bugfix:与其他键同时按下的键并不总是如此 已报告 (#1112,#1415,#1472,#1616)
  • [X11]Bugfix:离开全屏时未应用某些窗口属性 (#1863)
  • [X11]Bugfix:更改可能会泄漏内存
    GLFW_FLOATING
  • [X11]Bug修复:图标像素格式转换只是偶然起作用,依赖于 未定义的行为 (#1986)
  • [X11]Bugfix: OpenBSD 上的动态加载由于 soname 差异而失败
  • [X11]Bugfix:如果文件描述符太大,等待事件会失败 (#2024)
  • [X11]Bugfix:操纵杆事件可能导致等待繁忙 (#1872)
  • [X11]Bugfix:操纵杆事件没有继续
    glfwWaitEvents*
  • [X11]Bugfix:由于竞争条件,可能会被忽略 (#379,#1281,#1285,#2033)
    glfwPostEmptyEvent
  • [X11]Bugfix: 由于 soname 差异,NetBSD 上的动态加载失败
  • [X11]Bugfix: int 常量的左移依赖于未定义的行为 (#1951)
  • [X11]Bugfix:终止时未卸载 OSMesa libray
  • [X11]Bug修复:选择传输过程中的响应格式错误可能导致段错误
  • [X11]Bugfix: 某些调用会将 Xlib 重置为默认错误处理程序 (#2108)
  • [韦兰]通过 libdecor 添加了改进的回退窗口装饰 (#1639,#1693)
  • [韦兰]通过 xkbcommon 添加了对密钥名称的支持
  • [韦兰]添加了对文件路径删除事件的支持 (#2040)
  • [韦兰]添加了对更多人类可读监视器名称(如果可用)的支持
  • [韦兰]在缺少的系统上禁用了不透明窗口的 alpha 通道 (#1895)
    EGL_EXT_present_opaque
  • [韦兰]删除了对 (#1443) 的支持
    wl_shell
  • [韦兰]Bugfix: The shape use wrong image (#1432)
    GLFW_HAND_CURSOR
  • [韦兰]Bugfix: 重复的键可能会被窗口报告 (#1704)
    NULL
  • [韦兰]Bugfix:检索部分帧缓冲区大小会出错
  • [韦兰]修正:与其他平台相比,滚动偏移量是反转的 (#1463)
  • [韦兰]Bugfix:客户端装饰以错误的顺序销毁 (#1798)
  • [韦兰]错误修复:监视器物理大小可能报告零 (#1784,#1792)
  • [韦兰]Bugfix: Some keys are not repeat in Wayland (#1908)
  • [韦兰]Bugfix:非箭头光标偏离热点 (#1706,#1899)
  • [韦兰]修正: FreeBSD 上没有定义该标志
    O_CLOEXEC
  • [韦兰]Bugfix:密钥重复可能导致争用条件 (#1710)
  • [韦兰]Bug修复:激活窗口会发出两个输入焦点事件
  • [韦兰]Bugfix:当窗口失去输入焦点时禁用按键重复机制
  • [韦兰]错误修复:窗口隐藏和显示不起作用 (#1492,#1731)
  • [韦兰]Bug修复:当窗口失去焦点时,重复的键未释放
  • [韦兰]Bugfix:显示隐藏的窗口未发出窗口刷新事件
  • [韦兰]Bugfix:全屏窗口创建未忽略
    GLFW_VISIBLE
  • [韦兰]Bugfix:某些密钥被报告为错误的密钥或
    GLFW_KEY_UNKNOWN
  • [韦兰]Bugfix:文本输入未与按键重复一起重复
  • [韦兰]Bugfix:有时没有效果 (#1520,#1521)
    glfwPostEmptyEvent
  • [韦兰]Bugfix:如果设置为
    glfwSetClipboardString
    glfwGetClipboardString
  • [韦兰]Bugfix:数据源创建错误会导致终止时双重释放
  • [韦兰]Bug修复:剪贴板字符串的部分写入会导致开始重复
  • [韦兰]Bug修复:某些错误会导致剪贴板字符串传输挂起
  • [韦兰]错误修复:拖放数据被误读为剪贴板字符串
  • [韦兰]Bugfix:未对剪贴板字符串执行 MIME 类型匹配
  • [韦兰]Bugfix:终止时未卸载 OSMesa 库
  • [韦兰]Bugfix:可能会发出
    glfwCreateWindow
    GLFW_FEATURE_UNAVAILABLE
  • [韦兰]Bug修复:仅在按下锁定键时设置锁定键修饰符位
  • [韦兰]Bugfix:离开全屏模式的窗口将被图标化 (#1995)
  • [韦兰]Bugfix:离开全屏模式的窗口忽略了其所需大小
  • [韦兰]Bugfix:未更新窗口模式大小
    glfwSetWindowMonitor
  • [韦兰]Bugfix:会使全屏窗口窗口窗口化
    glfwRestoreWindow
  • [韦兰]Bugfix:用户最大化或恢复的窗口将输入 不一致的状态
  • [韦兰]Bugfix:未发出窗口最大化事件
  • [韦兰]错误修复:假设它始终处于窗口模式
    glfwRestoreWindow
  • [韦兰]错误修复:会调整全屏窗口的大小
    glfwSetWindowSize
  • [韦兰]Bugfix:每次都会发出窗口内容缩放事件 窗口大小调整
  • [韦兰]错误修复:如果失败,它将关闭 stdin
    glfwInit
  • [韦兰]Bugfix:使用后备装饰的手动调整大小行为异常 (#1991,#2115,#2127)
  • [韦兰]Bugfix:尺寸限制包括后备装饰的框架大小
  • [韦兰]Bugfix:更新对服务器端没有影响 装饰品
    GLFW_DECORATED
  • [韦兰]Bugfix:如果监视器的规模扩大,则监视器将再次报告为已连接 改变
  • [韦兰]Bugfix:如果任何监视器已更改,则会出现段错误 规模
    glfwTerminate
  • [韦兰]Bugfix:监视时未发出窗口内容缩放事件 规模已更改
  • [韦兰]Bug修复:报错而不是 应用指定的比率
    glfwSetWindowAspectRatio
  • [韦兰]Bug修复:窗口提示无效
    GLFW_MAXIMIZED
  • [韦兰]修正:首次显示前没有效果
    glfwRestoreWindow
  • [韦兰]Bugfix:隐藏然后显示导致程序中止的窗口 wlroots 合成器 (#1268)
  • [韦兰]Bugfix:显示带有 XDG 的窗口时被忽略 装饰品
    GLFW_DECORATED
  • [韦兰]Bugfix:连接鼠标后会出现段错误 (#1450)
    glfwInit
  • [韦兰]Bugfix:未检测到连接后的操纵杆 (#2198)
    glfwInit
  • [韦兰]Bugfix:回退修饰发出错误
    GLFW_CURSOR_UNAVAILABLE
  • [Linux操作系统]Bugfix:没有按钮的操纵杆被忽略 (#2042,#2043)
  • [Linux操作系统]Bugfix:初始化失败时可能会泄漏少量内存 (#2229)
  • [国家政府关系]错误修复:对较新的没有影响 macOS 版本 (#1442)
    GLFW_COCOA_RETINA_FRAMEBUFFER
  • [国家政府关系]错误修复:10.14 上的交换间隔的解决方法在 10.12 中断 (#1483)
  • [国家政府关系]Bugfix: 定义外部原因 重复定义警告 (#1840)
    GL_SILENCE_DEPRECATION
  • [EGL]添加了可用于 OpenGL 的 glvnd 加载
    libOpenGL.so.0
  • [EGL]Bugfix: context 属性被忽略 (#1843)
    GLFW_DOUBLEBUFFER
  • [EGL]Bugfix:设置导致创建失败 (#2348)
    GLFW_CONTEXT_DEBUG
  • [GLX]在可用的情况下添加了 glvnd 的加载
    libGLX.so.0
  • [GLX]错误修复:如果 GLX 库未导出 GLX 1.4,则上下文创建失败

联系

glfw.org 上,你可以找到最新版本的 GLFW,因为 以及有关该项目的新闻、文档和其他信息。

如果你对GLFW的使用有疑问,我们有一个论坛

如果你有 bug 要报告、要提交补丁或想要的功能 请求,请将其提交到 GitHub 上的问题跟踪器中。

最后,如果你有兴趣帮助开发 GLFW 或 将其移植到你喜欢的平台,请加入我们的论坛或 GitHub。