Skip to content

Releases: napframework/nap

NAP 0.4.4

20 Sep 13:01
Compare
Choose a tag to compare

New Features

  • High DPI support for GUI elements (mod_napimgui)
  • High DPI support for nap::Renderable2DTextComponent and nap::Font (2D text) (mod_naprender)
  • High DPI support for napkin

Note that because of these changes, the recommended version of QT (for Napkin) is bumped to: 5.15.2 LTS. Refer to the updated documentation for more information.

Adds cross platform, display aware, high dpi support to mod_napimgui, mod_naprender and napkin, together with the option to change the overall size of GUI elements. The result is a crisp interface that takes into consideration the selected display & DPI. The gui is automatically updated (scaled) when a window is moved from display to display. Old DPI behaviour (nap apps only) can be enabled by disabling EnableHighDPI (RenderServiceConfiguration). High dpi rendering is enabled by default. Results are good, but could vary, depending on the operating system and underlying window system (X11, Wayland etc.).

The RenderService can be used to get information about displays. The nap::Display groups important display information together and various SDL helper functions are available to quickly get low level display information. On macOS, every demo and new project now ships with a .plist file that contains the NSHighResolutionCapable key to tell macOS the app is high DPI aware.

  • Color Picker & Color Preview (napkin)
  • Directly enter and edit Color Hex Codes (ie: #C86969) in property editor

Napkin (finally) has a color picker. Every nap::Color<> is supported and can be edited using this widget, including RGBAColorFloat, RGBColor8 etc. A preview of the color is shown in the inspector.

  • New low-level napasio network module, used by mod_napwebsocket (mod_napasio)
  • New nap::ArtNetReceiver, to receive artnet dmx data over the network (mod_napartnet)
  • New artnetsend & artnetreceive demo

nap_0_4_4_2

Improvements

  • Optimized font rendering (mod_naprender)
  • Sequencer is now DPI aware (mod_napsequencegui)
  • Sequencer shares colors with gui (mod_napsequencegui)
  • Removed HAVE_CONFIG_H compile definition (build)
  • ImGUI style is now shared (mod_napimgui)
  • Remove the need to specifically handle non dpi aware guis (mod_napimgui)
  • Recommended version of QT bumped to 5.15.2 LTS because of improved High DPI support
  • Optimized nap::BaseColor::getConverter

Fixes

  • Invert and change mouse scroll direction when shift is pressed on macOS (mod_napinput)
  • Documentation at various places
  • macOS deployment target now is 10.15 (Catalina)

Breaking Changes

IRenderTarget::setClearColor() now takes a const RGBAColorFloat& instead of glm::vec4

NAP 0.4.3

28 Jul 14:24
Compare
Choose a tag to compare

New Features

  • Visual Studio 2019 support (build, windows) dbf0b1d
    • VS2015 no longer supported, please upgrade when using this release
    • Delete the CMake cache (msvc64 directory) before running generate_solution.bat
  • C++ 17 features enabled (build) 50c1df0
  • Custom font using IMGuiServiceConfiguration (mod_napimgui) 511f8b3
  • Filter modulation (mod_napaudio) 7df946e

Improvements

  • Global variables are inline by default (core) 11fa8d5
  • Remove old Qt search paths 1bbebfd
  • Allow imgui_internal.h to be included in nap modules (mod_napimgui) 4aac1ef
  • Level meter node upgrade (mod_napaudio)
  • Array subscript overload added to MeshShape (mod_naprender)
  • Updated getting started documentation (docs) c7f0664
  • Allow napkin to compile with newer versions of qt
  • Removed deprecated qt5_use_modules (build) 8fc3d3e
  • Added indentation when displaying nested parameter groups (mod_napparametergui)

Fixes

  • Removed property path caching in document (napkin)
    • Fixes hard to reproduce rare crash when switching document d49c550
  • soem winpcap linker error when packaging (mod_napsoem) 08bb060
  • Fix logging of OSC input messages with multiple arguments (oscmidi demo) 0efd007
  • Fix allow audio device failure on startup (mod_napaudio) 61a9148
  • Catch pybind11 exception on class constructor (rtti) 88fdc67
  • TaskQueue: don't use bulk dequeueing to preserve queue order (mod_napaudio) 342328d
  • Vulkan memory validation error ImGUI (mod_napimgui) e539f84
  • Performance hit on handleLoadPresetPopup (mod_napparametergui) d447df4
  • Potential crash due to negative selected preset index (mod_napparametergui) d447df4
  • View angle distortion fix when taking snapshot using subtexture counts over 4 (mod_naprender) 8f839d7

NAP 0.4.2

26 May 16:54
Compare
Choose a tag to compare

New Features

  • Edit and save service configurations (napkin)
  • High res screenshot functionality (mod_naprender)
    • nap::Snapshot
    • Tiled capture, supports resolutions up to 16k and above, depending on available vram
  • Copy / Paste sequence segments (mod_napsequencegui)
  • Set default project content and configuration .json file (napkin)
  • Calendar Module (mod_napcalendar)
    • nap::Calendar resource
    • nap::CalendarInstance, runtime editable & serializable
    • nap::CalendarComponent emits calendar notification events
  • Tween Module (mod_naptween)
  • Tween Demo (tween)
  • macOS unquarantine scripts
    • NAP apps
    • NAP package
  • Ethercat SDO configuration (mod_napethercat)
    • nap::SDOArgument
    • nap::SDOValue
  • nap::SteadyTimer (core)
  • Select audio host api on startup (mod_napaudio)
  • nap::DoubleSmoothOperator (mod_naprender)

image

Improvements

  • Sequencer Rewrite (mod_napsequence)
  • Sequence GUI inspector and controls always overlap track views (mod_napsequence)
  • Support for multiple unique ethercat master contexts (mod_napethercat)
  • Build environment checks (build)
  • Added Snapshot to vinyl demo (demos)
  • Napkin styles & icons (napkin)
    • more uniform and aligned
  • Default websocket port is now 2000
    • removes root requirement on Linux
  • Math defines moved to mathutils.h (mod_napmath)

Fixes

  • Removal of not required GLM_INCLUDE_DIRS (build)
  • Napkin document switch, fixed potential dangling pointer (napkin)
  • Default SmoothDamp max is now numeric_limit instead of 1000.0f. (mod_napmath)
  • Fix potentially selecting a queue family missing required capabilities (@AartOdding)
  • Incorrect GPU target enum define
  • Various others, see changelist

Breaking change: Texture2D::EClearMode::FillWithZero is replaced by Texture2D::EClearMode::Clear.

NAP 0.4.0

17 Nov 15:34
Compare
Choose a tag to compare

The first public release of NAP Framework under the MPL 2.0 license.

New Features

  • Vulkan Render Engine (mod_naprender)
    • Deprecated and replaced OpenGL 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 and module .json files are now regular NAP resources (build)
  • Napkin compiled and deployed in separate directory next to application (napkin)
  • Napkin initialized against the project.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 and Samplers are now instantiated (mod_naprender)
  • Support for uniform structs and arrays (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.