Commit Graph

126 Commits

Author SHA1 Message Date
Kalle Bladin
f51f293989 Feature/globebrowsing optimization (#310)
* Simplest possible PBO implementation.

* Add PBO class

* TileLoadJob owns raw tile data

* Working on a soluton to cache textures and reuse them

* PBO and cached textures working for one texture type. Color textures.

* Threadpool for tile requests uses LRU cache as queue

* Remove framesUntilRequestFlush

* Clean up

* Clean up

* Use prioritizing concurrent job manager

* Use TileTextureInitData to initialize RawTileDataReader.

* Class TextureContainer owns the textures to use for tiles.

* Using TileTextureInitData to determine if new caches need to be created.

* Remove WriteDataDescription

* Remove TileDataLayout

* Rendering many different layer types again

* TileProviderByLevel gives layergroup id to tile providers

* Comment away use of PBO

* Erase unfinished requests to make room for new ones

* Enable choice of PBO or not.

* Enable resetting of asynctiledataprovider

* Add the ability to use PBO and also load to CPU

* Update ghoul

* Solve culling issue.

* Texture pointer of Tile is now a raw pointer. Currently break single image tile provider and text tile provider.

* Add gpudata

* Move fetching of shader preprocessing data to LayerManager

* No comparisons to determine shader recompilation.

* Show the tile cache size in the GUI

* Clean up and comment.

* Solve bug where float is interpreted as NaN

* Enable ability to blend between layers again

* Fix single image provider

* Fix windows build error

* Fix OSX compile issue.

* Some clean up

* Showing correct texture data size

* Enable use of text tile providers again. No backgroupd image path however.

* Change cache size from GUI

* Clean up

* Solve osx compilation error.

* Update ghoul

* Make it possible to switch between PBO and not during runtime.

* Enable resetting of tile datasets

* change function module in moduleengine to identify module by name

* MemoryAwareTileCache is no longer a singleton

* Update ownership of properties for globe browsing

* Logging info about resetting tile reader.

* Logging info

* Fix requested changes

* Fix some compile warnings.

* Fix compilation warnings

* Add ability to blend values with blend parameter. Also define settings through lua dict.

* Fix some comments on pull request.

* Change formatting

* Change formatting

* Change formatting

* Fix pull request comments.

* Those are details

* Make Mercury great again.

* Make Earth great again.

* Solve conflict

* Test to sometimes use valueblending and sometimes not

* Not always use value blending

* Update ghoul

* Change from auto to explicit type.

* Update test for LRU Cache

* Include algorithm.
2017-05-30 15:37:05 +02:00
Emil Axelsson
752081d31b feature/time-refactor (#294)
- Change Time class to become a non-singleton
- Move ownership of the current time to TimeManager(instead of singleton access).
- Store the Time as a Syncable in TimeManager instead of representing all member variables of Time as Syncables.
- Pass a Time object around in the update/render methods, so that renderables don't have to query the OpenSpaceEngine to know if time is paused or if it jumped.
- Introduce Timeline and Keyframe classes
- Make use of Timelineand Keyframeclasses in KeyframeInteractionMode and TimeManager
- Added basic unit tests for Timelineand Keyframe

Future work: Add interpolation schemes for keyframes. Possibly use keyframes+interpolation feature to tween/morph properties, or figure out if this should be a separate mechanism.
2017-05-22 14:01:08 +02:00
Alexander Bock
f4ad2ce4c2 More include file cleanup 2017-05-15 15:27:59 -04:00
Alexander Bock
bf16c76add Feature/opengldebug (#290)
* Add InLIstVerifier

* Initial implementation of OpenGL debug messages

* Moving functionality into Ghoul

* Compile fix

* Update Ghoul repository
Make use of the moved OpenGL debug functions

* Update Ghoul to fix GCC and Clang compiler errors

* Add unit test for IntListVerifier
2017-04-18 14:29:23 -04:00
Kalle Bladin
8a617ee254 Feature/globebrowsing (#281)
* Solve bug related to corrupted texture tiles for certain sizes.

* Regard layer settings when sampling height map.

* Make Tile in to a class instead of a struct.

* Memory aware lru cache. Needs cleanup.

* Clean up and comment.

* Clean up and comment.

* Clean up

* Clean up and comment.

* Fix compilation error on Windows.

* Specify data type explicitly in GDAL xml config files for Utah height maps. Closes #242

* Update the key type for the memory aware lru cache and use a unordered map instead of a map.

* Solve pixel row size bug.

* Solve initialization bug.

* Add cache size as property of the globe browsing module.

* Use memory aware tile cache for text tile provider.

* Log GDAL errors as GHOUL messages

* Add the ability to toggle tile level limiting by available data

* Add ability to toggle GDAL logging

* Add lock guard to memory aware tile cache

* create base class rawtiledatareader that can be extended with different implementations than GDAL.

* Let GdalWrapper take care of global GDAL settings.

* Move iodescription to separate file

* Move some functionality from gdalrawtiledatareader to rawtiledatareader

* Move functionality from gdalrawtiledatareader to rawtiledatareader.

* GDAL is no longer a necessary dependency for the globebrowsing module. However to read tiles, the SimpleRawTileDataReader needs to be implemented. Otherwise GDAL is needed.

* Add ifdef check for GLOBEBROWSING_USE_GDAL

* Implement SimpleRawTileDataReader. Currently can only read pow 2 textures.

* Change ints to unsigned long longs

* Limit number of texture creations per tile provider per frame

* Solve linker error on windows

* Fix Windows build errors

* Fix crash in reading local patches

* Update lodglobe descriptions

* Abstract away overviews in gdal raw tile data reader

* Update Mars and Moon configs.

* Update screenshot script

* Update ghoul version

* Remove use of interaction depth below ellipsoid

* Normalize direction vector

* Use scale for distance swotch

* Go back to use of interaction depth below ellipsoid

* Fix comments on pull request.

* TileProviderByLevel error does not propagate up.

* Comment on mars and moon mod file

* Add model space cut off level as a property

* Update ChunkTile struct

* Minor clean up

* Go back tu constructor for ChunkTile
2017-04-13 10:14:47 +02:00
Alexander Bock
fabe6dafd9 Remove warnings
- Unit tests
  - core
2017-04-10 14:17:25 -04:00
Emil Axelsson
b06864eefe Merge branch 'develop' of github.com:OpenSpace/OpenSpace into pr/scenegraph-refactor 2017-03-16 16:35:29 +01:00
Alexander Bock
a945c2f9b0 Update GDAL test to use new https format
Disable GDAL test until new Windows GDAL binary is included
2017-03-14 13:48:26 -04:00
Emil Axelsson
ca6348194e Clean up scene loading 2017-03-14 13:40:18 +01:00
Alexander Bock
56d4f891e4 Always throw an assertion in Unit Tests
Update Ghoul repository
2017-03-13 13:01:51 -04:00
Emil Axelsson
7da999c332 Merge branch 'develop' of github.com:OpenSpace/OpenSpace into pr/scenegraph-refactor
Conflicts:
	include/openspace/engine/openspaceengine.h
	src/engine/openspaceengine.cpp
	src/engine/settingsengine.cpp
	src/engine/syncengine.cpp
	src/interaction/interactionhandler.cpp
	src/rendering/renderengine.cpp
	src/scene/scene.cpp
	src/scene/scenegraph.cpp
	src/scene/scenegraphnode.cpp
	tests/test_scenegraphloader.inl
2017-03-07 10:57:50 +01:00
Alexander Bock
bc75334eb4 Use exceptions instead of success return values for initialize and
create methods
2017-02-25 18:08:53 -05:00
Alexander Bock
0d03177d43 Feature/globebrowsingcleanup (#230)
* Initial restructuring of the Globebrowsing branch

* Update Ghoul repository
Fix include guards

* More cleanup

* Split texttileprovider subclasses into separate files

* Move TileProviders into namespace

* Convert static class methods into free functions

* Splitting tile subclasses into their own files
Remove `using namespace` from header file

* Split TileDataSet subclass into separate file
Update SGCT reference

* Move shader preprocessing data into internal class

* More Globebrowsing cleanup

* More cleanup
Remove unused Convexhull class
2017-02-15 21:20:05 +01:00
Alexander Bock
94e3e11188 Update copyright header to 2017
Update Ghoul repository
Remove libgdal link
2017-02-06 18:02:01 -05:00
Emil Axelsson
4751ce36c4 Refactor scene graph: Move scene loading to separate class. 2016-12-30 17:08:50 +01:00
Alexander Bock
dc3ded891b Started with code cleanup of Globebrowsing 2016-12-04 10:34:25 +01:00
Alexander Bock
341bc8b105 Merge branch 'develop' into feature/globebrowsing
# Conflicts:
#	modules/globebrowsing/chunk/chunkrenderer.cpp
#	modules/globebrowsing/globes/renderableglobe.cpp
#	modules/globebrowsing/globes/renderableglobe.h
2016-12-03 01:32:23 +01:00
Alexander Bock
afd60683a3 Windows compile fixes 2016-12-03 01:20:53 +01:00
Alexander Bock
c515bbfd0f Redesign the ScriptScheduler to not copy scripts on return
Fix earth.mod file
2016-12-03 00:51:32 +01:00
Alexander Bock
c199d38aac Add setting to SpiceManager that disables exceptions (closing #142)
Disable exceptions on default
2016-11-24 10:57:53 +01:00
Alexander Bock
cea6edd7ae Update Ghoul reference 2016-11-14 16:15:22 +01:00
Alexander Bock
4ce3be9e8c Add a Verifier for a list of Strings to replace a more cumbersome expression 2016-10-27 15:50:29 +02:00
Alexander Bock
db4524d2ac - Restructure Rotation classes to make the base class store the rotation to remove an additional virtual function
- Add Matrix verifiers
- Add documentation to StaticRotation and SpiceRotation
2016-10-26 16:47:42 +02:00
Alexander Bock
603e671a34 Fix GDAL unit test and make it independent from the scene directory 2016-09-25 14:44:36 +02:00
Alexander Bock
0d95da0959 Sort offenses and warnings in the Documentation/Specification testing 2016-09-25 14:44:08 +02:00
Alexander Bock
3dce9f0f21 Add DeprecationVerifier to the list of available verifiers
Add unit tests for DeprecationVerifier
2016-09-23 23:24:03 +02:00
Alexander Bock
9b9f0ecce8 Add a ReferencingVerifier to the list of available verifiers
Require the Documentations identifier to be unique or empty
2016-09-19 10:32:14 +02:00
Alexander Bock
0a13d5430f Make DocumentationEngine into a singleton object
Add documentation to DocumentationEngine
Add unique identifier to Documentation class (and enforce in DocumentationEngine)
2016-09-19 09:31:34 +02:00
Alexander Bock
29c989ab82 Add documentation to the documentation and verifier classes
Add static const member variable to the DocumentationEntry class for Wildcards
2016-09-18 20:47:41 +02:00
Alexander Bock
4e7035a18d Renaming Offence to Offense
Renaming TestResult::offenders to TestResult::offenses
2016-09-18 15:31:12 +02:00
Alexander Bock
57701fb5a6 Adding information to the Result that specifies the offending reason in addition to the offending key 2016-09-18 15:13:34 +02:00
Alexander Bock
2fa6471e98 Allow Documentations to be exhaustive to not allow extra dictionaries 2016-09-16 16:53:50 +02:00
Alexander Bock
2693b0102e Add VectorVerifiers to check against glm::ivecX, glm::dvecX, and glm::bvecX 2016-09-15 10:38:11 +02:00
Alexander Bock
00efcb7f5f Changing Documentation to enable a name associated with DocumentationEntries 2016-09-15 09:19:21 +02:00
Alexander Bock
752b82c3fb Rearrange Verifiers into their own files
Make Documentation available for ConfigurationManager
2016-09-15 08:08:10 +02:00
Alexander Bock
d84a0ee46a Add and and or verifiers that combine multiple verifiers 2016-09-14 17:35:06 +02:00
Alexander Bock
09c1b4be6d Add unit test to check nested optional/required combinations 2016-09-14 16:38:58 +02:00
Alexander Bock
26d2ca3d32 Support wildcards in documentation 2016-09-14 15:41:05 +02:00
Alexander Bock
dbc9b7ae4e Move documentation to their own folder 2016-09-14 14:44:51 +02:00
Alexander Bock
d606f90db9 Fix compilation error in unit test 2016-09-14 13:33:47 +02:00
Alexander Bock
a4fa9c0788 Add Range checks to unit tests 2016-09-14 09:27:34 +02:00
Alexander Bock
45d034ad2a Enabling optional arguments
Adding tests to the OpenSpaceTest
2016-09-13 20:27:29 +02:00
Alexander Bock
a71cccd58f Adding unit tests file
Adding typedefs for all verifiers
2016-09-13 19:58:58 +02:00
Erik Broberg
5d21878ead Revert concurrent job manager unit tests to use old ThreadPool 2016-08-18 12:21:02 -04:00
Matthew Territo
dd74204eb7 Add ghoul/misc/threadpool.h
Fix namespaces to include ghoul::
2016-08-03 15:04:47 -06:00
Alexander Bock
662e25963b Move ThreadPool class from OpenSpace into Ghoul 2016-08-03 10:58:53 +02:00
Alexander Bock
444f7b6e25 Enable additional warnings
Update Ghoul reference
Fix relative path in test_gdalwms
2016-07-27 14:38:37 +02:00
Alexander Bock
bc137ab377 Updated Spice library. Compile fix for Syncbuffer and Unittestson Linux 2016-07-20 10:41:06 +02:00
Alexander Bock
f19138f513 Fix OpenSpaceTest compilation and test success 2016-07-08 13:55:59 +02:00
Alexander Bock
2b91cb6d7d Start work on compile fixes for unit tests 2016-07-06 17:52:51 +02:00