Releases: moderngl/moderngl
Releases · moderngl/moderngl
5.10.0
- 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
- Removing Python 3.7 support, adding Python 3.12 support
- Fixing memory leaks
- Transferring constants from
moderngl
tomoderngl.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
bump to version 5.8.2
5.8.1
- fix wrong GLint64 typecast on FreeBSD
5.8.0
Merge pull request #566 from moderngl/spirv-support Support Spir-V Shader Binary
5.7.4
bump to version 5.7.4
5.7.3
bump to version 5.7.3
5.7.2
- Fixed a critical issue causing
Renderbuffer.release()
to crash due to missingInvalidObject
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
5.7.0
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 inContext.objects
.
These can periodically be released usingContext.gc()
."auto"
: Dead objects are destroyed automatically like we would expect in python.
- Added support for
glPolygonOffset
. The factors and units can be set usingContext.polygon_offset
- Added support for normalized signed and unsigned integer textures.
ni1
,nu1
,ni2
andnu2
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 amode
argument inContext.vertex_array
. This is now the default rendering mode when no mode parameter is passed inrender()
ortransform()
- Added support for 1D sampler in
Uniform
- Added direct access to
glEnable
/glDisable
inContext.enable_direct
/Context.disable_direct
. This can be used to enabled capabilities not supported by ModernGL. Framebuffer.read()
now has aclamp
(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
toContext.info
- Docstring improvements
- Documentation improvements