summaryrefslogtreecommitdiffstats
path: root/src/LightingThread.h
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2014-04-12 00:04:50 +0200
committermadmaxoft <github@xoft.cz>2014-04-12 00:04:50 +0200
commit8bcb176a19297bca4f55f03a5244a507f8bf9174 (patch)
treeed22703e76ec4e30e5b785ae165228394a39a698 /src/LightingThread.h
parentFixed issues with 64-bit MSVC compilation. (diff)
downloadcuberite-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.h11
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);