mirror of
				https://github.com/yuzu-emu/FasTC.git
				synced 2025-11-04 11:04:56 +00:00 
			
		
		
		
	Refactor to FasTC::Replicate where appropriate
This commit is contained in:
		
							parent
							
								
									ed61bcfee4
								
							
						
					
					
						commit
						4e45988caa
					
				| 
						 | 
					@ -62,6 +62,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "TexCompTypes.h"
 | 
					#include "TexCompTypes.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Bits.h"
 | 
				
			||||||
#include "BitStream.h"
 | 
					#include "BitStream.h"
 | 
				
			||||||
using FasTC::BitStreamReadOnly;
 | 
					using FasTC::BitStreamReadOnly;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -334,25 +335,14 @@ namespace ASTCC {
 | 
				
			||||||
      assert(bitlen >= 1);
 | 
					      assert(bitlen >= 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      uint32 A = 0, B = 0, C = 0, D = 0;
 | 
					      uint32 A = 0, B = 0, C = 0, D = 0;
 | 
				
			||||||
      // A is just the lsb replicated 8 times.
 | 
					      // A is just the lsb replicated 9 times.
 | 
				
			||||||
      for(uint32 i = 0; i < 9; i++) {
 | 
					      A = FasTC::Replicate(bitval & 1, 1, 9);
 | 
				
			||||||
        A |= bitval & 1;
 | 
					 | 
				
			||||||
        A <<= 1;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      switch(val.GetEncoding()) {
 | 
					      switch(val.GetEncoding()) {
 | 
				
			||||||
        // Replicate bits
 | 
					        // Replicate bits
 | 
				
			||||||
        case eIntegerEncoding_JustBits: {
 | 
					        case eIntegerEncoding_JustBits: 
 | 
				
			||||||
          uint32 result = bitval;
 | 
					          out[outIdx++] = FasTC::Replicate(bitval, bitlen, 8);
 | 
				
			||||||
          uint32 resultLen = bitlen;
 | 
					          break;
 | 
				
			||||||
          while(resultLen < 8) {
 | 
					 | 
				
			||||||
            result <<= bitlen;
 | 
					 | 
				
			||||||
            result |= bitval & ((1 << std::min(8 - bitlen, bitlen)) - 1);
 | 
					 | 
				
			||||||
            resultLen += bitlen;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          out[outIdx++] = result;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Use algorithm in C.2.13
 | 
					        // Use algorithm in C.2.13
 | 
				
			||||||
        case eIntegerEncoding_Trit: {
 | 
					        case eIntegerEncoding_Trit: {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue