Add multi-threaded scene rendering with Job System

This commit is contained in:
Wojtek Figat
2022-11-06 15:35:43 +01:00
parent 183636289a
commit 9c7da16c1a
23 changed files with 564 additions and 160 deletions

View File

@@ -5,6 +5,7 @@
#include "Engine/Core/Delegate.h"
#include "Engine/Core/Collections/Array.h"
#include "Engine/Core/Math/BoundingSphere.h"
#include "Engine/Core/Math/BoundingFrustum.h"
#include "Engine/Level/Actor.h"
#include "Engine/Platform/CriticalSection.h"
@@ -81,6 +82,7 @@ public:
enum DrawCategory
{
SceneDraw = 0,
SceneDrawAsync,
PreRender,
PostRender,
MAX
@@ -161,4 +163,13 @@ public:
ViewportIcons.Remove(obj);
}
#endif
private:
Array<BoundingFrustum> _drawFrustumsData;
DrawActor* _drawListData;
int64 _drawListSize;
volatile int64 _drawListIndex;
RenderContextBatch* _drawBatch;
void DrawActorsJob(int32 i);
};