diff options
author | madmaxoft <github@xoft.cz> | 2014-04-12 00:04:50 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-04-12 00:04:50 +0200 |
commit | 8bcb176a19297bca4f55f03a5244a507f8bf9174 (patch) | |
tree | ed22703e76ec4e30e5b785ae165228394a39a698 /src/LightingThread.h | |
parent | Fixed issues with 64-bit MSVC compilation. (diff) | |
download | cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar.gz cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar.bz2 cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar.lz cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar.xz cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.tar.zst cuberite-8bcb176a19297bca4f55f03a5244a507f8bf9174.zip |
Diffstat (limited to '')
-rw-r--r-- | src/LightingThread.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/LightingThread.h b/src/LightingThread.h index 770ae809f..a484fcbed 100644 --- a/src/LightingThread.h +++ b/src/LightingThread.h @@ -108,6 +108,9 @@ protected: cEvent m_evtItemAdded; // Set when queue is appended, or to stop the thread cEvent m_evtQueueEmpty; // Set when the queue gets empty + /** The highest block in the current 3x3 chunk data */ + HEIGHTTYPE m_MaxHeight; + // Buffers for the 3x3 chunk data // These buffers alone are 1.7 MiB in size, therefore they cannot be located on the stack safely - some architectures may have only 1 MiB for stack, or even less @@ -136,8 +139,8 @@ protected: /** Lights the entire chunk. If neighbor chunks don't exist, touches them and re-queues the chunk */ void LightChunk(cLightingChunkStay & a_Item); - /** Prepares m_BlockTypes and m_HeightMap data; returns false if any of the chunks fail. Zeroes out the light arrays */ - bool ReadChunks(int a_ChunkX, int a_ChunkZ); + /** Prepares m_BlockTypes and m_HeightMap data; zeroes out the light arrays */ + void ReadChunks(int a_ChunkX, int a_ChunkZ); /** Uses m_HeightMap to initialize the m_SkyLight[] data; fills in seeds for the skylight */ void PrepareSkyLight(void); @@ -145,6 +148,10 @@ protected: /** Uses m_BlockTypes to initialize the m_BlockLight[] data; fills in seeds for the blocklight */ void PrepareBlockLight(void); + /** Same as PrepareBlockLight(), but uses a different traversal scheme; possibly better perf cache-wise. + To be compared in perf benchmarks. */ + void PrepareBlockLight2(void); + /** Calculates light in the light array specified, using stored seeds */ void CalcLight(NIBBLETYPE * a_Light); |