Selaa lähdekoodia

Fix mesh load issue & merge issue

James Urquhart 9 vuotta sitten
vanhempi
commit
e7db0d7956

+ 2 - 2
Engine/source/ts/tsMesh.cpp

@@ -3119,9 +3119,9 @@ void TSMesh::copySourceVertexDataFrom(const TSMesh* srcMesh)
       tverts.setSize(srcMesh->mNumVerts);
       norms.setSize(srcMesh->mNumVerts);
 
-      if (hasTVert2)
-         colors.setSize(mNumVerts);
       if (hasColor)
+         colors.setSize(mNumVerts);
+      if (hasTVert2)
          tverts2.setSize(mNumVerts);
 
       // Fill arrays

+ 0 - 1
Engine/source/ts/tsRenderState.cpp

@@ -51,7 +51,6 @@ TSRenderState::TSRenderState( const TSRenderState &state )
       mUseOriginSort( state.mUseOriginSort ),
       mLightQuery( state.mLightQuery ),
       mAccuTex( state.mAccuTex ),
-      mUseOriginSort( state.mUseOriginSort ),
       mNodeTransforms( state.mNodeTransforms ),
       mNodeTransformCount( state.mNodeTransformCount )
 {

+ 1 - 1
Engine/source/ts/tsShape.cpp

@@ -732,7 +732,7 @@ void TSShape::initVertexBufferPointers()
             mesh->getMeshType() == TSMesh::SkinMeshType))
       {
          // Set buffer
-         AssertFatal(mesh->mNumVerts >= mesh->vertsPerFrame, "invalid verts per frame");
+         AssertFatal(mesh->mNumVerts == 0 || mesh->mNumVerts >= mesh->vertsPerFrame, "invalid verts per frame");
          if (mesh->mVertSize > 0 && !mesh->mVertexData.isReady())
          {
             U32 boneOffset = 0;

+ 4 - 1
Engine/source/ts/tsShapeEdit.cpp

@@ -916,7 +916,10 @@ TSMesh* TSShape::copyMesh( const TSMesh* srcMesh ) const
 }
 
 bool TSShape::addMesh(TSMesh* mesh, const String& meshName)
-{
+{ 
+   // Ensure mesh is in editable state
+   mesh->makeEditable();
+
    // Determine the object name and detail size from the mesh name
    S32 detailSize = 999;
    String objName(String::GetTrailingNumber(meshName, detailSize));