- Fix portals crashing softpoly

This commit is contained in:
Magnus Norddahl 2017-09-10 02:17:18 +02:00
commit 4706c56690
4 changed files with 36 additions and 43 deletions

View file

@ -33,7 +33,7 @@ class RenderMemory;
class PolyRenderThread
{
public:
PolyRenderThread(bool mainThread = true);
PolyRenderThread(int threadIndex);
~PolyRenderThread();
void FlushDrawQueue();
@ -41,15 +41,11 @@ public:
int Start = 0;
int End = 0;
bool MainThread = false;
int ThreadIndex = 0;
std::unique_ptr<RenderMemory> FrameMemory;
DrawerCommandQueuePtr DrawQueue;
std::vector<PolyTranslucentObject *> TranslucentObjects;
std::vector<std::unique_ptr<PolyDrawSectorPortal>> SectorPortals;
std::vector<std::unique_ptr<PolyDrawLinePortal>> LinePortals;
// Make sure texture can accessed safely
void PrepareTexture(FTexture *texture);
@ -74,6 +70,7 @@ public:
void RenderThreadSlices(int totalcount, std::function<void(PolyRenderThread *)> workerCallback, std::function<void(PolyRenderThread *)> collectCallback);
PolyRenderThread *MainThread() { return Threads.front().get(); }
int NumThreads() const { return (int)Threads.size(); }
private:
void RenderThreadSlice(PolyRenderThread *thread);