Releases: moderngl/moderngl-window
Releases · moderngl/moderngl-window
2.3.0
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
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
2.2.1
- 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
WindowConfig
now supports overriding the default arugment parser.
A classmethodadd_arguments
can be implemented to add additional
arguments. The parsed arguments are available inself.argv
- Added in
Scene.draw_wireframe
rendering a scene in wire frame mode Scene.draw_bbox
now support passing in acolor
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 toNone
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 compatibleModernGLRenderer
(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
Improvements:
- Optimized the imgui renderer using
ctypes
instead ofnumpy
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 afullscreen
attribute
Thanks to Alex Forrence (@aforren1) and Owen Kaluza (@OKaluza) for the contributions to this release.
2.1.0
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 addedcompute_shader
parameter forProgramDescription
. - Shaders now support
#include
up to a maximum of 100 levels - Added support for gif anim. This can be loaded as a
Texture
orTextureArray
- 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 avsync
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()
inswap_buffers
- Shader errors should now report the error line more accurately
- Various typo fixes
2.0.5
Improvements
- Windows now has an
exit_key
property that can be used to change or disable the exit key. This key isESCAPE
by default and can be disabled by setting the property toNone
. 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