/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererCore/Pipeline/Implementation/RenderDataBatch_inl.h
89 строк
2 KB
C-Core
Render instance data refactor (#1713)
19 ноя 2025, 20:31
Не верифицирован
19 ноя 2025, 20:31
b8e6103
Код
Авторство
О чём код?
template <typename T> EZ_ALWAYS_INLINE const T& ezRenderDataBatch::Iterator<T>::operator*() const { return *ezStaticCast<const T*>(m_pCurrent->m_pRenderData); } template <typename T> EZ_ALWAYS_INLINE const T* ezRenderDataBatch::Iterator<T>::operator->() const { return ezStaticCast<const T*>(m_pCurrent->m_pRenderData); } template <typename T> EZ_ALWAYS_INLINE ezRenderDataBatch::Iterator<T>::operator const T*() const { return ezStaticCast<const T*>(m_pCurrent->m_pRenderData); } template <typename T> EZ_ALWAYS_INLINE void ezRenderDataBatch::Iterator<T>::Next() { ++m_pCurrent; } template <typename T> EZ_ALWAYS_INLINE bool ezRenderDataBatch::Iterator<T>::IsValid() const { return m_pCurrent < m_pEnd; } template <typename T> EZ_ALWAYS_INLINE void ezRenderDataBatch::Iterator<T>::operator++() { Next(); } template <typename T> EZ_ALWAYS_INLINE ezRenderDataBatch::Iterator<T>::Iterator(const SortableRenderData* pStart, const SortableRenderData* pEnd) { m_pCurrent = pStart; m_pEnd = pEnd; } ////////////////////////////////////////////////////////////////////////// EZ_ALWAYS_INLINE ezUInt32 ezRenderDataBatch::GetDataCount() const { return m_Data.GetCount(); } template <typename T> EZ_ALWAYS_INLINE const T* ezRenderDataBatch::GetFirstData() const { return m_Data.IsEmpty() == false ? ezStaticCast<const T*>(m_Data.GetPtr()->m_pRenderData) : nullptr; } template <typename T> EZ_ALWAYS_INLINE ezRenderDataBatch::Iterator<T> ezRenderDataBatch::GetIterator(ezUInt32 uiStartIndex, ezUInt32 uiCount) const { ezUInt32 uiEndIndex = ezMath::Min(uiStartIndex + uiCount, m_Data.GetCount()); return Iterator<T>(m_Data.GetPtr() + uiStartIndex, m_Data.GetPtr() + uiEndIndex); } EZ_ALWAYS_INLINE ezGALBufferHandle ezRenderDataBatch::GetDataOffsetsBuffer() const { return m_hDataOffsetsBuffer; } EZ_ALWAYS_INLINE ezUInt32 ezRenderDataBatch::GetFirstDataOffsetIndex() const { return m_uiFirstDataOffsetIndex; } EZ_ALWAYS_INLINE ezUInt32 ezRenderDataBatch::GetInstanceCount() const { return m_uiInstanceCount; } ////////////////////////////////////////////////////////////////////////// EZ_ALWAYS_INLINE ezUInt32 ezRenderDataBatchList::GetBatchCount() const { return m_Batches.GetCount(); } EZ_ALWAYS_INLINE const ezRenderDataBatch& ezRenderDataBatchList::GetBatch(ezUInt32 uiIndex) const { return m_Batches[uiIndex]; }