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

Function UncompRLE

DevIL/src-IL/src/il_psp.cpp:536–590  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

534
535
536ILboolean UncompRLE(ILubyte *CompData, ILubyte *Data, ILuint CompLen)
537{
538 ILubyte Run, Colour;
539 ILint i, /*x, y,*/ Count/*, Total = 0*/;
540
541 /*for (y = 0; y < AttChunk.Height; y++) {
542 for (x = 0, Count = 0; x < AttChunk.Width; ) {
543 Run = *CompData++;
544 if (Run > 128) {
545 Run -= 128;
546 Colour = *CompData++;
547 memset(Data, Colour, Run);
548 Data += Run;
549 Count += 2;
550 }
551 else {
552 memcpy(Data, CompData, Run);
553 CompData += Run;
554 Data += Run;
555 Count += Run;
556 }
557 x += Run;
558 }
559
560 Total += Count;
561
562 if (Count % 4) { // Has to be on a 4-byte boundary.
563 CompData += (4 - (Count % 4)) % 4;
564 Total += (4 - (Count % 4)) % 4;
565 }
566
567 if (Total >= CompLen)
568 return IL_FALSE;
569 }*/
570
571 for (i = 0, Count = 0; i < (ILint)CompLen; ) {
572 Run = *CompData++;
573 i++;
574 if (Run > 128) {
575 Run -= 128;
576 Colour = *CompData++;
577 i++;
578 memset(Data, Colour, Run);
579 }
580 else {
581 memcpy(Data, CompData, Run);
582 CompData += Run;
583 i += Run;
584 }
585 Data += Run;
586 Count += Run;
587 }
588
589 return IL_TRUE;
590}
591
592
593ILboolean ReadPalette(ILuint BlockLen)

Callers 1

GetChannelFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected