MCPcopy Create free account
hub / github.com/DentonW/DevIL / sgiSwitchData

Function sgiSwitchData

DevIL/src-IL/src/il_sgi.cpp:411–438  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

409/*----------------------------------------------------------------------------*/
410
411void sgiSwitchData(ILubyte *Data, ILuint SizeOfData)
412{
413 ILubyte Temp;
414 ILuint i;
415 #ifdef ALTIVEC_GCC
416 i = 0;
417 union {
418 vector unsigned char vec;
419 vector unsigned int load;
420 }inversion_vector;
421
422 inversion_vector.load = (vector unsigned int)\
423 {0x01000302,0x05040706,0x09080B0A,0x0D0C0F0E};
424 while( i <= SizeOfData-16 ) {
425 vector unsigned char data = vec_ld(i,Data);
426 vec_perm(data,data,inversion_vector.vec);
427 vec_st(data,i,Data);
428 i+=16;
429 }
430 SizeOfData -= i;
431 #endif
432 for (i = 0; i < SizeOfData; i += 2) {
433 Temp = Data[i];
434 Data[i] = Data[i+1];
435 Data[i+1] = Temp;
436 }
437 return;
438}
439
440/*----------------------------------------------------------------------------*/
441

Callers 1

iReadRleSgiFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected