From ddcdc643ba271701c9aab9c75009cbad56d2a428 Mon Sep 17 00:00:00 2001 From: Stan Date: Thu, 30 May 2019 23:03:01 +0000 Subject: [PATCH] Further cleanup of MikkTSpace - Move the * and & to the correct side, - Add .0 and 0.f to clearly mark the types - Pass pointers instead of arrays - Add a newline after forward declaration - Add spaces between operators - Use c++ cast Reviewed by: @vladislavbelov Differential Revision: https://code.wildfiregames.com/D1934 This was SVN commit r22323. --- source/renderer/MikktspaceWrap.cpp | 24 +++++++++--------- source/renderer/MikktspaceWrap.h | 28 ++++++++++----------- source/renderer/ModelRenderer.cpp | 39 +++++++++++++++--------------- 3 files changed, 46 insertions(+), 45 deletions(-) diff --git a/source/renderer/MikktspaceWrap.cpp b/source/renderer/MikktspaceWrap.cpp index cd27cb16c9..df6a106862 100644 --- a/source/renderer/MikktspaceWrap.cpp +++ b/source/renderer/MikktspaceWrap.cpp @@ -44,7 +44,7 @@ void MikkTSpace::Generate() genTangSpaceDefault(&m_Context); } -int MikkTSpace::GetNumFaces(const SMikkTSpaceContext *pContext) +int MikkTSpace::GetNumFaces(const SMikkTSpaceContext* pContext) { return GetUserDataFromContext(pContext)->m_Model->GetNumFaces(); } @@ -54,8 +54,8 @@ int MikkTSpace::GetNumVerticesOfFace(const SMikkTSpaceContext* UNUSED(pContext), return 3; } -void MikkTSpace::GetPosition(const SMikkTSpaceContext *pContext, - float fvPosOut[3], const int iFace, const int iVert) +void MikkTSpace::GetPosition(const SMikkTSpaceContext* pContext, + float* fvPosOut, const int iFace, const int iVert) { const CVector3D& position = GetVertex(pContext, iFace, iVert).m_Coords; @@ -65,8 +65,8 @@ void MikkTSpace::GetPosition(const SMikkTSpaceContext *pContext, } -void MikkTSpace::GetNormal(const SMikkTSpaceContext *pContext, - float fvNormOut[3], const int iFace, const int iVert) +void MikkTSpace::GetNormal(const SMikkTSpaceContext* pContext, + float* fvNormOut, const int iFace, const int iVert) { const CVector3D& normal = GetVertex(pContext, iFace, iVert).m_Norm; @@ -76,8 +76,8 @@ void MikkTSpace::GetNormal(const SMikkTSpaceContext *pContext, } -void MikkTSpace::GetTexCoord(const SMikkTSpaceContext *pContext, - float fvTexcOut[2], const int iFace, const int iVert) +void MikkTSpace::GetTexCoord(const SMikkTSpaceContext* pContext, + float* fvTexcOut, const int iFace, const int iVert) { const MikkTSpace* userData = GetUserDataFromContext(pContext); const SModelFace& face = userData->m_Model->GetFaces()[iFace]; @@ -89,15 +89,15 @@ void MikkTSpace::GetTexCoord(const SMikkTSpaceContext *pContext, } -void MikkTSpace::SetTSpace(const SMikkTSpaceContext* pContext, const float fvTangent[], - const float UNUSED(fvBiTangent)[], const float UNUSED(fMagS), const float UNUSED(fMagT), +void MikkTSpace::SetTSpace(const SMikkTSpaceContext* pContext, const float* fvTangent, + const float* UNUSED(fvBiTangent), const float UNUSED(fMagS), const float UNUSED(fMagT), const tbool bIsOrientationPreserving, const int iFace, const int iVert) { const MikkTSpace* userData = GetUserDataFromContext(pContext); const SModelFace& face = userData->m_Model->GetFaces()[iFace]; const SModelVertex& vertex = userData->m_Model->GetVertices()[face.m_Verts[iVert]]; - const CVector3D &p = vertex.m_Coords; + const CVector3D& p = vertex.m_Coords; userData->m_NewVertices.push_back(p.X); userData->m_NewVertices.push_back(p.Y); userData->m_NewVertices.push_back(p.Z); @@ -129,12 +129,12 @@ void MikkTSpace::SetTSpace(const SMikkTSpaceContext* pContext, const float fvTan } } -MikkTSpace* MikkTSpace::GetUserDataFromContext(const SMikkTSpaceContext *pContext) +MikkTSpace* MikkTSpace::GetUserDataFromContext(const SMikkTSpaceContext* pContext) { return static_cast(pContext->m_pUserData); } -SModelVertex MikkTSpace::GetVertex(const SMikkTSpaceContext *pContext, const int iFace, const int iVert) +SModelVertex MikkTSpace::GetVertex(const SMikkTSpaceContext* pContext, const int iFace, const int iVert) { const MikkTSpace* userData = GetUserDataFromContext(pContext); const SModelFace& f = userData->m_Model->GetFaces()[iFace]; diff --git a/source/renderer/MikktspaceWrap.h b/source/renderer/MikktspaceWrap.h index da708f27fc..c9c0317e28 100644 --- a/source/renderer/MikktspaceWrap.h +++ b/source/renderer/MikktspaceWrap.h @@ -18,13 +18,14 @@ #ifndef INCLUDED_MIKKWRAP #define INCLUDED_MIKKWRAP -#include "graphics/Model.h" +#include "graphics/MeshManager.h" #include "graphics/ModelDef.h" #include "third_party/mikktspace/mikktspace.h" #include class CVector3D; + class MikkTSpace { @@ -37,7 +38,6 @@ public: private: SMikkTSpaceInterface m_Interface; - SMikkTSpaceContext m_Context; const CModelDefPtr& m_Model; @@ -50,20 +50,20 @@ private: * @param[in] pContext - Pointer to the MikkTSpace context. * @returns - the number of faces (triangles/quads) on the mesh to be processed. */ - static int GetNumFaces(const SMikkTSpaceContext *pContext); + static int GetNumFaces(const SMikkTSpaceContext* pContext); /** * @param[in] pContext - Pointer to the MikkTSpace context. * @param[in] iFace - Number in the range { 0, 1, ..., getNumFaces() - 1 }. * @returns - the number of faces (triangles/quads) on the mesh to be processed. */ - static int GetNumVerticesOfFace(const SMikkTSpaceContext *pContext, const int iFace); + static int GetNumVerticesOfFace(const SMikkTSpaceContext* pContext, const int iFace); /** * @param[in] pContext - Pointer to the MikkTSpace context. * @returns - The MikkTSpace. */ - static MikkTSpace* GetUserDataFromContext(const SMikkTSpaceContext *pContext); + static MikkTSpace* GetUserDataFromContext(const SMikkTSpaceContext* pContext); /** * @param[in] pContext - Pointer to the MikkTSpace context. @@ -71,7 +71,7 @@ private: * @param[in] iVert - Number in the range { 0, 1, 2 } for triangles and { 0, 1, 2, 3 } for quads. * @returns - The MikkTSpace. */ - static SModelVertex GetVertex(const SMikkTSpaceContext *pContext, const int iFace, const int iVert); + static SModelVertex GetVertex(const SMikkTSpaceContext* pContext, const int iFace, const int iVert); /** * @param[in] pContext - Pointer to the MikkTSpace context. @@ -79,8 +79,8 @@ private: * @param[in] iFace - Number in the range { 0, 1, ..., getNumFaces() - 1 }. * @param[in] iVert - Number in the range { 0, 1, 2 } for triangles and { 0, 1, 2, 3 } for quads. */ - static void GetPosition(const SMikkTSpaceContext *pContext, - float fvPosOut[3], const int iFace, const int iVert); + static void GetPosition(const SMikkTSpaceContext* pContext, + float* fvPosOut, const int iFace, const int iVert); /** * @param[in] pContext - Pointer to the MikkTSpace context. @@ -88,8 +88,8 @@ private: * @param[in] iFace - Number in the range { 0, 1, ..., getNumFaces() - 1 }. * @param[in] iVert - Number in the range { 0, 1, 2 } for triangles and { 0, 1, 2, 3 } for quads. */ - static void GetNormal(const SMikkTSpaceContext *pContext, - float fvNormOut[3], const int iFace, const int iVert); + static void GetNormal(const SMikkTSpaceContext* pContext, + float* fvNormOut, const int iFace, const int iVert); /** * @param[in] pContext - Pointer to the MikkTSpace context. @@ -97,8 +97,8 @@ private: * @param[in] iFace - Number in the range { 0, 1, ..., getNumFaces() - 1 }. * @param[in] iVert - Number in the range { 0, 1, 2 } for triangles and { 0, 1, 2, 3 } for quads. */ - static void GetTexCoord(const SMikkTSpaceContext *pContext, - float fvTexcOut[2], const int iFace, const int iVert); + static void GetTexCoord(const SMikkTSpaceContext* pContext, + float* fvTexcOut, const int iFace, const int iVert); /** * @brief This function is used to return tangent space results to the application. @@ -114,8 +114,8 @@ private: * @param[in] iFace - Number in the range {0,1,2} for triangles and {0,1,2,3} for quads. * @param[in] iVert - Array containing the position vector of the face. */ - static void SetTSpace(const SMikkTSpaceContext * pContext, const float fvTangent[], - const float UNUSED(fvBiTangent)[], const float UNUSED(fMagS), const float UNUSED(fMagT), + static void SetTSpace(const SMikkTSpaceContext* pContext, const float* fvTangent, + const float* UNUSED(fvBiTangent), const float UNUSED(fMagS), const float UNUSED(fMagT), const tbool bIsOrientationPreserving, const int iFace, const int iVert); }; diff --git a/source/renderer/ModelRenderer.cpp b/source/renderer/ModelRenderer.cpp index 0168e8b8f5..1732c32d10 100644 --- a/source/renderer/ModelRenderer.cpp +++ b/source/renderer/ModelRenderer.cpp @@ -71,7 +71,7 @@ void ModelRenderer::CopyPositionAndNormals( size_t numVertices = mdef->GetNumVertices(); SModelVertex* vertices = mdef->GetVertices(); - for(size_t j = 0; j < numVertices; ++j) + for (size_t j = 0; j < numVertices; ++j) { Position[j] = vertices[j].m_Coords; Normal[j] = vertices[j].m_Norm; @@ -86,7 +86,7 @@ void ModelRenderer::BuildPositionAndNormals( { CModelDefPtr mdef = model->GetModelDef(); size_t numVertices = mdef->GetNumVertices(); - SModelVertex* vertices=mdef->GetVertices(); + SModelVertex* vertices = mdef->GetVertices(); if (model->IsSkinned()) { @@ -113,14 +113,14 @@ void ModelRenderer::BuildPositionAndNormals( } else { - PROFILE( "software transform" ); + PROFILE("software transform"); // just copy regular positions, transform normals to world space const CMatrix3D& transform = model->GetTransform(); const CMatrix3D& invtransform = model->GetInvTransform(); - for (size_t j=0; j& Normal, const VertexArrayIterator& Color) { - PROFILE( "lighting vertices" ); + PROFILE("lighting vertices"); CModelDefPtr mdef = model->GetModelDef(); size_t numVertices = mdef->GetNumVertices(); @@ -166,10 +166,10 @@ void ModelRenderer::BuildUV( size_t numVertices = mdef->GetNumVertices(); SModelVertex* vertices = mdef->GetVertices(); - for (size_t j=0; j < numVertices; ++j) + for (size_t j = 0; j < numVertices; ++j) { UV[j][0] = vertices[j].m_UVs[UVset * 2]; - UV[j][1] = 1.0-vertices[j].m_UVs[UVset * 2 + 1]; + UV[j][1] = 1.0 - vertices[j].m_UVs[UVset * 2 + 1]; } } @@ -182,11 +182,12 @@ void ModelRenderer::BuildIndices( size_t idxidx = 0; SModelFace* faces = mdef->GetFaces(); - for (size_t j = 0; j < mdef->GetNumFaces(); ++j) { - SModelFace& face=faces[j]; - Indices[idxidx++]=face.m_Verts[0]; - Indices[idxidx++]=face.m_Verts[1]; - Indices[idxidx++]=face.m_Verts[2]; + for (size_t j = 0; j < mdef->GetNumFaces(); ++j) + { + SModelFace& face = faces[j]; + Indices[idxidx++] = face.m_Verts[0]; + Indices[idxidx++] = face.m_Verts[1]; + Indices[idxidx++] = face.m_Verts[2]; } } @@ -512,7 +513,7 @@ void ShaderModelRenderer::Render(const RenderModifierPtr& modifier, const CShade // (There might be duplicates in this list, but that doesn't really matter) if (sortByDistTechs.empty() || sortByDistTechs.back() != tech) sortByDistTechs.push_back(tech); - size_t techIdx = sortByDistTechs.size()-1; + size_t techIdx = sortByDistTechs.size() - 1; // Add each model into sortByDistItems for (size_t i = 0; i < it->second.size(); ++i) @@ -582,7 +583,7 @@ void ShaderModelRenderer::Render(const RenderModifierPtr& modifier, const CShade if (techIdx != currentTechIdx) { // Start of a new run - push the old run into a new tech bucket - SMRTechBucket techBucket = { sortByDistTechs[currentTechIdx], &sortByDistModels[start], end-start }; + SMRTechBucket techBucket = { sortByDistTechs[currentTechIdx], &sortByDistModels[start], end - start }; techBuckets.push_back(techBucket); start = end; currentTechIdx = techIdx; @@ -590,7 +591,7 @@ void ShaderModelRenderer::Render(const RenderModifierPtr& modifier, const CShade } // Add the tech bucket for the final run - SMRTechBucket techBucket = { sortByDistTechs[currentTechIdx], &sortByDistModels[start], sortByDistItems.size()-start }; + SMRTechBucket techBucket = { sortByDistTechs[currentTechIdx], &sortByDistModels[start], sortByDistItems.size() - start }; techBuckets.push_back(techBucket); } } @@ -735,7 +736,7 @@ void ShaderModelRenderer::Render(const RenderModifierPtr& modifier, const CShade if (binding.Active()) { double time = g_Renderer.GetTimeManager().GetGlobalTime(); - shader->Uniform(binding, time, 0,0,0); + shader->Uniform(binding, time, 0.0f, 0.0f, 0.0f); } } else if (rq.first == RQUERY_WATER_TEX) @@ -743,7 +744,7 @@ void ShaderModelRenderer::Render(const RenderModifierPtr& modifier, const CShade WaterManager* WaterMgr = g_Renderer.GetWaterManager(); double time = WaterMgr->m_WaterTexTimer; double period = 1.6; - int curTex = (int)(time*60/period) % 60; + int curTex = static_cast(time * 60.0 / period) % 60; if (WaterMgr->m_RenderWater && WaterMgr->WillRenderFancyWater()) shader->BindTexture(str_waterTex, WaterMgr->m_NormalMap[curTex]);