diff options
author | Mattes D <github@xoft.cz> | 2014-10-28 22:29:46 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-10-28 22:29:46 +0100 |
commit | 791f8912125b8b522b8ba197f34c9e2ffb286911 (patch) | |
tree | eae9d305bd7ad06e988a6db4a03d760ded42a6ef /Tools/QtBiomeVisualiser/RegionLoader.h | |
parent | cIntGen: Added a virtual destructor. (diff) | |
parent | QtBiomeVisualiser: Added quick shutdown to region loaders. (diff) | |
download | cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar.gz cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar.bz2 cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar.lz cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar.xz cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.tar.zst cuberite-791f8912125b8b522b8ba197f34c9e2ffb286911.zip |
Diffstat (limited to 'Tools/QtBiomeVisualiser/RegionLoader.h')
-rw-r--r-- | Tools/QtBiomeVisualiser/RegionLoader.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Tools/QtBiomeVisualiser/RegionLoader.h b/Tools/QtBiomeVisualiser/RegionLoader.h new file mode 100644 index 000000000..6bbb4aa60 --- /dev/null +++ b/Tools/QtBiomeVisualiser/RegionLoader.h @@ -0,0 +1,56 @@ +#pragma once + +#include <QObject> +#include <QRunnable> +#include <memory> + + + + +// fwd: +class Region; +typedef std::shared_ptr<Region> RegionPtr; + +class ChunkSource; +typedef std::shared_ptr<ChunkSource> ChunkSourcePtr; + + + + + +class RegionLoader : + public QObject, + public QRunnable +{ + Q_OBJECT + +public: + RegionLoader(int a_RegionX, int a_RegionZ, RegionPtr a_Region, ChunkSourcePtr a_ChunkSource); + virtual ~RegionLoader() {} + + /** Signals to all loaders that the app is shutting down and the loading should be aborted. */ + static void shutdown() { m_IsShuttingDown = true; } + +signals: + void loaded(int a_RegionX, int a_RegionZ); + +protected: + virtual void run() override; + +private: + /** Coords of the region to be loaded. */ + int m_RegionX, m_RegionZ; + + /** The region to be loaded. */ + RegionPtr m_Region; + + /** The chunk source to be used for individual chunks within the region. */ + ChunkSourcePtr m_ChunkSource; + + /** Flag that is set upon app exit to terminate the queued loaders faster. */ + static volatile bool m_IsShuttingDown; +}; + + + + |