summaryrefslogtreecommitdiffstats
path: root/src/LightingThread.h
diff options
context:
space:
mode:
authorworktycho <work.tycho@gmail.com>2014-06-16 18:37:07 +0200
committerworktycho <work.tycho@gmail.com>2014-06-16 18:37:07 +0200
commit4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f (patch)
treedccc512f48903e55086ad9624cd2f98dba1df6f9 /src/LightingThread.h
parentFixed gcc compilation. (diff)
parentFixed link errors (diff)
downloadcuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar.gz
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar.bz2
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar.lz
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar.xz
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.tar.zst
cuberite-4fddbf9dfc9375a2ef1da8a0fe68cf0f8b09187f.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);