This repository was archived by the owner on Mar 3, 2026. It is now read-only.
Releases: NopeForge/nope.gl
Releases · NopeForge/nope.gl
Release list
v2024.0
Changelog
[2024.0] [libnopegl 0.11.0] - 2024-02-02
Added
ngl.SceneCfgnow includes the backend capabilities%s_coord_matrixuniform is now exposed for 2D array and 3D texturesngl_get_backend()function to retrieve the backend information associated
with a configurednope.glcontextngl-diffcan now set and change the input files from the GUI. While still
supported, passing them through the command line is not mandatory anymorengl_scene_refandngl_scene_unrefpfunctions to respectively increment and
decrement the reference counter of a sceneGaussianBlurnode 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 pixelsFastGaussianBlurnode 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_transformsparameter to theTextureandRenderToTexturenodes
to enable forwarding of the camera/model transformationsSelectorfilter to select colors according to their lightness, chroma or hueAnimKeyFrame*nodes can now be reused at a different time using the
Animated*.time_offsetparameterTextEffect.end_timenow 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 releaseSceneCfgandSceneInfonow use theBackendenum instead of a stringngl_configure()does not update thebackendfield from the user
configuration anymore and theconfigargument 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_paramsstructure- the
ngl_scenestructure is now private; its parameters can now be obtained
usingngl_scene_get_params() - the
TextureandRenderToTexturenodes no longer forward the camera/model
transformations by default
Removed
%s_dimensionsuniform for 2D array and 3D images/textures, users must use
textureSize()/imageSize() instead (%s_dimensionsis still available for 2D
textures)
Removed
ngl_scene_freepfunction; usengl_scene_unrefpinstead
v2023.4
Changelog
[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 evalGridLayoutnode to make a grid out of a number of scenesFilterColorMapnode to remap colors using a gradient of color points- Animated GIF export in the viewer
RenderNoisenode to generate fractal noise on the GPUTexture2Dnode now accepts a scene asdata_srcand acts as an implicit
render target (which simplifies the graph when all the features of the
RenderToTexturenode are not needed)RenderToTextureandTexture2Dnodes 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.specsspecifications 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 Transformnode now accepts a node as input parameter and can be animated
this wayscene,SceneInfoandSceneCfgare now part ofpynopeglinstead of
pynopegl-utils, where they are deprecated
Removed
RenderToTexture.featuresas the RTT node is now able to detect
automatically if the underlying graph requires a depth/stencil buffer
v2023.3
Changelog
[2023.3] [libnopegl 0.9.0] - 2023-09-01
Fixed
- Linux and macOS release jobs
v2023.2
Changelog
[2023.3] [libnopegl 0.9.0] - 2023-09-01
Added
- Much more detailed typing annotations in
pynopegl RenderDisplacenode for texture displacement- Visual scopes support through the
ColorStats,RenderHistogramand
RenderWaveformnodes (seescopesexample 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
Textnode - Fixed scaling in the
Textnode - Text effects (color, opacity, transform, glow, outline, blur), applicable per
character/word/lines PathKeyClosenode to close the current sub-pathRenderPathnode to render paths visually- Optional
compat_specsin the@scenedecorator to add a version requirement
constraint ngl-viewertool 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 aConfigas argumentpynopegllog levels are now controled using thepynopegl.Logenummax_texture_dimensions_*capabilities are renamed tomax_texture_dimension_*- Backend probing in
pynopeglnow returns a more Pythonic output GraphicConfig.scissoris now anivec4parameter instead ofvec4TimeRangeMode*nodes are removed andTimeRangeFilteris simplified to
handle their role; if multiple ranges are needed simulteanously, aGroupcan
be used.TimeRangeFilter.max_idle_timeis 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.valignandText.halignparameters now also align the text per line Textrendering has been completely reworked to support more advanced effects
and smooth rendering at high resolution- The
@scenedecorator now relies on an explicitycontrolsdictionary
instead of**kwargs - The
Texture*nodes now uselinearfiltering by default instead of
nearest
Removed
ResourceProps.variadicbool flag as it was never a functional interfaceNGL_CAP_NPOT_TEXTUREas 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