nCine v2020.05 Release Notes
Release Date: 2020-05-18 // almost 5 years ago-
No data yet ๐
You can check the official repo
Previous changes from v2019.10
-
๐ This is the second nCine release.
Manifest
- nCine-2019.10-Win64-VS2019.exe (md5:
8e505ffe0ec256688e85e00dbbe7ec17
) - nCine-2019.10-Win64-VS2019.zip (md5:
63d93c1cdba532c002fd59b0094e1dd2
) - nCine-2019.10-Win64-VS2017.exe (md5:
99d9fc5b22a51286fe76bf8634316390
) - nCine-2019.10-Win64-VS2017.zip (md5:
1cff45df92503c773ca2dc1d2f31dc78
) - nCine-2019.10-Darwin.dmg (md5:
1554b5a3d906d7c3bd62f50c53eb2f85
)
๐ Changelog
๐ฅ Breaking Changes
- The
Font
constructor has now inverted parameters:fntFilename
as first andtexFilename
as second- The reason for that is the new single parameter constructor
SceneNode::parentNode()
getter has been renamed to justparent()
, to be consistent with the newsetParent()
setter- The
xResolution
andyResolution
fields of theAppConfiguration
class have been replaced by a single 2D resolution vector- The
setResolution()
helper method has been removed as it is now possible to callresolution.set()
- In Lua
x_res
andy_res
have been replaced by theresolution
2D vector
- The
- The old non ImGui debug overlay has been deleted. If you need the debug overlay you also need to enable the ImGui integration
- As part of this change the
fontTexFilename
andfontFntFilename
strings in theAppConfiguration
class have been deleted
- As part of this change the
- The
withProfilerGraphs
andwithInfoText
flags in theAppConfiguration
class has been unified into a singlewithDebugOverlay
flag- You have to explicitely set the new flag to
true
to enable the debug overlay even when your application is compiled in debug mode
- You have to explicitely set the new flag to
- Many
nctl::String::copy()
methods have been turned intoassign()
methods in order to be more consistent with STL - ๐ The
Timer::now()
method has been removed, refer to the newTimeStamp
class
๐ New Features
- ๐ฑ Emscripten is now supported as a target platform, meaning you can now use the nCine for web games! ๐ธ
- The user can now query the available fullscreen video modes on PC and choose one
- The
IGfxDevice
interface has been enriched with methods to query the current video mode, the list of available ones and to set a new mode
- The
- A new
deferShaderQueries
flag has been added to theAppConfiguration
classes- When it is set to
true
all the shader error checks and introspection queries are deferred upon the first use of the shader, if it is ever used. - The option allows for decreased starting time at the expense of possible stutters when the shader is first used in a frame
- When it is set to
- ๐ New methods have been added to the audio classes to query their state
- They were used in the new Audio Players section of the ImGui debug overlay interface
- If you use the nCine compiled as a static library you have now access to more functionalities in the OpenGL classes
- ๐ The
Font
class now relies onFntParser
class to extract all the data from a FNT file- More checks are now performed to ensure the text can be properly rendered
- More glyph channel configurations are now supported and rendered correctly
- The
Font
class can be constructed with a single parameter: the FNT file. The texture will be loaded according to the file specified in the firstpage
tag.
- ๐ When you compile the engine you can now choose to disable the support for various dependency libraries and features
- You can disable threads support, Lua bindings, Png or WebP image loading, Ogg Vorbis sound loading or audio altogether
๐ Improvements
- The version of the integrated Tracy has gone from v0.4.1 to v0.5
- It is now easier to use Tracy in custom nCine projects, including on Android
- Threads can be named so that they can be tracked in the Tracy profiler
- You can now also retrieve current thread priority or set a new one
- All log entries are written out as coloured Tracy messages
- Threads id are invalidated on join and cancel so that they can be reused
- ๐ The version of the integrated ImGui has gone from v1.70 to v1.73
- โก๏ธ The GameController mapping database has been updated from the one included in SDL 2.0.9 to the one in SDL 2.0.10
- ๐ The
SceneNode
classes has seen the addition of long awaited helper methods in the shape ofsetParent()
,alpha()
andabsAlpha()
- The first one makes it easy and intuitive to set a node parent without going the opposite way by calling
parent->addChildNode(this)
- The alpha related methods should make it easier to query for a node alpha value
- There are also new Lua methods for scene nodes:
set_parent()
,get_alpha()
andset_alpha()
- The first one makes it easy and intuitive to set a node parent without going the opposite way by calling
- The new
TimeStamp
class can be used to collect timestamps at the full precision of the internal clock- The
Time
class has been enhanced withstop()
andtotalTime()
methods to aggregate multiple time spans - Most methods of the
TimeStamp
class are also accessible through the Lua API
- The
- It is now possible to
assign()
a certain numbers of characters from a C string to annctl::String
object - You can now enable the ImGui debug overlay even when the scenegraph is disabled
- In this case be sure to track OpenGL states using
GLBlending
,GLDepthTest
and the newGLCullFace
class
- In this case be sure to track OpenGL states using
- The
Font
class has a new query method,numKernings()
, to retrieve the number of kerning pairs in a font (it is callednum_kernings()
in Lua) - You can access the array of animations in an
AnimatedSprite
and the array of rectangles in aRectAnimation
- ๐ On Windows the executables use the Windows subsystem instead of the console one
- They will also expose version properties thanks to the VERSIONINFO file
- โก๏ธ The Android Gradle plugin version has been updated from 3.4.0 to 3.4.1 and Android build tools from 28.0.3 to 29.0.2
- The changes have been reflected in the template project as well
๐ Fixes
- ๐ฑ Compiler warnings related with
nctl::UniquePtr
wrapping forward declared classes have been fixed. They could have sometimes led to incorrect object deletions and possible leaks. ๐จ - ๐ฑ The OpenAL implementation has been rewritten and many bugs that were lurking in the code should have been squashed ๐
- Some changes dictated by the layout of the new
ncTemplate
project- The CMake scripts now expect a
nCine-data/icons/icon.ico
file instead of the oldnCine.ico
- Installers are now built with the
CPACK_PACKAGE_VENDOR
andCPACK_PACKAGE_HOMEPAGE_URL
variables correctly set
- The CMake scripts now expect a
- The returned value for
GL_MAX_UNIFORM_BLOCK_SIZE
is now clamped to 64kB because some OpenGL drivers might return very big numbers
Libraries
๐ This release is packaged together with:
- GLEW 2.1.0
- GLFW 3.3 (preferred backend over SDL2)
- SDL 2.0.10
- libpng 1.6.37
- zlib 1.2.11
- libwebp 1.0.3
- OpenAL Soft 1.19.1
- libogg 1.3.3
- libvorbis 1.3.6
- Lua 5.3.5
The Android libraries have been compiled with NDK r20 for
armeabi-v7a
,arm64-v8a
andx86_64
. - nCine-2019.10-Win64-VS2019.exe (md5: