mirror of
				https://github.com/yuzu-emu/yuzu.git
				synced 2025-10-31 21:02:49 +00:00 
			
		
		
		
	videocore: Added RG8 texture support
This commit is contained in:
		
							parent
							
								
									882040fde7
								
							
						
					
					
						commit
						5b65d95310
					
				| @ -68,6 +68,15 @@ inline const Math::Vec4<u8> DecodeRGB8(const u8* bytes) { | ||||
|     return { bytes[2], bytes[1], bytes[0], 255 }; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Decode a color stored in RG8 (aka HILO8) format | ||||
|  * @param bytes Pointer to encoded source color | ||||
|  * @return Result color decoded as Math::Vec4<u8> | ||||
|  */ | ||||
| inline const Math::Vec4<u8> DecodeRG8(const u8* bytes) { | ||||
|     return { bytes[1], bytes[0], 0, 255 }; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Decode a color stored in RGB565 format | ||||
|  * @param bytes Pointer to encoded source color | ||||
| @ -151,6 +160,15 @@ inline void EncodeRGB8(const Math::Vec4<u8>& color, u8* bytes) { | ||||
|     bytes[0] = color.b(); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Encode a color as RG8 (aka HILO8) format | ||||
|  * @param color Source color to encode | ||||
|  * @param bytes Destination pointer to store encoded color | ||||
|  */ | ||||
| inline void EncodeRG8(const Math::Vec4<u8>& color, u8* bytes) { | ||||
|     bytes[1] = color.r(); | ||||
|     bytes[0] = color.g(); | ||||
| } | ||||
| /**
 | ||||
|  * Encode a color as RGB565 format | ||||
|  * @param color Source color to encode | ||||
|  | ||||
| @ -359,6 +359,12 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     case Regs::TextureFormat::RG8: | ||||
|     { | ||||
|         auto res = Color::DecodeRG8(source + VideoCore::GetMortonOffset(x, y, 2)); | ||||
|         return { res.r(), res.g(), 0, 255 }; | ||||
|     } | ||||
| 
 | ||||
|     case Regs::TextureFormat::I8: | ||||
|     { | ||||
|         const u8* source_ptr = source + VideoCore::GetMortonOffset(x, y, 1); | ||||
|  | ||||
| @ -163,7 +163,7 @@ struct Regs { | ||||
|         RGB565       =  3, | ||||
|         RGBA4        =  4, | ||||
|         IA8          =  5, | ||||
| 
 | ||||
|         RG8          =  6,  ///< @note Also called HILO8 in 3DBrew.
 | ||||
|         I8           =  7, | ||||
|         A8           =  8, | ||||
|         IA4          =  9, | ||||
| @ -204,6 +204,7 @@ struct Regs { | ||||
|         case TextureFormat::RGB565: | ||||
|         case TextureFormat::RGBA4: | ||||
|         case TextureFormat::IA8: | ||||
|         case TextureFormat::RG8: | ||||
|             return 4; | ||||
| 
 | ||||
|         case TextureFormat::I4: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Patrick Martin
						Patrick Martin