From 7a9925f982e43fcc1d798318905d83b5805b12cc Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 17 Feb 2012 18:24:34 +0000 Subject: Added the skeleton of the cLightingThread object git-svn-id: http://mc-server.googlecode.com/svn/trunk@286 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/LightingThread.cpp | 114 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 source/LightingThread.cpp (limited to 'source/LightingThread.cpp') diff --git a/source/LightingThread.cpp b/source/LightingThread.cpp new file mode 100644 index 000000000..e70dc252e --- /dev/null +++ b/source/LightingThread.cpp @@ -0,0 +1,114 @@ + +// LightingThread.cpp + +// Implements the cLightingThread class representing the thread that processes requests for lighting + +#include "Globals.h" +#include "LightingThread.h" + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cLightingThread: + +cLightingThread::cLightingThread(void) : + super("cLightingThread") +{ +} + + + + + +cLightingThread::~cLightingThread() +{ + Stop(); +} + + + + + +void cLightingThread::Stop(void) +{ + { + cCSLock Lock(m_CS); + for (cLightingBufferQueue::iterator itr = m_Queue.begin(); itr != m_Queue.end(); ++itr) + { + delete *itr; + } // for itr - m_Queue[] + } + mShouldTerminate = true; + m_Event.Set(); + + Wait(); +} + + + + + +void cLightingThread::QueueLighting(cWorld * a_World, int a_MinX, int a_MaxX, int a_MinY, int a_MaxY, int a_MinZ, int a_MaxZ) +{ + // TODO +} + + + + + +void cLightingThread::Execute(void) +{ + // TODO +} + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cLightingThread::cLightingBuffer: + +cLightingThread::cLightingBuffer::cLightingBuffer(int a_MinX, int a_MaxX, int a_MinY, int a_MaxY, int a_MinZ, int a_MaxZ) : + m_MinX(a_MinX), + m_MaxX(a_MaxX), + m_MinY(a_MinY), + m_MaxY(a_MaxY), + m_MinZ(a_MinZ), + m_MaxZ(a_MaxZ) +{ + // TODO: initialize strides +} + + + + + +void cLightingThread::cLightingBuffer::GetFromWorld(cWorld * a_World) +{ + // TODO: Set m_BlockData, m_SkyLight and m_BlockLight from the world's chunks +} + + + + + +void cLightingThread::cLightingBuffer::SetToWorld (cWorld * a_World) +{ + // TODO: Set world's chunks from m_BlockData, m_SkyLight and m_BlockLight +} + + + + + +void cLightingThread::cLightingBuffer::Process(void) +{ + // TODO: Does the actual lighting on this buffer +} + + + + -- cgit v1.2.3