mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #2476 from yuriks/shader-refactor3
Oh No! More shader changes!
This commit is contained in:
		
						commit
						97e06b0a0d
					
				
					 20 changed files with 184 additions and 180 deletions
				
			
		|  | @ -121,22 +121,19 @@ public: | |||
|     class Iterator { | ||||
|     public: | ||||
|         Iterator(const Iterator& other) : m_val(other.m_val), m_bit(other.m_bit) {} | ||||
|         Iterator(IntTy val, int bit) : m_val(val), m_bit(bit) {} | ||||
|         Iterator(IntTy val) : m_val(val), m_bit(0) {} | ||||
|         Iterator& operator=(Iterator other) { | ||||
|             new (this) Iterator(other); | ||||
|             return *this; | ||||
|         } | ||||
|         int operator*() { | ||||
|             return m_bit; | ||||
|             return m_bit + ComputeLsb(); | ||||
|         } | ||||
|         Iterator& operator++() { | ||||
|             if (m_val == 0) { | ||||
|                 m_bit = -1; | ||||
|             } else { | ||||
|                 int bit = LeastSignificantSetBit(m_val); | ||||
|                 m_val &= ~(1 << bit); | ||||
|                 m_bit = bit; | ||||
|             } | ||||
|             int lsb = ComputeLsb(); | ||||
|             m_val >>= lsb + 1; | ||||
|             m_bit += lsb + 1; | ||||
|             m_has_lsb = false; | ||||
|             return *this; | ||||
|         } | ||||
|         Iterator operator++(int _) { | ||||
|  | @ -145,15 +142,24 @@ public: | |||
|             return other; | ||||
|         } | ||||
|         bool operator==(Iterator other) const { | ||||
|             return m_bit == other.m_bit; | ||||
|             return m_val == other.m_val; | ||||
|         } | ||||
|         bool operator!=(Iterator other) const { | ||||
|             return m_bit != other.m_bit; | ||||
|             return m_val != other.m_val; | ||||
|         } | ||||
| 
 | ||||
|     private: | ||||
|         int ComputeLsb() { | ||||
|             if (!m_has_lsb) { | ||||
|                 m_lsb = LeastSignificantSetBit(m_val); | ||||
|                 m_has_lsb = true; | ||||
|             } | ||||
|             return m_lsb; | ||||
|         } | ||||
|         IntTy m_val; | ||||
|         int m_bit; | ||||
|         int m_lsb = -1; | ||||
|         bool m_has_lsb = false; | ||||
|     }; | ||||
| 
 | ||||
|     BitSet() : m_val(0) {} | ||||
|  | @ -221,11 +227,10 @@ public: | |||
|     } | ||||
| 
 | ||||
|     Iterator begin() const { | ||||
|         Iterator it(m_val, 0); | ||||
|         return ++it; | ||||
|         return Iterator(m_val); | ||||
|     } | ||||
|     Iterator end() const { | ||||
|         return Iterator(m_val, -1); | ||||
|         return Iterator(0); | ||||
|     } | ||||
| 
 | ||||
|     IntTy m_val; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue