# Gaia Sky 3.5.8

## Features
- add bookmarks section in gamepad GUI. See [#757](https://codeberg.org/gaiasky/gaiasky/issues/757).
- cloud shadow projections on the surface of planets, for regular textures, cubemaps and SVT clouds.
- add new `backupSettings()` and `restoreSettings()` API calls to back up and restore the entire settings in Gaia Sky from a script.
- move 'star glow over objects' check box to Scene settings > Stars section.
- add used, free, allocated and total memory to memory information window in help dialog.
- enable eclipse outlines (for umbra and penumbra) by default in configuration file.
- add application-level shader disk cache that stores binary shaders to disk to speed up application startup. Disabled by default, as most GPU drivers already do this on their own.
- add binary particle group loader/writer to be able to load particles using an own binary format that loads much faster.
- support `PARTICLE_EXT` attributes, additionally to the base `PARTICLE` attributes in the new binary format for particle groups.
- increase number of divisions in shapes around objects from 15 to 35. Do not cull faces. See [#756](https://codeberg.org/gaiasky/gaiasky/issues/756).
- enable exporting cubemap sides to image files, action bound to `F7` by default. Fixes [#753](https://codeberg.org/gaiasky/gaiasky/issues/753).
- adjust constants so that the Sun size is accurate.

## Bug Fixes
- use actual tree map for currently pressed keys in keyboard input controller, so that actions can be retrieved reliably.
- do not activate surface mode (where the view follows the mouse location) with gamepad input.
- layout and information in about/help dialog.
- dataset detection to use dataset key by default instead of name.
- apply graphics quality after restart. Remove graphics quality update events.
- graphics quality update is now a 'needs restart' operation, otherwise the system crashes trying to load in new parameters, textures and so on. This is part of [#719](https://codeberg.org/gaiasky/gaiasky/issues/719).
- increase constellation and boundaries line width to prevent rastering artifacts. This is part of [#719](https://codeberg.org/gaiasky/gaiasky/issues/719).
- star flickering issues due to quad sizes mended by setting a minimum quad solid angle roughly equal to the pixel size of the back-buffer. Fixes [#719](https://codeberg.org/gaiasky/gaiasky/issues/719).
- tooltips in number validators using the `MAX_VALUE` or `MIN_VALUE` should use infinity instead. Part of [#756](https://codeberg.org/gaiasky/gaiasky/issues/756).
- add orientation to shape dialog (camera, equatorial, ecliptic, galactic). Fixes [#756](https://codeberg.org/gaiasky/gaiasky/issues/756).
- remove all shapes [& around object] actually removes all shapes and not only the first in the list. This is part of [#756](https://codeberg.org/gaiasky/gaiasky/issues/756).
- default to scientific notation only when abs(num) > 9999. Fixes [#755](https://codeberg.org/gaiasky/gaiasky/issues/755).
- possible null pointer exceptions in OpenXR driver.
- enable breaking string sequences at forward and backward slashes, as well as whitespaces. This prevents overflown content in the error dialog in certain cases.
- run actual octant update code in the main thread.
- particle sizing and size limits in the loader.

## Performance Improvements
- remove unnecessary synchronized blocks from index.
- use parallel sort instead of regular single-threaded sort for particle and star sets.
- make sure that unseen stars (i.e. computed final color is 0) do not take up fragment shader resources.

## Code Refactoring
- rename attributes of UCD and UCDParser to comport with the global style.

## Build System
- upgrade to gradle 8.5.

## Merge Requests
- Merge branch 'star-shading'