Index: ps/trunk/source/renderer/MikktspaceWrap.h =================================================================== --- ps/trunk/source/renderer/MikktspaceWrap.h +++ ps/trunk/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 @@ private: SMikkTSpaceInterface m_Interface; - SMikkTSpaceContext m_Context; const CModelDefPtr& m_Model; @@ -50,20 +50,20 @@ * @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 @@ * @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 @@ * @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 @@ * @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 @@ * @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 @@ * @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); }; Index: ps/trunk/source/renderer/MikktspaceWrap.cpp =================================================================== --- ps/trunk/source/renderer/MikktspaceWrap.cpp +++ ps/trunk/source/renderer/MikktspaceWrap.cpp @@ -44,7 +44,7 @@ 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 @@ 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::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::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::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 @@ } } -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]; Index: ps/trunk/source/renderer/ModelRenderer.cpp =================================================================== --- ps/trunk/source/renderer/ModelRenderer.cpp +++ ps/trunk/source/renderer/ModelRenderer.cpp @@ -71,7 +71,7 @@ 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 @@ { CModelDefPtr mdef = model->GetModelDef(); size_t numVertices = mdef->GetNumVertices(); - SModelVertex* vertices=mdef->GetVertices(); + SModelVertex* vertices = mdef->GetVertices(); if (model->IsSkinned()) { @@ -113,14 +113,14 @@ } 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 @@ 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 @@ 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 @@ // (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 @@ 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 @@ } // 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 @@ 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 @@ 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]);