Merge: gamnit: new services and a lot of bug fixes and performance improvements
authorJean Privat <jean@pryen.org>
Wed, 29 Nov 2017 15:40:53 +0000 (10:40 -0500)
committerJean Privat <jean@pryen.org>
Wed, 29 Nov 2017 15:40:53 +0000 (10:40 -0500)
commitf1bc8aa1702044b7bb63023cc84f950bd57b3522
treeb52ea5febce1d0d7e4dede3de3ef2487703e1e42
parent401b060654f1ec97d43f9fddda13b17002582355
parent4621f36e8ec703ada9905f920ec13de00c596b3a
Merge: gamnit: new services and a lot of bug fixes and performance improvements

This PR groups small fixes to gamnit and related packages. It is a general cleanup in preparation for optimizations to the gamnit depth 3D API.

Intro a few new services:
* `ParticleSystem::clear` to remove all live particles.
* `CustomTexture` can be modified and reloaded in GPU memory after the first call to `load`.
* Don't apply dynamic resolution to UI sprites as they are usually lightweight and any change in resolution is easily noticable.

Optimizations:
* Matrix creation and manipulation, in both gamnit and the matrix package.
* Free pixel data from both Nit and Java memory after loading them from the assets folder into the GPU memory.
* Avoids using mallocs in `realtime` services.

Fixes:
* Fix the left and right anchors of the `UICamera`.
* Fix a constant used to ask for antialiasing in the `egl` package.
* Avoid long attribute names in Blinn-Phong shader in case their name is truncated or the attribute is optimized out.
* Fix pointer to the parent GPU texture name in subtextures.
* Improve a few API doc.

Pull-Request: #2586
Reviewed-by: Romain Chanoir <romain.chanoir@viacesi.fr>
Reviewed-by: Jean Privat <jean@pryen.org>
contrib/asteronits/src/asteronits.nit
lib/gamnit/depth/depth.nit
lib/gamnit/depth/depth_core.nit
lib/gamnit/depth/more_materials.nit
lib/gamnit/depth/shadow.nit
lib/gamnit/dynamic_resolution.nit
lib/gamnit/flat/flat_core.nit
lib/gamnit/textures.nit