diff --git a/src/gl/renderer/gl_renderer.cpp b/src/gl/renderer/gl_renderer.cpp index ec0680bbc..ea48d6486 100644 --- a/src/gl/renderer/gl_renderer.cpp +++ b/src/gl/renderer/gl_renderer.cpp @@ -52,7 +52,6 @@ #include "gl/system/gl_interface.h" #include "gl/system/gl_framebuffer.h" -#include "gl/system/gl_threads.h" #include "gl/system/gl_cvars.h" #include "gl/renderer/gl_renderer.h" #include "gl/renderer/gl_lightdata.h" @@ -76,8 +75,6 @@ // //=========================================================================== -EXTERN_CVAR(Bool, gl_render_segs) - //----------------------------------------------------------------------------- // // Initialize @@ -117,14 +114,12 @@ void FGLRenderer::Initialize() SetupLevel(); mShaderManager = new FShaderManager; mSamplerManager = new FSamplerManager; - //mThreadManager = new FGLThreadManager; } FGLRenderer::~FGLRenderer() { gl_DeleteAllAttachedLights(); FMaterial::FlushAll(); - //if (mThreadManager != NULL) delete mThreadManager; if (mShaderManager != NULL) delete mShaderManager; if (mSamplerManager != NULL) delete mSamplerManager; if (mVBO != NULL) delete mVBO; diff --git a/src/gl/renderer/gl_renderer.h b/src/gl/renderer/gl_renderer.h index aee400def..90f2c4a46 100644 --- a/src/gl/renderer/gl_renderer.h +++ b/src/gl/renderer/gl_renderer.h @@ -16,7 +16,6 @@ struct FDrawInfo; struct pspdef_t; class FShaderManager; class GLPortal; -class FGLThreadManager; class FLightBuffer; class FSamplerManager; @@ -58,7 +57,6 @@ public: AActor *mViewActor; FShaderManager *mShaderManager; FSamplerManager *mSamplerManager; - FGLThreadManager *mThreadManager; int gl_spriteindex; unsigned int mFBID; diff --git a/src/gl/scene/gl_bsp.cpp b/src/gl/scene/gl_bsp.cpp index 5bdb99b88..4de31bd61 100644 --- a/src/gl/scene/gl_bsp.cpp +++ b/src/gl/scene/gl_bsp.cpp @@ -186,20 +186,9 @@ static void AddLine (seg_t *seg) { SetupWall.Clock(); - //if (!gl_multithreading) - { - GLWall wall; - wall.sub = currentsubsector; - wall.Process(seg, currentsector, backsector); - } - /* - else - { - FJob *job = new FGLJobProcessWall(currentsubsector, seg, - currentsector->sectornum, backsector != NULL? backsector->sectornum : -1); - GLRenderer->mThreadManager->AddJob(job); - } - */ + GLWall wall; + wall.sub = currentsubsector; + wall.Process(seg, currentsector, backsector); rendered_lines++; SetupWall.Unclock(); @@ -341,21 +330,11 @@ static inline void RenderThings(subsector_t * sub, sector_t * sector) sector_t * sec=sub->sector; if (sec->thinglist != NULL) { - //if (!gl_multithreading) + // Handle all things in sector. + for (AActor * thing = sec->thinglist; thing; thing = thing->snext) { - // Handle all things in sector. - for (AActor * thing = sec->thinglist; thing; thing = thing->snext) - { - GLRenderer->ProcessSprite(thing, sector); - } + GLRenderer->ProcessSprite(thing, sector); } - /* - else if (sec->thinglist != NULL) - { - FJob *job = new FGLJobProcessSprites(sector); - GLRenderer->mThreadManager->AddJob(job); - } - */ } SetupSprite.Unclock(); } @@ -416,20 +395,10 @@ static void DoSubsector(subsector_t * sub) { SetupSprite.Clock(); - //if (!gl_multithreading) + for (i = ParticlesInSubsec[DWORD(sub-subsectors)]; i != NO_PARTICLE; i = Particles[i].snext) { - for (i = ParticlesInSubsec[DWORD(sub-subsectors)]; i != NO_PARTICLE; i = Particles[i].snext) - { - GLRenderer->ProcessParticle(&Particles[i], fakesector); - } + GLRenderer->ProcessParticle(&Particles[i], fakesector); } - /* - else if (ParticlesInSubsec[DWORD(sub-subsectors)] != NO_PARTICLE) - { - FJob job = new FGLJobProcessParticles(sub); - GLRenderer->mThreadManager->AddJob(job); - } - */ SetupSprite.Unclock(); } @@ -476,17 +445,7 @@ static void DoSubsector(subsector_t * sub) srf |= SSRF_PROCESSED; SetupFlat.Clock(); - //if (!gl_multithreading) - { - GLRenderer->ProcessSector(fakesector); - } - /* - else - { - FJob *job = new FGLJobProcessFlats(sub); - GLRenderer->mThreadManager->AddJob(job); - } - */ + GLRenderer->ProcessSector(fakesector); SetupFlat.Unclock(); } // mark subsector as processed - but mark for rendering only if it has an actual area. diff --git a/src/gl/system/gl_cvars.h b/src/gl/system/gl_cvars.h index 567d9f85f..cedeec06a 100644 --- a/src/gl/system/gl_cvars.h +++ b/src/gl/system/gl_cvars.h @@ -36,7 +36,6 @@ EXTERN_CVAR(Bool,gl_mirror_envmap) EXTERN_CVAR(Bool,gl_mirrors) EXTERN_CVAR(Bool,gl_mirror_envmap) -EXTERN_CVAR(Bool, gl_render_segs) EXTERN_CVAR(Bool, gl_seamless) EXTERN_CVAR(Float, gl_mask_threshold) diff --git a/src/gl/system/gl_threads.h b/src/gl/system/gl_threads.h deleted file mode 100644 index 68919776c..000000000 --- a/src/gl/system/gl_threads.h +++ /dev/null @@ -1,247 +0,0 @@ -#if 0 //ndef __GL_THREADS_H -#define __GL_THREADS_H - -#ifdef WIN32 -#include -#endif - -#include "critsec.h" - -// system specific Base classes - should be externalized to a separate header later. -#ifdef WIN32 -class FEvent -{ - HANDLE mEvent; - -public: - - FEvent(bool manual = true, bool initial = false) - { - mEvent = CreateEvent(NULL, manual, initial, NULL); - } - - ~FEvent() - { - CloseHandle(mEvent); - } - - void Set() - { - SetEvent(mEvent); - } - - void Reset() - { - ResetEvent(mEvent); - } -}; - -class FThread -{ -protected: - uintptr_t hThread; - bool mTerminateRequest; -public: - - FThread(int stacksize) - { - hThread = _beginthreadex(NULL, stacksize, StaticRun, this, 0, NULL); - } - - virtual ~FThread() - { - CloseHandle((HANDLE)hThread); - } - - void SignalTerminate() - { - mTerminateRequest = true; - } - - virtual void Run() = 0; - -private: - static unsigned __stdcall StaticRun(void *param) - { - FThread *thread = (FThread*)param; - thread->Run(); - return 0; - } - -}; - -#else -class FEvent -{ -public: - - FEvent(bool manual = true, bool initial = false) - { - } - - ~FEvent() - { - } - - void Set() - { - } - - void Reset() - { - } -}; - -class FThread -{ -protected: - bool mTerminateRequest; -public: - - FThread(int stacksize) - { - } - - virtual ~FThread() - { - } - - void SignalTerminate() - { - mTerminateRequest = true; - } - - virtual void Run() = 0; -}; - -#endif - - - -enum -{ - CS_ValidateTexture, - CS_Hacks, - CS_Drawlist, - CS_Portals, - - MAX_GL_CRITICAL_SECTIONS -}; - -class FJob -{ - friend class FJobQueue; - FJob *pNext; - FJob *pPrev; - -public: - FJob() { pNext = pPrev = NULL; } - virtual ~FJob(); - virtual void Run() = 0; -}; - -class FJobQueue -{ - FCriticalSection mCritSec; // for limiting access - FEvent mEvent; // signals that the queue is emoty or not - FJob *pFirst; - FJob *pLast; - -public: - FJobQueue(); - ~FJobQueue(); - - void AddJob(FJob *job); - FJob *GetJob(); -}; - -class FJobThread : public FThread -{ - FJobQueue *mQueue; - -public: - FJobThread(FJobQueue *queue); - ~FJobThread(); - void Run(); -}; - -class FGLJobProcessWall : public FJob -{ - seg_t *mSeg; - subsector_t *mSub; - int mFrontsector, mBacksector; -public: - FGLJobProcessWall(seg_t *seg, subsector_t *sub, int frontsector, int backsector) - { - mSeg = seg; - mSub = sub; - mFrontsector = frontsector; - mBacksector = backsector; - } - - void Run(); -}; - -class FGLJobProcessSprites : public FJob -{ - sector_t *mSector; -public: - FGLJobProcessSprites(sector_t *sector); - void Run(); -}; - -class FGLJobProcessParticles : public FJob -{ - subsector_t *mSubsector; -public: - FGLJobProcessParticles(subsector_t *subsector); - void Run(); -}; - -class FGLJobProcessFlats : public FJob -{ - subsector_t *mSubsector; -public: - FGLJobProcessFlats(subsector_t *subsector); - void Run(); -}; - - -class FGLThreadManager -{ -#if 0 - FCriticalSection mCritSecs[MAX_GL_CRITICAL_SECTIONS]; - FJobQueue mJobs; - FJobThread *mThreads[2]; - -public: - FGLThreadManager() {} - ~FGLThreadManager() {} - - void StartJobs(); - - void PauseJobs(); - - void EnterCS(int index) - { - mCritSecs[index].Enter(); - } - - void LeaveCS(int index) - { - mCritSecs[index].Leave(); - } - - void AddJob(FJob *job) - { - mJobs.AddJob(job); - } - - FJob *GetJob() - { - return mJobs.GetJob(); - } -#endif -}; - -#endif \ No newline at end of file