Releases: mbouron/nope.gl
Releases · mbouron/nope.gl
v2024.0
Changelog
[2024.0] [libnopegl 0.11.0] - 2024-02-02
Added
ngl.SceneCfg
now includes the backend capabilities%s_coord_matrix
uniform is now exposed for 2D array and 3D texturesngl_get_backend()
function to retrieve the backend information associated
with a configurednope.gl
contextngl-diff
can now set and change the input files from the GUI. While still
supported, passing them through the command line is not mandatory anymorengl_scene_ref
andngl_scene_unrefp
functions to respectively increment and
decrement the reference counter of a sceneGaussianBlur
node to apply a post processing gaussian blur effect to a
scene with a resolution dependent bluriness parameter. The bluriness
parameter can provide a gaussian blur effect with a radius up to 126 pixelsFastGaussianBlur
node to apply a post processing gaussian blur effect to a
scene that is suitable for real time rendering on mobile devices as well as
providing a resolution independent blurriness parameterforward_transforms
parameter to theTexture
andRenderToTexture
nodes
to enable forwarding of the camera/model transformationsSelector
filter to select colors according to their lightness, chroma or hueAnimKeyFrame*
nodes can now be reused at a different time using the
Animated*.time_offset
parameterTextEffect.end_time
now automatically uses the scene duration when
unspecified
Fixed
- Moving the split position in
ngl-diff
- Crash in the hwconv module when direct rendering is not possible/enabled
- Export to output files containing spaces in their path on Windows
- Crash when decoding videos on Android with the OpenGLES backend
Changed
ngl.get_backends()
andngl.probe_backends()
were mistakenly inverted in
v2023.2, this is changed back in this releaseSceneCfg
andSceneInfo
now use theBackend
enum instead of a stringngl_configure()
does not update thebackend
field from the user
configuration anymore and theconfig
argument is now const. Users must now
usengl_get_backend()
to get the underlying backend informationngl_scene_init_from_node()
has been replaced with
ngl_scene_init()
with the associatedngl_scene_params
structure- the
ngl_scene
structure is now private; its parameters can now be obtained
usingngl_scene_get_params()
- the
Texture
andRenderToTexture
nodes no longer forward the camera/model
transformations by default
Removed
%s_dimensions
uniform for 2D array and 3D images/textures, users must use
textureSize()/imageSize() instead (%s_dimensions
is still available for 2D
textures)
Removed
ngl_scene_freep
function; usengl_scene_unrefp
instead
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