diff options
Diffstat (limited to 'linden/indra/newview/llviewerjointmesh.h')
-rw-r--r-- | linden/indra/newview/llviewerjointmesh.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/linden/indra/newview/llviewerjointmesh.h b/linden/indra/newview/llviewerjointmesh.h index f016da6..b40daed 100644 --- a/linden/indra/newview/llviewerjointmesh.h +++ b/linden/indra/newview/llviewerjointmesh.h | |||
@@ -146,6 +146,22 @@ public: | |||
146 | 146 | ||
147 | /*virtual*/ BOOL isAnimatable() { return FALSE; } | 147 | /*virtual*/ BOOL isAnimatable() { return FALSE; } |
148 | void writeCAL3D(apr_file_t* fp, S32 material_num, LLCharacter* characterp); | 148 | void writeCAL3D(apr_file_t* fp, S32 material_num, LLCharacter* characterp); |
149 | |||
150 | // Avatar vertex skinning is a significant performance issue on computers | ||
151 | // with avatar vertex programs turned off (for example, most Macs). We | ||
152 | // therefore have custom versions that use SIMD instructions. | ||
153 | // | ||
154 | // These functions require compiler options for SSE2, SSE, or neither, and | ||
155 | // hence are contained in separate individual .cpp files. JC | ||
156 | static void updateGeometryOriginal(LLFace* face, LLPolyMesh* mesh); | ||
157 | // generic vector code, used for Altivec | ||
158 | static void updateGeometryVectorized(LLFace* face, LLPolyMesh* mesh); | ||
159 | static void updateGeometrySSE(LLFace* face, LLPolyMesh* mesh); | ||
160 | static void updateGeometrySSE2(LLFace* face, LLPolyMesh* mesh); | ||
161 | |||
162 | // Use a fuction pointer to indicate which version we are running. | ||
163 | static void (*sUpdateGeometryFunc)(LLFace* face, LLPolyMesh* mesh); | ||
164 | |||
149 | private: | 165 | private: |
150 | // Allocate skin data | 166 | // Allocate skin data |
151 | BOOL allocateSkinData( U32 numSkinJoints ); | 167 | BOOL allocateSkinData( U32 numSkinJoints ); |