NAP 0.4.0
The first public release of NAP Framework under the MPL 2.0 license.
New Features
- Vulkan Render Engine (mod_naprender)
Deprecated
and replacedOpenGL
completely- Win64, Linux and OSX (MoltenVK)
- NAP source-code available under the the MPL 2.0 license
- Sequencer (mod_napsequence)
- Sequencer GUI (mod_napsequencegui)
- OpenCV support (mod_napopencv)
- Add protection to your app using a
license
(mod_naplicense) - Support for hard coded
Shaders
(mod_naprender) VideoPlayer
that can load and swap multiple videos efficiently (mod_napvideo)VideoShader
to convert YUV into RGB (mod_napvideo)RenderVideoComponent
render video to texture target immediately (mod_napvideo)facedetection
demo (mod_napopencv)sequencer
demo (mod_napsequence)paintobject
demo (mod_naprender)checklicense
demo (mod_naplicense)FontShader
(mod_naprender)keygen
tool (generates pair of public/private RSA keys)licensegenerator
tool (generates a license based on public key and user data)headless
rendering support
Improvements
Build system
now correctly loads modules based on dependencies (build)- Multi window
ImGUI
support (mod_napimgui) MSAA
and -Sample based shading
can be controlled for individual targets (mod_naprender)- Texture sampling options are controlled by the
sampler
, not texture (mod_naprender) RenderableTextComponent
, render text to texture target immediately using hard coded shader (mod_naprender)project.json
andmodule .json
files are now regular NAP resources (build)Napkin
compiled and deployed in separate directory next to application (napkin)Napkin
initialized against theproject.json
file, instead of an application data file (napkin)ProjectInfo
now accessible from Core, including important directories, files etc. (core)Napkin
improved property formatting of arrays (napkin)Uniforms
andSamplers
are now instantiated (mod_naprender)- Support for
uniform structs
andarrays
(mod_naprender) Napkin
has a splash screen (napkin)Documentation
in general, specifically 'getting started' and 'rendering' (docs)- Updated the
C++ styleguide
(docs) - Many build improvements (build)
Important Bug Fixes
FFmpeg
frame leak when switching videos (mod_napvideo)- Daylight saving taken into account (optional) when creating system time stamp (core)
For other changes, major and minor, refer to the changelist.
Breaking Changes
Unfortunately NAP 0.4.0 is not directly compatible with any of the previous NAP versions. This is due to major changes to the render engine, build system and license policy. If you run into specific porting issues make sure to ask us on the forum.
Use the upgrade
tools (build_tools\project_and_module_updater) to convert a =< NAP 0.3.X
project to a NAP 0.4.X
project, compatible with the new build system. Use the demos as a point of reference to port an older NAP OpenGL
application to Vulkan
. It's also important that you update your GLSL
shaders. The shading language has not changed but uniforms need to be part of a uniform struct (UBO), they can't be declared independent from one.
As mentioned in the improvements, napkin
now loads a project.json
instead of application data.json
file. This is because napkin correctly tries to resolve all module dependencies before loading the data associated with your application.