Releases: tipam/pi3d
v2.54
v2.54 2025-03-07 Improvement: Mouse pointer locations for X11 and SDL2 have been harmonized. Thanks to @lkesteloot
. Keyboard also returns more constant info. This latter might be a breaking change if Keyboard.read_code() used.
Bug fix: Texture._normal_map() previously assigned to item in tuple which is not allowed.
v2.53 2025-02-04 Bug fix: SDL2 uses SDL_WINDOW_BORDERLESS flag if pi3d.DISPLAY_CONFIG_NO_FRAME has been included in Display.create argument display_config. *.png added in project.toml
v2.52 2024-10-13 Bug fix: SDL2 uses FULLSCREEN_DESKTOP flag to allow wlr-randr to blank the screen without killing the process
v2.51 2023-11-01 Improvement: option to use SDL2 for the windowing and event (keyboard, mouse) input this needs pysdl2 to be installed. Display.create(...use_sdl2=True)
v2.50 2023-09-26 Bug fix: Points previously comparing np array with empty list, deprecated now errors found by @Home-Control9000
and @joshstir
v2.49 2021-10-26 Bug fix: FixedString width not using Display.opengl.max_texture_size.value found by @jeffalperin
v2.48 2021-10-01 Bug fix: Slice index for triangles wrong found by @chatcoda
v2.47 2021-08-29 Bug fix: conway vertex shader has -0.5 pixel adjustment over width and height. All shaders use highp precision.
Improvements: mac setup sorted out thanks to @helgeerbe
v2.46 2021-07-03 Bug fix: Resizing Textures when image dimensions were greater than max_size was incorrect (typo and missing functionality)
v2.45 2021-04-30 Improvement: Found that texture widths can be any multiple of four up to GL_MAX_TEXTURE_SIZE
v2.44 2021-03-30 Improvement: FixedString wrapping on pixel widths for accurate fitting on screen
v2.43 2021-03-06 Bug fix: glGetError message cleaned up. Missing dependencies in setup.py
Improvement: PointText wrapping on pixel widths for accurate fitting on screen
Several fixes for PointText and bump shaders with orthographic camera
v2.42 Bug fix: bump shaders work with orthographic cameras, integer division in find devices corrected to //. Alpha value for discarding fragments reduced to 1 part in 255 to avoid 'edges'
v2.412020-12-04 Bug fix: PointText now copes with multi-line strings and can insert new lines at a given width
v2.40 2020-12-02 Bug fix: PointText needs to write over previous characters if the string reduces in length (set uv to [0.0, 0.0])
v2.39 2020-12-01 Bug fix: PointText checks if char in Font rather than crashing as it did previously.
v2.38 2020-08-28 Bug fix: Display.destroy() now doesn't get in a tangle trying to free OpenGL textures, programs, buffers (i.e. it actually completes) Improvement: masked_screenshot() can grab pixels from a rectangle of the screen as a numpy array.
Fix elg import breaking Windows. Slice primative produces sector or circle.
Bug fix: clear Texture.file_string as well as image if free_after_load is set True. Also import of egl that was dragging in xlib functions and stopped pi3d working on windows.
Improvement: Slice primitive in pi3d/shape which is like a slice of a pie-chart. If colours specified with rgb values greater than 1.0 they are treated as u8 0-255 values.
Bug fix broken screen capture
Bug fix: screen capture utility was incorrectly left in the form used for debugging the distance texture mod. Also the general use of logging.info() has been switched to logging.debug()
OffscreenTexture saves distance texture. PolygonLines
Improvement: OffscreenTexture saves distance texture as well as colour which works on RPi4 and bigger computers but old versions have to use Blur_legacy.py technique. Shader.create() checks for existing instances of shaders with same name so saves recompiling on complicated set-ups. PolygonLines creates lines from triangles giving neater ends and corners. Reduced wildcard imports.
Bug fix: display picks up non-default :0 on some ubuntu.
Bug fix to minimise breaking changes in pi3d_demos
Bug fix: move the changes in fragment shaders into the include file in pi3d so minimise breaking shaders in pi3d_demos.
X window transparent background modify shaders to GL num
Improvement: use_glx argument for Display.create() allows X windows to have transparent backgrounds. EGL function call arguments and return types have been made more explicit. The shaders now have a mechanism to convert the code into a form compatible with GL2.1, GLES2.0 and GLES3.0 Display.create() detects the OpenGL/ES type and version and saves this in Display.opengl.gl_id This will probably be the last v2 release. v3 will use SDL2 as the default window system rather than X directly. bcm will still be enabled for Raspberry Pi without X desktop running.
Points and lines fixed on Raspberry Pi 4
Bug fix: points and lines now render on RPi4 along with utilities that relied on this.
Improvement: The setting of the front face of the polygons to be defined as clockwise now makes it clearer that the backs of faces are culled by default. Also the OpenGL function call arguments have been explicitly made using ctypes aliases to avoid confusion.
removed dependency on mesa-utils
removed need for glxinfo and better catching for x11 available but not running
Cope with new GL driver. X11 window name. Billboard function
Bug fix: New version of Raspbian no longer supports broadcom bcm_host GL driver which is now detected and correct drivers loaded.
Improvement: x11 window name facility added. Billboard functionality added to MergeShape