Skip to content

Releases: moderngl/moderngl-window

2.4.2

17 Sep 18:01
Compare
Choose a tag to compare
  • Allow toggling vsync at runtime for most windows
  • Allow rendering with imgui in headless mode
  • Fixed a crash when using fullscreen mode with glfw
  • Support moving OrbitCamera
  • Added SSAO example
  • Added on_generic_event callback for pygame user events
  • Fixed zoom sensitivity getter returning the wrong value
  • Fixed several typos
  • Bumped several dependencies to reasonable versions

Thanks to @Rafale25, @n3onUser, @erikstrand (Erik Strand), @sheepman4267 and @dbs4261 (Daniel Simon) for contributions to this release.

2.4.1

23 Dec 20:16
Compare
Choose a tag to compare

2.4.1

  • Experimental support for ffmpeg capture
  • Event callbacks can now be assigned in WindowConfig.init
  • Initial support for confirming window close (glfw)
  • Fixed a crash when closing a pyglet window
  • Remove some spammy prints in the text writer

Thanks to @DavideRuzza, @wk39 and @joehalliwell for their
contributions to this release.

2.4.0

26 Jun 14:36
9d9c8ee
Compare
Choose a tag to compare

2.4.0

Python 3.5 is no longer supported from this version.

New Features

  • Experimental: New simple 2D text writer
  • Various smaller improvements
  • F11 now toggles fullscreen mode by default
  • Window modules are now fetched from moderngl_window.WINDOW_CLASSES as a fallback. This is necessary in some enviroments.
  • Absolute paths will now bypass all registered resource directories and load the specified file directly.

Bug Fixes

  • Varying names can now be passed in when loading a program. Since the auto detection of out attributes is far from perfect this can be needed for more complex shaders.
  • Missing python 3.9 classifier in setup.py
  • SDL2 window should now also process since change events
  • GLFW: Fixed some incorrect key mappings
  • Fixed an issue with timers causing the first frame to have negative frame time
  • Fixed a pixel scale issue in the imgui integration. This was especially an issue with tiling window managers

2.3.0

24 Oct 12:34
Compare
Choose a tag to compare

New Features

  • Added a simple Scheduler (Thanks to @Leterax)
  • Added support for toggling fullscreen
  • Added support for setting window icon
  • TextureDescription now supports flipping the texture on x and y
  • The pyglet window now supports dragging in files
  • Added BaseWindow.convert_window_coordinates for converting mouse coordinates
  • Added more examples

Bug Fixes

  • BaseWindow now references WindowConfig using a weakref
  • Overriding the timer in run_window_config had no effect
  • Numpad keys was not mapped correctly in some instances
  • Timers should return 0 when not started
  • glfw window close callback did now work
  • glfw now respects content scaling on windows and X11
  • Added some missing methods in docs
  • Fixed various doc typos

2.2.3

24 Jul 14:59
Compare
Choose a tag to compare

2.2.3

  • imgui integration no longer relies on pyopengl
  • Bug: Properly parse out attributes with layout qualifiers
  • Bug: Do not cache system shaders at module level. We now cache them in the context to better support multiple windows.
  • Bug: OrbitCameraWindow - Fixed radians/degree issue
  • Bug: A window can now be closed from inside render()

2.2.2

24 Jun 03:38
Compare
Choose a tag to compare
  • Fixed several issues causing the window close callback not being called
  • imgui: Fixed incorrect mouse button mapping in mouse drag events

2.2.1

14 Jun 21:56
Compare
Choose a tag to compare
  • imgui renderer now supports moderngl textures. This opens up for both
    displaying images and animated framebuffer textures into imgui.
  • Scene: Fixed several issues related to shader assigning based on material properties.
    This especially affected wavefront/obj files.
  • OrbitCamera: Fixed translation issue (@Leterax)
  • OrbitCamera: Now using degrees instead of radians (@Leterax)
  • Bumped pyglet version to minimum 1.5.6. This version
    solves several issue with window events for MacBooks with Touch Bar

2.2.0

07 Jun 19:06
Compare
Choose a tag to compare
  • WindowConfig now supports overriding the default arugment parser.
    A classmethod add_arguments can be implemented to add additional
    arguments. The parsed arguments are available in self.argv
  • Added in Scene.draw_wireframe rendering a scene in wire frame mode
  • Scene.draw_bbox now support passing in a color
  • Scene should now have better support for all the vertex formats
    wavefront/obj files may have.
  • Added WindowConfig.clear_color attribute so uses can control the
    clear color of the screen. The value can be set to None to
    disable screen clearing (@Leterax)
  • Added OrbitCamera (@Leterax)
  • Allow setting camera rotation (@Leterax)
  • VAO should now give better feedback if the buffers and program
    attributes are not compatible
  • ModernGLRenderer (imgui renderer) should not rely on moderngl-window (@minuJeong)
  • Scene should now cache default shaders internally so they are not loaded
    for every scene
  • Several typos in docs (@dawid-januszkiewicz)
  • WindowConfig.load_compute_shader missing in docs
  • Bumped pygame to 2.0.0.dev10

Thanks to @Leterax, @minuJeong and @dawid-januszkiewicz for the contributions to this release
and @mtbouchard for input on WindowConfig and Scene changes.

2.1.1

19 Apr 18:31
Compare
Choose a tag to compare

Improvements:

  • Optimized the imgui renderer using ctypes instead of numpy for handling vertex data (@aforren1)
  • Added support for ALT key modifier in all window backends and other improvements to key handling (@OKaluza)
  • WindowConfig now supports a fullscreen attribute

Thanks to Alex Forrence (@aforren1) and Owen Kaluza (@OKaluza) for the contributions to this release.

2.1.0

30 Mar 14:48
Compare
Choose a tag to compare

New Features

  • moderngl and moderngl-window integration for imgui thought the pyimgui project.
    This is fairly experimental and the rendered should probably be moved to the pyimgui project soon

Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies)

  • Compute shader support. WindowConfig.load_compute_shader and added compute_shader parameter for ProgramDescription.
  • Shaders now support #include up to a maximum of 100 levels
  • Added support for gif anim. This can be loaded as a Texture or TextureArray
  • Added support for loading cube maps
  • WindowConfig.run() shortcut
  • Each window backend now has a name property so the user can easily detect what window type they are given
  • WindowConfig now as a vsync property so the user can easily control this from python code
  • Scene: New methods to find materials and node by name

Slightly Breaking Changes

  • All windows now use 0 samples (MSAA) by default. The default samples = 4 caused way too much issues
    for people with older integrated gpus and when doing headless rendering when multisampling is not supported.

Bug fixes

  • Fixed several issues with glft2 scenes and object orientation
  • pyglet window: Fixed incorrect mouse position on retina screens and windows
    with pixel ratio > 1.
  • sdl2: mouse press/release events was reversed
  • pygame2: Fix broken mouse wheel reading
  • glfw: Incorrect mapping of BACKSPACE key
  • glfw: Fixed an issue not setting vsync properly¨
  • headless: We now call ctx.finish() in swap_buffers
  • Shader errors should now report the error line more accurately
  • Various typo fixes