Releases: ubitux/nope.gl
Releases · ubitux/nope.gl
release-dev-test
Changelog
v2023.4
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
This project adheres to a flavour of Calendar Versioning
for the globale releases (YYYY.MINOR
), and to Semantic
Versioning for libnopegl
.
[Unreleased]
[2023.4] [libnopegl 0.10.0] - 2023-09-28
Added
Eval*
nodes now accept multi-dimensional input resourcesluma(r,g,b)
andsrgbmix(a,b,x)
functions in evalGridLayout
node to make a grid out of a number of scenesFilterColorMap
node to remap colors using a gradient of color points- Animated GIF export in the viewer
RenderNoise
node to generate fractal noise on the GPUTexture2D
node now accepts a scene asdata_src
and acts as an implicit
render target (which simplifies the graph when all the features of the
RenderToTexture
node are not needed)RenderToTexture
andTexture2D
nodes can now be automatically resized to
match screen size if their initial dimensions are left to (0, 0)- Ability to drag'n drop Python scripts in the Viewer
Fixed
- Viewer path management on Windows
- Name filters in the export dialog of the viewer
- Viewer export on Windows
Changed
- The installed
nodes.specs
specifications have been extended to include more
information (types, choices, etc) - The documentation has been reworked, notably to include code examples with
associated rendering and graph Transform
node now accepts a node as input parameter and can be animated
this wayscene
,SceneInfo
andSceneCfg
are now part ofpynopegl
instead of
pynopegl-utils
, where they are deprecated
Removed
RenderToTexture.features
as the RTT node is now able to detect
automatically if the underlying graph requires a depth/stencil buffer
[2023.3] [libnopegl 0.9.0] - 2023-09-01
Fixed
- Linux and macOS release jobs
[2023.2] [libnopegl 0.9.0] - 2023-09-01
Added
- Much more detailed typing annotations in
pynopegl
RenderDisplace
node for texture displacement- Visual scopes support through the
ColorStats
,RenderHistogram
and
RenderWaveform
nodes (seescopes
example in the demos) - Multiple modulo functions for the
Eval*
nodes:mod_e
(euclidean),mod_f
(floored) andmod_t
(truncated) - Support for rendering to 3D textures
- Support for 3D textures image load/store
- Support for cube maps image load/store
- Support for array of 2D textures
- External font rendering in the
Text
node - Fixed scaling in the
Text
node - Text effects (color, opacity, transform, glow, outline, blur), applicable per
character/word/lines PathKeyClose
node to close the current sub-pathRenderPath
node to render paths visually- Optional
compat_specs
in the@scene
decorator to add a version requirement
constraint ngl-viewer
tool to select, customize and export scenes with a simple and
intuitive interface
Changed
- CSV export in the HUD now always prints floats in C locale instead of quoted
pynopegl.Context.configure()
now takes aConfig
as argumentpynopegl
log levels are now controled using thepynopegl.Log
enummax_texture_dimensions_*
capabilities are renamed tomax_texture_dimension_*
- Backend probing in
pynopegl
now returns a more Pythonic output GraphicConfig.scissor
is now anivec4
parameter instead ofvec4
TimeRangeMode*
nodes are removed andTimeRangeFilter
is simplified to
handle their role; if multiple ranges are needed simulteanously, aGroup
can
be used.TimeRangeFilter.max_idle_time
is removed since its use was limited
to inter range times (now only a single time segment is handled).- The API now mandates that node scenes have to be wrapped into a dedicated
scene object that holds extra metadata (duration, aspect ratio and framerate) - All counters and size-based arguments in the public API are now using
size_t
instead ofint
- The
Text.valign
andText.halign
parameters now also align the text per line Text
rendering has been completely reworked to support more advanced effects
and smooth rendering at high resolution- The
@scene
decorator now relies on an explicitycontrols
dictionary
instead of**kwargs
- The
Texture*
nodes now uselinear
filtering by default instead of
nearest
Removed
ResourceProps.variadic
bool flag as it was never a functional interfaceNGL_CAP_NPOT_TEXTURE
as we mandate full support for textures with
non-power-of-two dimensions- Support for OpenGL < 3.3 and OpenGL ES < 3.0 and the associated capabilities:
NGL_CAP_BLOCK
,NGL_CAP_INSTANCED_DRAW
,NGL_CAP_SHADER_TEXTURE_LOD
,
NGL_CAP_TEXTURE_2D_ARRAY
,NGL_CAP_TEXTURE_3D
,NGL_CAP_TEXTURE_CUBE
,
NGL_CAP_UINT_UNIFORMS
- GLSL
ngl_tex{2d,3d,cube,2dlod,3dlod,cubelod}()
declarations (users must now
usetexture()
andtextureLod()
directly).ngl_texvideo()
is still there
and is still the prefered picking method
[2023.1] [libnopegl 0.8.0] - 2023-04-07
Changed
- Project renamed to
nope.gl
, as part of the Nope Foundry
[2023.0] [libnodegl 0.7.0] - 2023-03-09
Fixed
- Color channel difference in
ngl-diff
is now done in linear space
Added
- Windows DLL information (Copyrights, Version, Name)
Changed
- The installed
nodes.specs
is now inJSON
instead ofYAML
- The default branch is now named
main
[2022.8] [libnodegl 0.6.1] - 2022-09-22
Fixed
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs involvingTimeRangeFilter
nodes keeping some parts of the graph active - Build
setuptools>=60
on MinGW - Hooks file synchronization for file names with special chars
- A race condition in
ngl-control
reload mechanism
Added
ngl-diff
can now open images
Changed
- Improved
ngl-diff
color map
[2022.7] [libnodegl 0.6.0] - 2022-06-07
Added
- HDR tone mapping support for PQ content
Fixed
- Visual glitches when seeking with the VAAPI/Vulkan acceleration
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs - Memory leak with
Buffer*(count=N)
(only when no data is specified)
Changed
- Handle OpenGLES as a separate backend build-wise
[2022.6] [libnodegl 0.5.0] - 2022-05-19
Added
- Mediacodec/Vulkan video acceleration support
- EGL device platform support (allows to support NVIDIA GPUs in headless
environments) - Compatibility with static analyzers for symbols discovery in
pynodegl
,
including typing annotations - Compatibility with Vulkan devices not supporting host cached memory
Fixed
- Missing exposed constants in
pynodegl
(some backend capabilities and
the Wayland platform ID) - Undefined behaviour when using geometries with
Render*
nodes (Render
node
is not affected) - Undefined behaviour in sRGB/linear conversions with negative colors
Changed
Buffer.block_field
is now a string corresponding to the field name instead
of an integer index
[2022.5] [libnodegl 0.4.0] - 2022-05-06
Fixed
- Missing package data files for
ngl-diff
[2022.4] [libnodegl 0.4.0] - 2022-05-06
Added
- Optional
backend_config
field to thengl_config
structure (ABI break) - External OpenGL context support
ngl-diff
tool to visually compare videosUniformColor.space
colorspace configuration (sRGB, HSL, HSV)AnimatedColor
andAnimKeyFrameColor
nodesset_surface_pts
support to the Vulkan backend (Android)
Fixed
- Various memory leaks
- Hooks session information sometimes not being updated in
ngl-control
Removed
handle
field from thengl_config
structureUniformColorA
(useUniformColor
instead, with a separateUniformFloat
for the opacity)
[2022.3] [libnodegl 0.3.0] - 2022-04-11
Added
eye
,center
andup
Camera parameters can now be node- Honor NO_COLOR environment variable
Fixed
- A crash happening in the VAAPI context module when both the OpenGL and Vulkan
backends were enabled. - A deadlock in
ngl-control
when specifying invalid encoding arguments
[2022.2] [libnodegl 0.2.0] - 2022-03-28
Added
TextureView
node, useful for targeting a specific layer of a texture in RTT
scenarios- Initial Vulkan support
- VAAPI/Vulkan video acceleration support
- Metal support through MoltenVK, including VideoToolbox video acceleration
- HDR tone mapping support for HLG content
Fixed
- Fix OpenGL buffers and textures bindings
- A memory crash happening when resetting the context scene to NULL with the
HUD active
[2022.1] [libnodegl 0.1.0] - 2022-01-20
Added
- This Changelog
v2023.3
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
This project adheres to a flavour of Calendar Versioning
for the globale releases (YYYY.MINOR
), and to Semantic
Versioning for libnopegl
.
[Unreleased]
[2023.3] [libnopegl 0.9.0] - 2023-09-01
Fixed
- Linux and macOS release jobs
[2023.2] [libnopegl 0.9.0] - 2023-09-01
Added
- Much more detailed typing annotations in
pynopegl
RenderDisplace
node for texture displacement- Visual scopes support through the
ColorStats
,RenderHistogram
and
RenderWaveform
nodes (seescopes
example in the demos) - Multiple modulo functions for the
Eval*
nodes:mod_e
(euclidean),mod_f
(floored) andmod_t
(truncated) - Support for rendering to 3D textures
- Support for 3D textures image load/store
- Support for cube maps image load/store
- Support for array of 2D textures
- External font rendering in the
Text
node - Fixed scaling in the
Text
node - Text effects (color, opacity, transform, glow, outline, blur), applicable per
character/word/lines PathKeyClose
node to close the current sub-pathRenderPath
node to render paths visually- Optional
compat_specs
in the@scene
decorator to add a version requirement
constraint ngl-viewer
tool to select, customize and export scenes with a simple and
intuitive interface
Changed
- CSV export in the HUD now always prints floats in C locale instead of quoted
pynopegl.Context.configure()
now takes aConfig
as argumentpynopegl
log levels are now controled using thepynopegl.Log
enummax_texture_dimensions_*
capabilities are renamed tomax_texture_dimension_*
- Backend probing in
pynopegl
now returns a more Pythonic output GraphicConfig.scissor
is now anivec4
parameter instead ofvec4
TimeRangeMode*
nodes are removed andTimeRangeFilter
is simplified to
handle their role; if multiple ranges are needed simulteanously, aGroup
can
be used.TimeRangeFilter.max_idle_time
is removed since its use was limited
to inter range times (now only a single time segment is handled).- The API now mandates that node scenes have to be wrapped into a dedicated
scene object that holds extra metadata (duration, aspect ratio and framerate) - All counters and size-based arguments in the public API are now using
size_t
instead ofint
- The
Text.valign
andText.halign
parameters now also align the text per line Text
rendering has been completely reworked to support more advanced effects
and smooth rendering at high resolution- The
@scene
decorator now relies on an explicitycontrols
dictionary
instead of**kwargs
- The
Texture*
nodes now uselinear
filtering by default instead of
nearest
Removed
ResourceProps.variadic
bool flag as it was never a functional interfaceNGL_CAP_NPOT_TEXTURE
as we mandate full support for textures with
non-power-of-two dimensions- Support for OpenGL < 3.3 and OpenGL ES < 3.0 and the associated capabilities:
NGL_CAP_BLOCK
,NGL_CAP_INSTANCED_DRAW
,NGL_CAP_SHADER_TEXTURE_LOD
,
NGL_CAP_TEXTURE_2D_ARRAY
,NGL_CAP_TEXTURE_3D
,NGL_CAP_TEXTURE_CUBE
,
NGL_CAP_UINT_UNIFORMS
- GLSL
ngl_tex{2d,3d,cube,2dlod,3dlod,cubelod}()
declarations (users must now
usetexture()
andtextureLod()
directly).ngl_texvideo()
is still there
and is still the prefered picking method
[2023.1] [libnopegl 0.8.0] - 2023-04-07
Changed
- Project renamed to
nope.gl
, as part of the Nope Foundry
[2023.0] [libnodegl 0.7.0] - 2023-03-09
Fixed
- Color channel difference in
ngl-diff
is now done in linear space
Added
- Windows DLL information (Copyrights, Version, Name)
Changed
- The installed
nodes.specs
is now inJSON
instead ofYAML
- The default branch is now named
main
[2022.8] [libnodegl 0.6.1] - 2022-09-22
Fixed
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs involvingTimeRangeFilter
nodes keeping some parts of the graph active - Build
setuptools>=60
on MinGW - Hooks file synchronization for file names with special chars
- A race condition in
ngl-control
reload mechanism
Added
ngl-diff
can now open images
Changed
- Improved
ngl-diff
color map
[2022.7] [libnodegl 0.6.0] - 2022-06-07
Added
- HDR tone mapping support for PQ content
Fixed
- Visual glitches when seeking with the VAAPI/Vulkan acceleration
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs - Memory leak with
Buffer*(count=N)
(only when no data is specified)
Changed
- Handle OpenGLES as a separate backend build-wise
[2022.6] [libnodegl 0.5.0] - 2022-05-19
Added
- Mediacodec/Vulkan video acceleration support
- EGL device platform support (allows to support NVIDIA GPUs in headless
environments) - Compatibility with static analyzers for symbols discovery in
pynodegl
,
including typing annotations - Compatibility with Vulkan devices not supporting host cached memory
Fixed
- Missing exposed constants in
pynodegl
(some backend capabilities and
the Wayland platform ID) - Undefined behaviour when using geometries with
Render*
nodes (Render
node
is not affected) - Undefined behaviour in sRGB/linear conversions with negative colors
Changed
Buffer.block_field
is now a string corresponding to the field name instead
of an integer index
[2022.5] [libnodegl 0.4.0] - 2022-05-06
Fixed
- Missing package data files for
ngl-diff
[2022.4] [libnodegl 0.4.0] - 2022-05-06
Added
- Optional
backend_config
field to thengl_config
structure (ABI break) - External OpenGL context support
ngl-diff
tool to visually compare videosUniformColor.space
colorspace configuration (sRGB, HSL, HSV)AnimatedColor
andAnimKeyFrameColor
nodesset_surface_pts
support to the Vulkan backend (Android)
Fixed
- Various memory leaks
- Hooks session information sometimes not being updated in
ngl-control
Removed
handle
field from thengl_config
structureUniformColorA
(useUniformColor
instead, with a separateUniformFloat
for the opacity)
[2022.3] [libnodegl 0.3.0] - 2022-04-11
Added
eye
,center
andup
Camera parameters can now be node- Honor NO_COLOR environment variable
Fixed
- A crash happening in the VAAPI context module when both the OpenGL and Vulkan
backends were enabled. - A deadlock in
ngl-control
when specifying invalid encoding arguments
[2022.2] [libnodegl 0.2.0] - 2022-03-28
Added
TextureView
node, useful for targeting a specific layer of a texture in RTT
scenarios- Initial Vulkan support
- VAAPI/Vulkan video acceleration support
- Metal support through MoltenVK, including VideoToolbox video acceleration
- HDR tone mapping support for HLG content
Fixed
- Fix OpenGL buffers and textures bindings
- A memory crash happening when resetting the context scene to NULL with the
HUD active
[2022.1] [libnodegl 0.1.0] - 2022-01-20
Added
- This Changelog
v2023.2
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
This project adheres to a flavour of Calendar Versioning
for the globale releases (YYYY.MINOR
), and to Semantic
Versioning for libnopegl
.
[Unreleased]
[2023.2] [libnopegl 0.9.0] - 2023-09-01
Added
- Much more detailed typing annotations in
pynopegl
RenderDisplace
node for texture displacement- Visual scopes support through the
ColorStats
,RenderHistogram
and
RenderWaveform
nodes (seescopes
example in the demos) - Multiple modulo functions for the
Eval*
nodes:mod_e
(euclidean),mod_f
(floored) andmod_t
(truncated) - Support for rendering to 3D textures
- Support for 3D textures image load/store
- Support for cube maps image load/store
- Support for array of 2D textures
- External font rendering in the
Text
node - Fixed scaling in the
Text
node - Text effects (color, opacity, transform, glow, outline, blur), applicable per
character/word/lines PathKeyClose
node to close the current sub-pathRenderPath
node to render paths visually- Optional
compat_specs
in the@scene
decorator to add a version requirement
constraint ngl-viewer
tool to select, customize and export scenes with a simple and
intuitive interface
Changed
- CSV export in the HUD now always prints floats in C locale instead of quoted
pynopegl.Context.configure()
now takes aConfig
as argumentpynopegl
log levels are now controled using thepynopegl.Log
enummax_texture_dimensions_*
capabilities are renamed tomax_texture_dimension_*
- Backend probing in
pynopegl
now returns a more Pythonic output GraphicConfig.scissor
is now anivec4
parameter instead ofvec4
TimeRangeMode*
nodes are removed andTimeRangeFilter
is simplified to
handle their role; if multiple ranges are needed simulteanously, aGroup
can
be used.TimeRangeFilter.max_idle_time
is removed since its use was limited
to inter range times (now only a single time segment is handled).- The API now mandates that node scenes have to be wrapped into a dedicated
scene object that holds extra metadata (duration, aspect ratio and framerate) - All counters and size-based arguments in the public API are now using
size_t
instead ofint
- The
Text.valign
andText.halign
parameters now also align the text per line Text
rendering has been completely reworked to support more advanced effects
and smooth rendering at high resolution- The
@scene
decorator now relies on an explicitycontrols
dictionary
instead of**kwargs
- The
Texture*
nodes now uselinear
filtering by default instead of
nearest
Removed
ResourceProps.variadic
bool flag as it was never a functional interfaceNGL_CAP_NPOT_TEXTURE
as we mandate full support for textures with
non-power-of-two dimensions- Support for OpenGL < 3.3 and OpenGL ES < 3.0 and the associated capabilities:
NGL_CAP_BLOCK
,NGL_CAP_INSTANCED_DRAW
,NGL_CAP_SHADER_TEXTURE_LOD
,
NGL_CAP_TEXTURE_2D_ARRAY
,NGL_CAP_TEXTURE_3D
,NGL_CAP_TEXTURE_CUBE
,
NGL_CAP_UINT_UNIFORMS
- GLSL
ngl_tex{2d,3d,cube,2dlod,3dlod,cubelod}()
declarations (users must now
usetexture()
andtextureLod()
directly).ngl_texvideo()
is still there
and is still the prefered picking method
[2023.1] [libnopegl 0.8.0] - 2023-04-07
Changed
- Project renamed to
nope.gl
, as part of the Nope Foundry
[2023.0] [libnodegl 0.7.0] - 2023-03-09
Fixed
- Color channel difference in
ngl-diff
is now done in linear space
Added
- Windows DLL information (Copyrights, Version, Name)
Changed
- The installed
nodes.specs
is now inJSON
instead ofYAML
- The default branch is now named
main
[2022.8] [libnodegl 0.6.1] - 2022-09-22
Fixed
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs involvingTimeRangeFilter
nodes keeping some parts of the graph active - Build
setuptools>=60
on MinGW - Hooks file synchronization for file names with special chars
- A race condition in
ngl-control
reload mechanism
Added
ngl-diff
can now open images
Changed
- Improved
ngl-diff
color map
[2022.7] [libnodegl 0.6.0] - 2022-06-07
Added
- HDR tone mapping support for PQ content
Fixed
- Visual glitches when seeking with the VAAPI/Vulkan acceleration
- Crash with specific draw time sequences in some time filtered diamond-tree
graphs - Memory leak with
Buffer*(count=N)
(only when no data is specified)
Changed
- Handle OpenGLES as a separate backend build-wise
[2022.6] [libnodegl 0.5.0] - 2022-05-19
Added
- Mediacodec/Vulkan video acceleration support
- EGL device platform support (allows to support NVIDIA GPUs in headless
environments) - Compatibility with static analyzers for symbols discovery in
pynodegl
,
including typing annotations - Compatibility with Vulkan devices not supporting host cached memory
Fixed
- Missing exposed constants in
pynodegl
(some backend capabilities and
the Wayland platform ID) - Undefined behaviour when using geometries with
Render*
nodes (Render
node
is not affected) - Undefined behaviour in sRGB/linear conversions with negative colors
Changed
Buffer.block_field
is now a string corresponding to the field name instead
of an integer index
[2022.5] [libnodegl 0.4.0] - 2022-05-06
Fixed
- Missing package data files for
ngl-diff
[2022.4] [libnodegl 0.4.0] - 2022-05-06
Added
- Optional
backend_config
field to thengl_config
structure (ABI break) - External OpenGL context support
ngl-diff
tool to visually compare videosUniformColor.space
colorspace configuration (sRGB, HSL, HSV)AnimatedColor
andAnimKeyFrameColor
nodesset_surface_pts
support to the Vulkan backend (Android)
Fixed
- Various memory leaks
- Hooks session information sometimes not being updated in
ngl-control
Removed
handle
field from thengl_config
structureUniformColorA
(useUniformColor
instead, with a separateUniformFloat
for the opacity)
[2022.3] [libnodegl 0.3.0] - 2022-04-11
Added
eye
,center
andup
Camera parameters can now be node- Honor NO_COLOR environment variable
Fixed
- A crash happening in the VAAPI context module when both the OpenGL and Vulkan
backends were enabled. - A deadlock in
ngl-control
when specifying invalid encoding arguments
[2022.2] [libnodegl 0.2.0] - 2022-03-28
Added
TextureView
node, useful for targeting a specific layer of a texture in RTT
scenarios- Initial Vulkan support
- VAAPI/Vulkan video acceleration support
- Metal support through MoltenVK, including VideoToolbox video acceleration
- HDR tone mapping support for HLG content
Fixed
- Fix OpenGL buffers and textures bindings
- A memory crash happening when resetting the context scene to NULL with the
HUD active
[2022.1] [libnodegl 0.1.0] - 2022-01-20
Added
- This Changelog