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

Function DecodePixelFormat

DevIL/src-IL/src/il_dds.cpp:457–565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

455
456
457ILuint DecodePixelFormat(ILuint *CompFormat)
458{
459 ILuint BlockSize;
460
461 if (Head.Flags2 & DDS_FOURCC) {
462 BlockSize = ((Head.Width + 3)/4) * ((Head.Height + 3)/4) * Head.Depth;
463 switch (Head.FourCC)
464 {
465 case IL_MAKEFOURCC('D','X','T','1'):
466 *CompFormat = PF_DXT1;
467 BlockSize *= 8;
468 break;
469
470 case IL_MAKEFOURCC('D','X','T','2'):
471 *CompFormat = PF_DXT2;
472 BlockSize *= 16;
473 break;
474
475 case IL_MAKEFOURCC('D','X','T','3'):
476 *CompFormat = PF_DXT3;
477 BlockSize *= 16;
478 break;
479
480 case IL_MAKEFOURCC('D','X','T','4'):
481 *CompFormat = PF_DXT4;
482 BlockSize *= 16;
483 break;
484
485 case IL_MAKEFOURCC('D','X','T','5'):
486 *CompFormat = PF_DXT5;
487 BlockSize *= 16;
488 break;
489
490 case IL_MAKEFOURCC('A', 'T', 'I', '1'):
491 *CompFormat = PF_ATI1N;
492 BlockSize *= 8;
493 break;
494
495 case IL_MAKEFOURCC('A', 'T', 'I', '2'):
496 *CompFormat = PF_3DC;
497 BlockSize *= 16;
498 break;
499
500 case IL_MAKEFOURCC('R', 'X', 'G', 'B'):
501 *CompFormat = PF_RXGB;
502 BlockSize *= 16;
503 break;
504
505 case IL_MAKEFOURCC('$', '\0', '\0', '\0'):
506 *CompFormat = PF_A16B16G16R16;
507 BlockSize = Head.Width * Head.Height * Head.Depth * 8;
508 break;
509
510 case IL_MAKEFOURCC('o', '\0', '\0', '\0'):
511 *CompFormat = PF_R16F;
512 BlockSize = Head.Width * Head.Height * Head.Depth * 2;
513 break;
514

Callers 1

iLoadDdsInternalFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected