// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Object.h" #include "Engine/Core/Collections/Array.h" #include "GPUTasksContext.h" class GPUTask; /// /// Describes object responsible for GPU jobs execution scheduling. /// class GPUTasksExecutor : public Object { protected: Array _contextList; public: /// /// Destructor /// virtual ~GPUTasksExecutor(); public: /// /// Sync point event called on begin of the frame /// virtual void FrameBegin() = 0; /// /// Sync point event called on end of the frame /// virtual void FrameEnd() = 0; public: /// /// Gets the context list. /// FORCE_INLINE const Array* GetContextList() const { return &_contextList; } protected: GPUTasksContext* createContext(); };