Changeset View
Changeset View
Standalone View
Standalone View
source/graphics/ModelDef.h
/* Copyright (C) 2021 Wildfire Games. | /* Copyright (C) 2023 Wildfire Games. | ||||
* This file is part of 0 A.D. | * This file is part of 0 A.D. | ||||
* | * | ||||
* 0 A.D. is free software: you can redistribute it and/or modify | * 0 A.D. is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation, either version 2 of the License, or | * the Free Software Foundation, either version 2 of the License, or | ||||
* (at your option) any later version. | * (at your option) any later version. | ||||
* | * | ||||
* 0 A.D. is distributed in the hope that it will be useful, | * 0 A.D. is distributed in the hope that it will be useful, | ||||
▲ Show 20 Lines • Show All 204 Lines • ▼ Show 20 Lines | public: | ||||
static CVector3D SkinNormal(const SModelVertex& vtx, | static CVector3D SkinNormal(const SModelVertex& vtx, | ||||
const CMatrix3D newPoseMatrices[]); | const CMatrix3D newPoseMatrices[]); | ||||
/** | /** | ||||
* Transform vertices' positions and normals. | * Transform vertices' positions and normals. | ||||
* (This is equivalent to looping over SkinPoint and SkinNormal, | * (This is equivalent to looping over SkinPoint and SkinNormal, | ||||
* but slightly more efficient.) | * but slightly more efficient.) | ||||
*/ | */ | ||||
static void(*SkinPointsAndNormals)( | static void SkinPointsAndNormals( | ||||
size_t numVertices, | size_t numVertices, | ||||
const VertexArrayIterator<CVector3D>& Position, | const VertexArrayIterator<CVector3D>& Position, | ||||
const VertexArrayIterator<CVector3D>& Normal, | const VertexArrayIterator<CVector3D>& Normal, | ||||
const SModelVertex* vertices, | const SModelVertex* vertices, | ||||
const size_t* blendIndices, | const size_t* blendIndices, | ||||
const CMatrix3D newPoseMatrices[]); | const CMatrix3D newPoseMatrices[]); | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | private: | ||||
std::unordered_map<u32, CBoundingBoxAligned> m_MaxBoundsPerAnimDef; | std::unordered_map<u32, CBoundingBoxAligned> m_MaxBoundsPerAnimDef; | ||||
// renderdata shared by models of the same modeldef, | // renderdata shared by models of the same modeldef, | ||||
// by render path | // by render path | ||||
typedef std::map<const void*, CModelDefRPrivate*> RenderDataMap; | typedef std::map<const void*, CModelDefRPrivate*> RenderDataMap; | ||||
RenderDataMap m_RenderData; | RenderDataMap m_RenderData; | ||||
}; | }; | ||||
/** | |||||
* Detects CPU caps and activates the best possible codepath. | |||||
*/ | |||||
extern void ModelDefActivateFastImpl(); | |||||
#endif | #endif | ||||
Wildfire Games · Phabricator