mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Pica/OutputMerger: Implement color format checking.
This commit is contained in:
		
							parent
							
								
									3b5710bae6
								
							
						
					
					
						commit
						aaf30ca4ee
					
				
					 2 changed files with 13 additions and 4 deletions
				
			
		|  | @ -421,7 +421,7 @@ struct Regs { | |||
|         INSERT_PADDING_WORDS(0x6); | ||||
| 
 | ||||
|         u32 depth_format; | ||||
|         u32 color_format; | ||||
|         BitField<16, 3, u32> color_format; | ||||
| 
 | ||||
|         INSERT_PADDING_WORDS(0x4); | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,10 +20,19 @@ namespace Rasterizer { | |||
| static void DrawPixel(int x, int y, const Math::Vec4<u8>& color) { | ||||
|     const PAddr addr = registers.framebuffer.GetColorBufferPhysicalAddress(); | ||||
|     u32* color_buffer = reinterpret_cast<u32*>(Memory::GetPointer(PAddrToVAddr(addr))); | ||||
|     u32 value = (color.a() << 24) | (color.r() << 16) | (color.g() << 8) | color.b(); | ||||
| 
 | ||||
|     // Assuming RGBA8 format until actual framebuffer format handling is implemented
 | ||||
|     *(color_buffer + x + y * registers.framebuffer.GetWidth()) = value; | ||||
|     switch (registers.framebuffer.color_format) { | ||||
|     case registers.framebuffer.RGBA8: | ||||
|     { | ||||
|         u32 value = (color.a() << 24) | (color.r() << 16) | (color.g() << 8) | color.b(); | ||||
|         *(color_buffer + x + y * registers.framebuffer.GetWidth()) = value; | ||||
|         break; | ||||
|     } | ||||
| 
 | ||||
|     default: | ||||
|         LOG_CRITICAL(Render_Software, "Unknown framebuffer color format %x", registers.framebuffer.color_format); | ||||
|         exit(1); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| static const Math::Vec4<u8> GetPixel(int x, int y) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue