mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-09-21 20:06:40 +00:00
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.
This commit is contained in:
@@ -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<MikkTSpace*>(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];
|
||||
|
||||
@@ -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 <vector>
|
||||
|
||||
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);
|
||||
|
||||
};
|
||||
|
||||
@@ -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<numVertices; ++j)
|
||||
for (size_t j = 0; j < numVertices; ++j)
|
||||
{
|
||||
transform.Transform(vertices[j].m_Coords,Position[j]);
|
||||
invtransform.RotateTransposed(vertices[j].m_Norm,Normal[j]);
|
||||
transform.Transform(vertices[j].m_Coords, Position[j]);
|
||||
invtransform.RotateTransposed(vertices[j].m_Norm, Normal[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ void ModelRenderer::BuildColor4ub(
|
||||
const VertexArrayIterator<CVector3D>& Normal,
|
||||
const VertexArrayIterator<SColor4ub>& 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<int>(time * 60.0 / period) % 60;
|
||||
|
||||
if (WaterMgr->m_RenderWater && WaterMgr->WillRenderFancyWater())
|
||||
shader->BindTexture(str_waterTex, WaterMgr->m_NormalMap[curTex]);
|
||||
|
||||
Reference in New Issue
Block a user