Commit Graph

199 Commits

Author SHA1 Message Date
Alexander Bock
7004c02b86 Happy new year 2021-01-02 15:26:51 +01:00
Alexander Bock
067c0f4b27 Introduction of new Dictionary class (#1446)
* Adapting to introduction of new Dictionary class in Ghoul
 * Mainly replacing usage of float instead of doubles as expected
 * Adjust to the lack of the hasKeyAndValue function
2021-01-02 15:07:11 +01:00
Alexander Bock
7bf7a25401 Updated submodules (#1444)
* Update submodules
 - Ghoul
   - assimp (5.0.0 -> 5.0.1)
   - catch2 (2.11.1 -> 2.13.3)
   - fmt (7.0.3 -> 7.1.3)
   - freetype2 (2.10.1 -> 2.10.4)
   - glbinding (3.1 -> 3.2)
   - glm (0.9.9.5 -> 0.9.9.8)
   - websocketpp (0.7.x -> 0.8.2)
 - SGCT
   - fmt (7.0.3 -> 7.1.3)
   - freetype (2.9.1 -> 2.10.4)
   - GLM (0.9.9.6 -> 0.9.9.8)
* Update to new include external definition
* Remove warning about no eof newline
2020-12-29 13:44:57 +01:00
Alexander Bock
ad8af3ffeb Feature/CMake (#1443)
General CMake cleanup/overhaul
* Enable precompiled headers for all projects
* Move specifications itto separate CMakeLists files
  * Add openspace-core as a subdirectory
  * Move handle_modules functionality into modules/CMakeLists.txt
  * Move handleapplications logic into apps/CMakeLists.txt
* Introduce openspace-module-collection interface library to simplify inclusion of modules in applications
* Turn module initialization into a two-step process to adapt to the new minimal dependency scenario
* Compile time speedup
  * Remove circular dependencies between modules and core preventing multithreaded compilation on MSVC
  * Build Spice multithreaded and as static library
  * Remove dependency from core to module-webbrowser
  * Remove unused dependency from kameleon
  * Remove additional unnecessary dependencies
  * Cleanup volume/kameleon/kameleonvolume modules
  * Fix visibility issues. Restrict include paths
  * Compile kameleon in parallel
* Other cleanup
  * Only copy CEF files from one target (hard-coded to OpenSpace right now)
  * Remove unused instrumentation code
  * Remove the ability to render AABB for globes as it caused a circular dependency between GlobeBrowsing and Debugging
  * Removing compiler and cppcheck warnings
  * Turn almost all includes into non-system includes
  * Don't warn on deprecrated copy
* Updated submodules
2020-12-28 18:26:57 +01:00
Alexander Bock
d95c6c4a47 Removing Clang on MacOS warnings. No longer create external control that doesn't work anymore 2020-12-08 00:24:24 +01:00
Alexander Bock
86bb19d81c Feature/warnings (#1425)
* Remove MSVC, GCC, Clang compiler warnings
* Remove cppcheck warnings
2020-12-07 23:43:05 +01:00
Alexander Bock
51470c0a0d Issue/1355 (#1424)
* Move glfw init after macOS window is ready
* MacOS fixes for BigSur
* Compile fixs
* Rename hirise.asset since linux filenames are case-sensitive
* Modified globals DataStorage method to make Linux and Mac happy
* Switched to unsecure http URLs for satellites due to httprequest problem
* Keep the QApplication around on Mac because of some reason otherwise the keyboard handler crashes
* Add comment explaining the madness
* Apply same techniques to the globalscallback file

Co-authored-by: Micah Acinapura <micahnyc@gmail.com>
Co-authored-by: Gene Payne <payne.gene@gmail.com>
2020-12-07 23:41:20 +01:00
Alexander Bock
efffc25ce0 Feature/globals handling (#1352)
* Cleaner handling of global state
* Prevent Lua memory corruption (closes #982)
* Initialize glfw first thing to prevent weird joystick loading bug during startup
2020-10-21 22:30:05 +02:00
Alexander Bock
af6e15da40 Merge remote-tracking branch 'origin/master' into feature/openglstatecache
# Conflicts:
#	ext/ghoul
#	modules/digitaluniverse/rendering/renderablebillboardscloud.cpp
#	modules/digitaluniverse/rendering/renderableplanescloud.cpp
#	src/util/screenlog.cpp
2020-09-04 14:02:17 +02:00
Alexander Bock
00a00c9cc8 Merge branch 'master' into feature/general-performance
# Conflicts:
#	apps/OpenSpace/main.cpp
#	modules/server/src/topics/timetopic.cpp
2020-09-04 13:49:00 +02:00
Alexander Bock
20d1e391cb Adding a new ImGui component for explicitly adding GIBS layer 2020-09-01 02:27:08 +02:00
Jonathas Costa
25cd3fdc0b Merged master again. 2020-08-24 13:44:26 -04:00
Jonathas Costa
f0c397d6be Merged maste. Changed code in multiple places to have the new memory pool working on linux (experimental yet). 2020-08-20 15:34:40 -04:00
Alexander Bock
e93f1833be Make more use of temporary string objects in the TimeQuantizer
Add GPU markers to the rendering
2020-08-19 18:26:11 +02:00
Alexander Bock
cabb962f6a Use temporary memory arena to create unsorted list of tiles, preventing dynamic memory allocations 2020-08-13 16:48:18 +02:00
Alexander Bock
b78d1dd033 Merge branch 'master' into feature/memory-allocations
# Conflicts:
#	include/openspace/scene/scenegraphnode.h
#	modules/imgui/include/gui.h
2020-08-05 19:06:04 +02:00
Alexander Bock
6e9db78f40 Remove performance measurements that have been supersceded by using Tracy 2020-08-05 18:28:08 +02:00
Alexander Bock
25247c7a37 Create SceneGraphNodes in memory pool 2020-08-05 10:46:16 +02:00
Alexander Bock
e783807d66 Next step towards enabling a managed memory version of templatefactory 2020-08-04 21:56:39 +02:00
Alexander Bock
1e9df1cb4b Merge branch 'master' into feature/profiles
# Conflicts:
#	include/openspace/scene/assetloader.h
#	src/scene/assetloader.cpp
2020-06-14 17:54:25 +02:00
Alexander Bock
3a1bec6e7d Merge branch 'master' into feature/license 2020-06-12 17:36:31 +02:00
Alexander Bock
433d96bbb4 SGCT compile fix
First pass for pull request
2020-06-11 00:24:58 +02:00
Alexander Bock
3b427bfd15 Cleaning up window delegate 2020-05-10 15:17:51 +02:00
Alexander Bock
d1e5670ce5 More cleanup of asset ownership 2020-05-09 18:33:01 +02:00
Alexander Bock
befef58e80 More cleanup 2020-05-06 21:54:02 +02:00
Alexander Bock
340444ce0d Cleanup AssetManager class 2020-05-06 21:40:23 +02:00
Alexander Bock
01f0a864dc Yet more cleanup of Asset-related files 2020-05-06 20:33:27 +02:00
Alexander Bock
5e37cb5ac3 Some coding style cleanup 2020-03-28 20:45:14 +01:00
Mikael Pettersson
fb7036c497 Made imgui handle touch input as the webgui does
Also removed imgui-handling code in touchinteraction
2020-03-11 13:23:46 +01:00
Alexander Bock
5e29145395 Coding style cleanup 2020-02-14 19:37:06 +01:00
Alexander Bock
d8e9db76a3 Update the copyright header to 2020 2020-02-10 21:51:01 +01:00
Alexander Bock
49c793d976 Update Ghoul version
Add initial Tracy profiling macros
2020-02-10 14:50:41 +01:00
Alexander Bock
9491f73803 More GLM initialization fixes 2020-02-10 01:18:27 +01:00
Alexander Bock
24ce773da9 Update GLM version
Correctly initialize all values as they are no longer default-initialized
2020-02-10 00:09:31 +01:00
eriksunden
e3b3aec1ed Fixed issue 1049(using first viewport size as framebuffer size) and 554(loading and ending screen will be visible on the first viewport only). Also fixed such that Lua Console adapts to window size and not framebuffer size. 2020-01-24 15:53:29 +01:00
Alexander Bock
8f112fa219 Compile and runtime fixes when running in Debug
Do not crash if ScreenSpaceLocalImage does not exist
Add ability to specify identifier/name when adding screenspace items in the UI
2019-07-22 14:14:12 +02:00
Alexander Bock
0c36a999d2 Fix for globebrowsing widget in ImGUI 2019-05-27 13:46:12 +02:00
Alexander Bock
595cbc4bcf Feature/cleanup (#837)
* Style guide fixes
* Various cleanups
* Update SGCT
2019-05-03 13:27:43 +02:00
Emil Axelsson
0dcf65ce4f Feature/cef speedup (#806)
* Improve cmake errors
  * Calling doMessageLoopWork more often to increase gui performance
  * Introduce frequent callbacks
  * Restructure browser update callbacks
  * Cleanup cef speedup
  * Add flag to toggle updating browser between renderable calls
  * CEF should not be used in single process mode
  * Update CEF version
  * Postbuild step for finding framework from web helper
  * Load libcef dynamically to fix issue with CEF update
  * Only include dynamic library loader on mac
  * Improve keyboard mapping support on MacOS
  * Add arrow keys
  * Rename manifest
  * Fix bug with missing blinking cursor in text fields
  * Bump minimum cmake version
  * CEF fixes: Runtime and correct helper path
  * Be true to actual sandbox compatibility specified by CEF
  * Cleanup
2019-04-24 10:53:46 +02:00
Alexander Bock
bb3db7ada7 Feature/jenkins fix (#816)
* Cleanup
* CMake cleanups
* Update current year
* Update copyright header
* Use script to return list of all modules
* Update credits, license and ghoul
2019-03-24 11:19:39 +01:00
Emil Axelsson
738a5900d4 Patch imgui to work with new anchor and aim structure 2019-02-20 10:26:09 +01:00
Emil Axelsson
2e71eaa4cb Feature/anchor and aim (#799)
Introduce the ability to navigate using an anchor and aim.
Example use: Set spacecraft as anchor and planet as aim to always look down at a planet, while followin the spacecraft in its orbit.
2019-02-19 18:46:58 +01:00
Emil Axelsson
f60371bdbc Pass on modifier keys to CEF for mouse events (#790)
* Update sgct
* Pass on modifier keys to CEF for mouse events
2019-02-04 15:14:51 +01:00
Alexander Bock
c7639adb15 Remove warnings in Clang 2019-01-19 14:49:31 +01:00
Alexander Bock
c7a96a6b59 Address clang tidy complaints
Update Ghoul repository
Update SGCT repository
2018-11-30 15:34:09 -05:00
Alexander Bock
9d0f0e00df Revert native ui back to F1 keybind for toggling 2018-11-21 11:14:11 -05:00
Emil Axelsson
7181de4673 Feature/webgui ops (#723)
* Update node packages, download nodejs in build process, start server from openspace process
  * Patch CEF cmake automatically
  * Build webserver automatically
  * Work on CMake for WebBrowser, Webgui and CefWebGui
  * Map key modifiers to CEF
  * Smooth time interpolation in webgui
  * Automatically focus on search field in filter lists
  * Move webgui code to external repositories
  * Use asset system to distribute webgui
  * Remove webgui from main repository
  * Add support for right click in webgui and improve timetopic
  * Resolve cmake policy warning
  * Add relative time interpolation to lua interface
  * Sanitize json error message before logging error. Workaround for #736
  * Added gui properties to scene graph nodes
  * Add version topic
  * Add shortcuttopic
  * Add ability to disable rendering of cefwebgui
  * Don't do message loop work if there is no browser.
  * Set correct path to nodejs on unix
  * Message loop work in presync
  * modifications for shortcuts in gui, added names for shortcuts
  * Set properties via lua scripts
  * Allow gui grouping for shortcuts
  * Add gui paths keybindings
  * Blocking keyboard callbacks when webgui has keyboard focus in an editable field
  * Allow disabling of WebBrowser and CefWebGui
  * Make it possible to hide GUI
  * Get rid of redundant dashboard items if web gui is used
  * Hide WebGUI on slave nodes
  * Hide WebGUI on main rendering window if a GUI window exists
 * Enable WebGUI on default unless it is overwritten in the openspace.cfg
  * Add guiName for propery owners in socket api
2018-11-05 20:45:38 -05:00
Gene Payne
b671ad35e6 Feature/session recording (#737)
* In progress with new version of session recording

* Session recording coding pass for both record and playback, not building yet.

* Working on getting first build of prototype

* Code changes to get playback working with all 3 timing modes

* Fixing session recording interactions with the timemanager

* Bug fixes for newly discovered timing issues, mothballing recording of timing updates

* Fixed camera jitter issue

* Updated new reference to latest ghoul

* Got session recording/playback working with changes made in master

* Added threshold for differences in camera movement as criteria for saving to recording file

* Added support for binary file for session recording/playback

* Minor changes with handling timeManager keyframes in playback

* New timeline structure & keyframes specific to session recording

* Fixed bug with fixed-script size

* Switched to new timeline specific to session recording, bug fixes, currently debugging camera position & rotation

* Formatting changes only

* Fixed scripts not working after timeline change

* Add session recording test scene

* Fixed problem with re-running the same playback multiple times

* Fixed problems with camera interpolation

* Fixed detection of camera playback finishing, and improved camera interpolation

* Added comments for interface of externInteraction include

* Fixed view frustum culling issues in session playback due to not appropiate camera scaling. Also made function in datamessagestructures to read and write this data to streams.

* Added camera scaling fix to code that supports Ascii format

* Added startPlayback default command for playing back while forcing simulation time to match the recording

* Fixed camera jump in sessionRecording after playback finished. Cleanup in playback of camera to re-use same functionality in keyframenavigator.

* Superb fix to sessionRecording. Realized focusNode of globalNavigationHandler needed to be activly update when camera change for either position of camera to be accurate or for rendered objects to be calculated without precision issues. Can now achieve a correct playback, even close to chunks/renderable, which was not possible before.

* sessionRecording cleanup, fixed all warnings and renamed files to lowercase to match current standards.

* Added error handling for bad input playback filename, protection from corrupted playback file

* Implemented code review changes on pull request #737 for sessionRecording
2018-11-01 18:24:10 -06:00
Alexander Bock
920ae7c374 ImGui cleanup
Update Ghoul
2018-10-31 11:12:20 -04:00
Alexander Bock
9047dc7a3e Feature/globebrowsing speedup (#735)
* Removal of ChunkRenderer, ChunkedLodGlobe, ChunkCuller, chunklevel evaluator, culling classes, layershadermanager, GpuLayer, GPUData, ChunkNode, Grid, BasicGrid, Chunk files, Angle, AABB classes, PointGlobe, Ellipsoid, TileSelector, tiledatatype, iodescription, simplerawtilerreader, rawtilereader
 * Less dynamic allocation for SkirtedGrid, LayerManager, RenderableGlobe, TextureUnit
 * Clean up memory management in RawTiles
 * Code simplification
 * Optimize shader uniform setting
 * Introduce UniformCache
 * Callback simplification
 * Turn ChunkNode into a struct
 * Use a MemoryPool to organize all ChunkNodes rather than use unique_ptr and the necessary memory allocation
 * Collect draw calls
 * Consolidate fragment shaders between local and global renderer
 * Shader cleanup and optimization
 * Update CMake to not include included shaders
 * Integrate traversal function into the looping
 * Replace std::queue with std::vector
 * Merge TextureContainer into MemoryAwareTileCache
 * Lazy computation of chunk bounding boxes
 * Memory management of LayerGroup
 * Remove class hierarchy from tileproviders (temporaltileprovider not working yet)
 * Remove PBO classes
* Chunk status stored in Chunk
* Don't create a copy of the ChunkTilePile
* Enable culling by projected area on default
* Have raw tile reader return a Tile instead of a shared_ptr to a tile
* Start making GDAL mandatory
* Increase the default lod scale factor to 15
2018-10-30 17:20:06 -04:00