Skip to content

Releases: moderngl/moderngl

5.10.0

22 Jan 17:47
Compare
Choose a tag to compare
  • Adding pre-built wheels for MacOS ARM
  • Adding size verify when writing to Uniforms
  • Adding a new methods: get_context() and init_context() (documentation is not ready yet)
  • Complementing old and adding new items to "The Guide"
  • Redesign of "The Guide" in the documentation
  • Adding shadow mapping example (see examples/*)
  • Improving code reliability (robustness)

5.9.0

19 Jan 17:21
Compare
Choose a tag to compare
  • Removing Python 3.7 support, adding Python 3.12 support
  • Fixing memory leaks
  • Transferring constants from moderngl to moderngl.Context (safely)
  • Dividing documentation into annotations (moderngl-stubs/__init__.pyi) and full documentation (docs/*)
  • Implemented new property: Context.depth_clamp_range
  • Adding shader includes
  • Adding an example of creating a separate window object
  • Adding access to input attributes in SPIR-V programs (via SPIR-V parsing) (example: vao = ctx.vertex_array(spv_program, buffer, 0, 1) (if your SPIR-V compiler did not erase attribute names, they can also be used))
  • Adding access to program attributes by their location numbers (example: vao = ctx.vertex_array(program, buffer, 0, 1))
  • Adding descriptions for Context.memory_barrier() and Context.depth_clamp_range in the documentation
  • Fixed inaccuracies in documentation
  • Implemented depth cube maps: Context.depth_texture_cube()
  • Update build documentation command (sphinx) (see in README.md)
  • Minor changes to README.md

5.8.2

26 Mar 16:28
Compare
Choose a tag to compare
bump to version 5.8.2

5.8.1

27 Feb 07:56
Compare
Choose a tag to compare
  • fix wrong GLint64 typecast on FreeBSD

5.8.0

25 Feb 19:19
545a6db
Compare
Choose a tag to compare
Merge pull request #566 from moderngl/spirv-support

Support Spir-V Shader Binary

5.7.4

11 Dec 07:32
Compare
Choose a tag to compare
bump to version 5.7.4

5.7.3

28 Nov 09:03
Compare
Choose a tag to compare
bump to version 5.7.3

5.7.2

07 Nov 06:21
Compare
Choose a tag to compare
  • Fixed a critical issue causing Renderbuffer.release() to crash due to missing InvalidObject import.
  • Added a more sane error message when a scope is missing a framebuffer

Additional unit tests and code inspection were added to avoid similar issues in the future.

5.7.1

06 Nov 15:55
67b37c0
Compare
Choose a tag to compare

This version mainly addresses code maintainability and stability.

5.7.0

28 Oct 02:55
ff12176
Compare
Choose a tag to compare

CHANGELOG

  • Python 3.11 support
  • Added support for configurable garbage collection mode. Context.gc_mode controls this.
    • None: (default) No garbage collection is performed. Objects needs to to be
      manually released like in previous versions of moderngl.
    • "context_gc": Dead objects are collected in Context.objects.
      These can periodically be released using Context.gc().
    • "auto": Dead objects are destroyed automatically like we would expect in python.
  • Added support for glPolygonOffset. The factors and units can be set using Context.polygon_offset
  • Added support for normalized signed and unsigned integer textures. ni1, nu1, ni2 and nu2
    are the new dtypes for these.
  • Added Context.external_texture for creating textures from existing OpenGL textures.
  • Added TextureCube.bind_to_image so we can easily access cube textures in compute shaders
  • Added Texture3D.bind_to_image so we can easily access 3D textures in compute shaders
  • Added TextureArray.bind_to_image so we can easily access texture arrays in compute shaders
  • Added support for specifying a custom internalformat for cube maps. This can be used for sRGB and texture compression formats.
  • Integer textures now use NEAREST interpolation by default. This was causing issues with some drivers.
  • Added support for writing to multiple buffers in transforms.
  • Context.program now accepts a dictionary for mapping sampler names to specific texture units.
  • Added Program.is_transform exposing if the program has a fragment shader or not
  • Added VertexArray.mode and a mode argument in Context.vertex_array. This is now the default rendering mode when no mode parameter is passed in render() or transform()
  • Added support for 1D sampler in Uniform
  • Added direct access to glEnable / glDisable in Context.enable_direct / Context.disable_direct. This can be used to enabled capabilities not supported by ModernGL.
  • Framebuffer.read() now has a clamp (bool) parameter. If enabled, floating point data will clamp to [0.0, 1.0]. Clamping is disabled by default.
  • Fixed a bug causing copy_framebuffer to not work with multisampled framebuffers with multiple color attachments.
  • Fixed a bug in copy_framebuffer that caused the draw buffers to be permanently changed.
  • VertexArray: Removed "the first vertex attribute must not be a per instance attribute" limitation
  • Fixed a crash when reading ctx.provoking_vertex
  • Added workaround for MacOS requiring a framebuffer to be bound in headless mode even for transform shaders. We simply create and bind a framebuffer internally.
  • Added GL_MAX_GEOMETRY_OUTPUT_VERTICES to Context.info
  • Docstring improvements
  • Documentation improvements