2024

icon emscripten-glfw
2024-05-01

I released emscripten-glfw 3.4.0.20240501 with the following release notes:

  • Fixed issue when calling glfwGetWindowContentScale with nullptr
  • Renamed javascript api/impl since these names are not unique to avoid potential conflicts
  • Added glfw3native.h to GLFW. Although not used (at this moment) by this implementation, this allows calling code to include it if necessary since it is part of a normal GLFW installation.
icon emscripten-glfw
2024-03-18

I released emscripten-glfw 3.4.0.20240318 with the following release notes:

  • Fixed joystick/gamepad code that was improperly mapping GLFW_GAMEPAD_AXIS_LEFT_TRIGGER GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, GLFW_GAMEPAD_BUTTON_LEFT_THUMB and GLFW_GAMEPAD_BUTTON_RIGHT_THUMB
  • GLFW_GAMEPAD_AXIS_LEFT_TRIGGER and GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER are now properly represented as an analog value in the range [-1.0, +1.0]
  • Please note the change in version numbering which from now on will be tied to the GLFW version implemented + date of release of this port to avoid confusion
icon emscripten-glfw
2024-02-29

I released emscripten-glfw 1.1.0 which implements GLFW 3.4 APIs:

  • Upgraded to GLFW 3.4
  • GLFW 3.4 features implemented
    • glfwGetPlatform and glfwPlatformSupported uses the GLFW_PLATFORM_EMSCRIPTEN constant defined in emscripten-glfw3.h (officially reserved value is 0x00060006)
    • glfwInitHint supports the new hint GLFW_PLATFORM
    • Supports all 10 cursors
    • Implemented glfwGetWindowTitle
    • Use GLFW_SCALE_FRAMEBUFFER to enable (resp. disable) Hi DPI support
    • Changed the functions that can report GLFW_FEATURE_UNAVAILABLE failure to report this error instead of a warning
  • GLFW 3.4 features not implemented
    • GLFW_MOUSE_PASSTHROUGH is not supported
    • GLFW_CURSOR_CAPTURED cursor input mode is not supported (not possible in a browser context)
    • glfwInitAllocator is implemented as noop (could be supported for the C++ part only if there is demand, not javascript)
    • GLFW_POSITION_X and GLFW_POSITION_Y are not supported (same as glfwSetWindowPos)
    • GLFW_ANGLE_PLATFORM_TYPE is not supported (no direct access in browser, but implementation is most likely using it anyway)
  • Since GLFW 3.4 introduces a proper constant to handle Hi DPI Awareness (GLFW_SCALE_FRAMEBUFFER), the prior constant used by this port (GLFW_SCALE_TO_MONITOR) is still accepted, but it is now deprecated. In addition, due to the fact that GLFW_SCALE_FRAMEBUFFER defaults to GLFW_TRUE, this port is now Hi DPI aware by default and needs to be explicitly turned off (glfwWindowHint(GLFW_SCALE_FRAMEBUFFER, GLFW_FALSE)) if this is the desired behavior.

Note: These changes are available in emscripten 3.1.56 (released on 2024/03/14) via the contrib port contrib.glfw3

icon emscripten-glfw
2024-02-19

I released emscripten-glfw 1.0.5 with a critical bug fix:

  • Fixed memory corruption with joystick

Note: These changes are available in emscripten 3.1.55 (released on 2024/03/01) via the contrib port contrib.glfw3

icon emscripten-glfw
2024-01-22

I am very happy to announce the 1.0 release of my new free and open source project emscripten-glfw which is a port of glfw written in C++ for the web/webassembly platform.

Check out the live demo. Screenshot