/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EnginePlugins/ProcGenPlugin/Tasks/FindPlacementTilesTask.h
56 строк
1 KB
Ingrater
Automatically enforce coding guidelines (#770)
02 ноя 2022, 01:12
Не верифицирован
02 ноя 2022, 01:12
1c03b3d
Код
Авторство
О чём код?
#pragma once #include <Foundation/Threading/TaskSystem.h> #include <ProcGenPlugin/Declarations.h> enum { EmptyTileIndex = ezInvalidIndex, NewTileIndex = EmptyTileIndex - 1 }; class ezProcPlacementComponent; namespace ezProcGenInternal { class FindPlacementTilesTask final : public ezTask { public: FindPlacementTilesTask(ezProcPlacementComponent* pComponent, ezUInt32 uiOutputIndex); ~FindPlacementTilesTask(); void AddCameraPosition(const ezVec3& vCameraPosition) { m_CameraPositions.PushBack(vCameraPosition); } ezArrayPtr<const PlacementTileDesc> GetNewTiles() const { return m_NewTiles; } ezArrayPtr<const ezUInt64> GetOldTiles() const { return m_OldTileKeys; } private: virtual void Execute() override; ezProcPlacementComponent* m_pComponent = nullptr; ezUInt32 m_uiOutputIndex = 0; ezHybridArray<ezVec3, 2> m_CameraPositions; ezDynamicArray<PlacementTileDesc, ezAlignedAllocatorWrapper> m_NewTiles; ezDynamicArray<ezUInt64> m_OldTileKeys; struct TileByAge { EZ_DECLARE_POD_TYPE(); ezUInt64 m_uiTileKey; ezUInt64 m_uiLastSeenFrame; }; ezDynamicArray<TileByAge> m_TilesByAge; }; EZ_ALWAYS_INLINE ezUInt64 GetTileKey(ezInt32 x, ezInt32 y) { ezUInt64 sx = (ezUInt32)x; ezUInt64 sy = (ezUInt32)y; return (sx << 32) | sy; } } // namespace ezProcGenInternal