All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Removed srgb image formats
- Improved typehints and documentation
- Fixed canvas detection in a web environment
- Fixed
zengl.bind
typehints
- Fixed
zengl.context
broken signature in the web build - Fixed limits minimum and maximum values
- Added complete
Context.info
support in the web build - Added pyscript and pygbag support alongside the pyodide support
- Fixed custom glsl linker error callback
- Added missing
Image.format
typehints - Added proper error message for a missing window in the default loader
- Removed
Buffer.map
andBuffer.unmap
- Implemented
Buffer.read
andBuffer.view
- Implemented
into
parameter forImage.read
andBuffer.read
- Added support for Buffer sourced data
- Removed
dynamic
flag fromContext.buffer
- Added
access
flag toContext.buffer
- Removed
Context.limits
- Added limits to
Context.info
- Changed framebuffer handling to only use the draw or read framebuffer binding
- Removed default framebuffer detection
- Fixed
zengl.max_combined_uniform_blocks
maximum value - Fixed catching empty include statements
- Added subinterpreter support
- Removed global reference for the default loader
- Changed
MAX_ATTACHMENTS
to 8 - Changed
MAX_BUFFER_BINDINGS
to 8 - Changed
MAX_SAMPLER_BINDINGS
to 16
- Removed the loader parameter from
zengl.context
- Implemented
zengl.init
with a loader parameter - Changed
zengl.context
to return the first created context - Fixed
Context.new_frame
type hints and documentation - Fixed rendering to the default framebuffer without depth and stencil test
- Implemented a default loader for the web using the canvas by id
- Improved the documentation
- Added
index
, anduniform
parameters forContext.buffer
- Fixed clear in
Context.new_frame
for a nonzero default framebuffer - Removed deprecated
load
method support from the loader
- Added nativ web support without third party webgl binding
- Added
zengl.setup_gl
for the web build - Fixed the default loader for osx
- Improved web support
- Added Python 3.12 release builds
- Added support for customized builds
- Implemented external pipeline render parameters
- Implemented external viewport data
- Implemented external uniform data
- Implemented uniform binding jump table
- Changed
Pipeline.uniforms
to be always present
- Added web support
- Fixed no detectable viewport size when rendering to the default framebuffer
- Fixed init time mipmap level allocation width and height
- Changed
Image.blit()
to supportImageFace
objects - Changed
ImageFace.blit()
to supportImage
objects - Implemented
Image.read()
andImageFace.read()
for cubemap and array images - Implemented
Image.read()
andImageFace.read()
for multisampled images - Implemented init time mipmap level allocation
- Removed the arguments of the
Image.mipmaps
method - Added support for unbound vertex attributes
- Implemented the
Context.new_frame()
andContext.end_frame()
methods - Removed the flush parameter from
Image.blit
method - Changed the
Context.pipeline()
blending parameter to blend - Removed the skip_validation, primitive_restart, color_mask parameters from the
Context.pipeline()
method - Primitive restart default index is enabled by default
- Changed the
Context.info
tuple to a dictionary - Removed
glcontext
dependency for windowed rendering - Implemented
zengl.__version__
string
- Fixed zengl camera utility with broken translation in ortho mode
- Implemented default texture filter for improved external texture support
- Implemented external buffers and textures
- Changed
zengl.context()
to prefer theload_opengl_function()
over theload()
method - Deprecated
ContextLoader.load()
in favor ofContextLoader.load_opengl_function()
- Fixed vertex array caching
- Fixed read buffer for depth only framebuffers
- Fixed empty vertex and fragment shader cache collision
- Fixed use after free in
Context.release()
- Moved zengl.pyi to zengl-stubs
- Fixed missing type hinting
- Implemented blending equations
- Fixed uniform struct array naming
- Implemented Pipeline uniforms
- Implemented rendering to cubemap faces and array layers
- Removed
zengl.pack()
- Removed
zengl.rgba()
- Fixed unbound vertex shader builtin variables error reporting
- Fixed silent error for invalid topology
- Fixed redundant framebuffer bind when blitting images
- Replaced string formatting to f-strings in the
_zengl
helper module
- Fixed uniform buffer array members received a valid location parameter
- Deprecated
zengl.pack()
- Deprecated
zengl.rgba()
- Fixed attribute array and uniform array location
- Fixed broken linker error formatting
- Added glcontext as a dependency
- Fixed setting depth function
- Fixed pipeline required arguments to raise an excenption
- Fixed buffer write size check with non zero offset
- Implemented error for renderbuffer images with initial data
- Implemented error for negative image array count
- Implemented range check for writing to already generated mipmap leves
- Implemented
Context.release('all')
- Fixed cubemap images failed to create without initial data
- Fixed fault when clearing or blitting layered images
- Fixed reading depth and stencil images
- Fixed refcount for types when deinitializing the module
- Fixed
Image.blit
srgb parameter defaulted to the flush parameter - Removed deprecated
clear_shader_cache
- Implemented
Context.reset
to assume the context is dirty - Fixed integer textures used the wrong base format
- Removed invalid texture format type hints
- Fixed broken bound object cache after releasing objects
- Improved invalid size error message for images
- Implemented write to image layer
- Fixed image write for all levels
- Fixed image create and image write stride for small cubemaps
- Implemented size check for image create and image write
- Implemented
Context.release('shader_cache')
- Deprecated
clear_shader_cache
- Fixed reading single sample renderbuffers
- Support texture max anisotropy
- Removed deprecated
line_width
andfront_face
- Implemented flush parameter for blitting
- Improved default for srgb parameter for blitting
- Fixed error checking for image blitting
- Fixed dependency list for examples
- Support binding uniform and attribute arrays
- Optimized binding global settings
- Deprecated
line_width
andfront_face
- Support pipeline creation without validation
- Improved package info
- Fixed wrong stride used while initializing cubemap images
- Implemented size check for creating images
- Optimized binding the same global settings
- Optimized binding the same viewport
- Optimized cache for write masks for clear operations
- Fixed missing default depth function for explicit depth settings
- Fixed stencil test was on when no stencil buffer was present
- Improve interoperability for porting existing code
- Implemented
Context.screen
as the default framebuffer - Implemented
zengl.inspect
for debugging
- Support list of ints where tuple of ints are expected
- Fixed broken
Pipeline.vertex_count
,Pipeline.instance_count
andPipeline.first_vertex
- Support x86 architecture
- Support raspberry pi
- Validate image format
- Removed
max_varying_components
limit - Fixed blank screen for osx when double buffering is enabled
- Disabled shadow window configuration for osx
- Simplified examples main loop
- Implemented soft limit for max number of samples
- Implemented
Context.limits
- Implemented uniform buffer size validation
- Blit to screen flushes the command buffer
- Fixed compile issues on multiple platforms
- Build wheels with cibuildwheel
First stable version