Skip to content

Latest commit

 

History

History
136 lines (101 loc) · 5.1 KB

CHANGELOG.md

File metadata and controls

136 lines (101 loc) · 5.1 KB

Changelog

2.1.0 (Unreleased)

New Features

  • moderngl and moderngl-window integration for imgui thought the pyimgui project.

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).

  • We now use an experimental fork of Pyrr, pyrr-optimized for faster matrix calculations : https://github.com/einarf/pyrr-optimized
  • Support for loading texture cubes
  • Compute shader support.
  • Support for passing defines to shaders
  • Shader errors should now report the error line more accurately

Bug fixes

  • pyglet window: Fixed incorrect mouse position on retina screens and windows with pixel ratio > 1.
  • Shader loader did not properly ignore lines with comments
  • Various typo fixes

2.0.3

  • 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

2.0.2

  • Bug: An INVALID_ENUM glerror triggered after querying context info is now consumed.

2.0.1

Bugfixes

  • SDL2 window now allows highdpi framebuffers when available
  • pygame2 window should only initialize the display module

2.0.0

Breaking Changes

  • mouse_position_event signature has changed from (x, y) to (x, y, dx, dy). This means you will also be getting the relative position change.
  • mouse_drag_event signature has changed from (x, y) to (x, y, dx, dy). This means you will also be getting the relative position change.
  • KeyboardCamera.rot_state now takes dx and dy instead of x and y

Improvements

  • Python 3.8 support (PySide2 will take a few more months. SDL2 has issues on windows)
  • Added pygame2 window
  • Added window callback iconify for all window types that will be called when a window is minimized or restored
  • Window property mouse_exclusivity added for all window types. When enabled the mouse cursor is invisible and mouse position changes are only reported through the dx and dy values.
  • Window property size is now assignable for all window types
  • Window property position is now assignable for all window types
  • Window property title is now assignable for all window types
  • Window property cursor is now assignable for all window types
  • The KeyboardCamera class should now be better at reducing the chance of rotation and movement popping
  • All windows now properly separate viewport calculations when using fixed and free viewport (derived from window size)
  • The window aspect_ratio property should always return the a value based on if the aspect ratio is fixed or free
  • Added window fixed_aspect_ratio property so users can freely control this after window creation

1.5.2

  • Added window property position for getting and setting window position for all window types
  • Added window properties: viewport_size, viewport_width, viewport_height
  • Upgraded dependency for tkinter window. pyopengltk>=0.0.3
  • Loosened up most of the requirements
  • Bug: Missing call to tk.destroy() in tk window

1.5.1

  • Upgraded dependency for tkinter window. pyopengltk==0.0.2.

1.5.0

  • Added experimental support for tkinter window. Relies on Jon Wright's pyopengltk package: https://github.com/jonwright/pyopengltk. Currently only supports windows and linux, but that might change in the future.
  • KeyboardCamera: Exposed mouse_sensitivity, velocity and projection attributes
  • Various missing docstring and docstring improvements
  • Various missing type hints

1.4.0

  • Added support for mouse_drag events for all window types
  • Added support for unicode_char_entered (text input) for all windows
  • Added support for mouse wheel events for all window types

1.3.0

  • Fixed several issue related to python 3.5 support
  • Upgraded to pywavefront 1.2.x
  • Renamed some modules and classes to better reflect their capabiltities
  • Renamed some inconsistent parameter names in the codebase
  • Complete overhaul of docstrings in the entire codebase
  • Added missing type hints
  • Revived the STL loader
  • Documentation
  • Added moderngl_window.__version__ attribute

1.2.0

  • GL errors during window creation is now consumed. This is to avoid confusion when this state is set in the rendering loop.
  • Default anisotropy for textures loaders is now 1.0 (disabled, isotropy)
  • Mipmaps are no longer generated by default. You must explicitly enable this in parameters.
  • WindowConfig.load_texture_2d now exposes more parameters
  • WindowConfig.load_texture_array now exposes more parameters
  • WindowConfig.load_scene now exposes more parameters
  • Texture loaders supports specifying mipmap levels
  • Texture loaders supports specifying anisotropy
  • VAO wrapper supports normalized float/uint/int
  • More tests

1.1.0

  • Supported buffer formats in the VAO wrapper now matches moderngl better
  • VAO wrapper now uses buffer format strings matching moderngl including divisors
  • Fixed some logging issues

1.0.0

Initial release