diff options
| -rw-r--r-- | indra/llmeshoptimizer/llmeshoptimizer.cpp | 19 | ||||
| -rw-r--r-- | indra/llmeshoptimizer/llmeshoptimizer.h | 7 | ||||
| -rw-r--r-- | indra/newview/llmodelpreview.cpp | 2 | 
3 files changed, 16 insertions, 12 deletions
diff --git a/indra/llmeshoptimizer/llmeshoptimizer.cpp b/indra/llmeshoptimizer/llmeshoptimizer.cpp index 0ddaa82c3d..09fa7cb235 100644 --- a/indra/llmeshoptimizer/llmeshoptimizer.cpp +++ b/indra/llmeshoptimizer/llmeshoptimizer.cpp @@ -44,18 +44,17 @@ void LLMeshOptimizer::generateShadowIndexBuffer(U16 *destination,      const U16 *indices,      U64 index_count,      const LLVector4a *vertex_positions, -    U64 vertex_count +    U64 vertex_count, +    U64 vertex_positions_stride  )  { -    const size_t vertex_stride = 4; // should be either 0 or 4 -      meshopt_generateShadowIndexBuffer<unsigned short>(destination,          indices,          index_count,          (const float*)vertex_positions, // verify that it is correct to convert to float          vertex_count,          sizeof(LLVector4a), -        vertex_stride +        vertex_positions_stride          );  } @@ -65,19 +64,19 @@ U64 LLMeshOptimizer::simplify(U16 *destination,                                U64 index_count,                                const LLVector4a *vertex_positions,                                U64 vertex_count, +                              U64 vertex_positions_stride,                                U64 target_index_count,                                F32 target_error,                                F32* result_error      )  { -    const size_t vertex_stride = 4; // should be either 0 or 4      return meshopt_simplify<unsigned short>(destination,                                   indices,                                   index_count, -                                 (const float*)vertex_positions, // verify that it is correct to convert to float +                                 (const float*)vertex_positions,                                   vertex_count, -                                 vertex_stride,  +                                 vertex_positions_stride,                                    target_index_count,                                   target_error,                                   result_error @@ -90,18 +89,18 @@ U64 LLMeshOptimizer::simplifySloppy(U16 *destination,                                U64 index_count,                                const LLVector4a *vertex_positions,                                U64 vertex_count, +    U64 vertex_positions_stride,                                U64 target_index_count,                                F32 target_error,                                F32* result_error      )  { -    const size_t vertex_stride = 4; // should be either 0 or 4      return meshopt_simplifySloppy<unsigned short>(destination,                                   indices,                                   index_count, -                                 (const float*)vertex_positions, // verify that it is correct to convert to float +                                 (const float*)vertex_positions,                                   vertex_count, -                                 vertex_stride,  +                                 vertex_positions_stride,                                    target_index_count,                                   target_error,                                   result_error diff --git a/indra/llmeshoptimizer/llmeshoptimizer.h b/indra/llmeshoptimizer/llmeshoptimizer.h index 744856361c..1aa02372fa 100644 --- a/indra/llmeshoptimizer/llmeshoptimizer.h +++ b/indra/llmeshoptimizer/llmeshoptimizer.h @@ -36,12 +36,13 @@ public:      LLMeshOptimizer();      ~LLMeshOptimizer(); -    static void LLMeshOptimizer::generateShadowIndexBuffer( +    static void generateShadowIndexBuffer(          U16 *destination,          const U16 *indices,          U64 index_count,          const LLVector4a *vertex_positions, -        U64 vertex_count); +        U64 vertex_count, +        U64 vertex_positions_stride);      // returns amount of indices in destiantion      // result_error returns how far from original the model is in % if not NULL @@ -51,6 +52,7 @@ public:          U64 index_count,          const LLVector4a *vertex_positions,          U64 vertex_count, +        U64 vertex_positions_stride,          U64 target_index_count,          F32 target_error,          F32* result_error); @@ -63,6 +65,7 @@ public:          U64 index_count,          const LLVector4a *vertex_positions,          U64 vertex_count, +        U64 vertex_positions_stride,          U64 target_index_count,          F32 target_error,          F32* result_error); diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 471b29d850..aa065edf92 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1869,6 +1869,7 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, U32 decimation, bool en                          num_indices,                          face.mPositions,                          face.mNumVertices, +                        LLVertexBuffer::sTypeSize[LLVertexBuffer::TYPE_VERTEX],                          target_indices,                          lod_error_threshold,                          &result_code); @@ -1882,6 +1883,7 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, U32 decimation, bool en                          num_indices,                          face.mPositions,                          face.mNumVertices, +                        LLVertexBuffer::sTypeSize[LLVertexBuffer::TYPE_VERTEX],                          target_indices,                          lod_error_threshold,                          &result_code);  | 
