diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-10-20 20:01:53 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-10-20 20:01:53 +0200 |
commit | 2334c8dd9d6a295e3c445e548b5902c9f49ab532 (patch) | |
tree | 914eb4019ea6ca8e1f3c92198b910c05f3a6ecbc /src/Generating/BioGen.h | |
parent | Migrated cSleep and cTimer to std::chrono (diff) | |
parent | Merge pull request #1554 from SphinxC0re/master (diff) | |
download | cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar.gz cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar.bz2 cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar.lz cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar.xz cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.tar.zst cuberite-2334c8dd9d6a295e3c445e548b5902c9f49ab532.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Generating/BioGen.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/Generating/BioGen.h b/src/Generating/BioGen.h index 22ddfae5c..5fd0844d9 100644 --- a/src/Generating/BioGen.h +++ b/src/Generating/BioGen.h @@ -48,12 +48,12 @@ class cBioGenCache : typedef cBiomeGen super; public: - cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize); // Doesn't take ownership of a_BioGenToCache - ~cBioGenCache(); + cBioGenCache(cBiomeGenPtr a_BioGenToCache, int a_CacheSize); + virtual ~cBioGenCache(); protected: - cBiomeGen * m_BioGenToCache; + cBiomeGenPtr m_BioGenToCache; struct sCacheData { @@ -87,19 +87,21 @@ class cBioGenMulticache : typedef cBiomeGen super; public: - /* - a_CacheSize defines the size of each singular cache - a_CachesLength defines how many caches are used for the multicache - */ - cBioGenMulticache(cBiomeGen * a_BioGenToCache, size_t a_CacheSize, size_t a_CachesLength); // Doesn't take ownership of a_BioGenToCache - ~cBioGenMulticache(); + /* Creates a new multicache - a cache that divides the caching into several sub-caches based on the chunk coords. + This allows us to use shorter cache depths with faster lookups for more covered area. (#381) + a_SubCacheSize defines the size of each sub-cache + a_NumSubCaches defines how many sub-caches are used for the multicache. */ + cBioGenMulticache(cBiomeGenPtr a_BioGenToCache, size_t a_SubCacheSize, size_t a_NumSubCaches); protected: - typedef std::vector<cBiomeGen *> cBiomeGens; + typedef std::vector<cBiomeGenPtr> cBiomeGenPtrs; + + /** Number of sub-caches. Pulled out of m_Caches.size() for faster access. */ + size_t m_NumSubCaches; - size_t m_CachesLength; - cBiomeGens m_Caches; + /** Individual sub-caches. */ + cBiomeGenPtrs m_Caches; virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override; |