Skip to content

Releases: moderngl/moderngl-window

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

2.0.5

03 Jan 21:51
Compare
Choose a tag to compare

Improvements

  • Windows now has an exit_key property that can be used to change or disable the exit key. This key is ESCAPE by default and can be disabled by setting the property to None. This is useful for users that don't want the default exit key behavior.
  • Log consumed glerrors after context creation as warnings

Bug fixes

  • Pyglet mouse coordinates was translated wrong in cases were the framebuffer size is larger that then window. The mouse position
    should always use window coordinates.
  • VAOs should now properly support 64 bit floats / dvec
  • VAOs should be better at detecting/ignoring built in attributes
  • Camera.look_at had broken input validation when passing in a vector
  • Various typos in docstrings

2.0.4

23 Nov 01:22
Compare
Choose a tag to compare
  • Resolved an issue with version constraints causing some dependencies to install pre-release versions

2.0.3

19 Nov 16:35
Compare
Choose a tag to compare
  • Missing WindowConfig.close method and support for close callback for all window types
  • Bug: KeyboardCamera's matrix is now always returned as a 32bit floats
  • Bug: Projection3D's matrix is now always returned as a 32bit floats
  • Example cleanup and improvements