mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	GPU: Interface cleanup.
This commit is contained in:
		
							parent
							
								
									46950ee4de
								
							
						
					
					
						commit
						9d618d0b70
					
				
					 2 changed files with 20 additions and 13 deletions
				
			
		|  | @ -53,10 +53,10 @@ void SetFramebufferLocation(const FramebufferLocation mode) { | |||
|  * Gets the location of the framebuffers | ||||
|  * @return Location of framebuffers as FramebufferLocation enum | ||||
|  */ | ||||
| const FramebufferLocation GetFramebufferLocation() { | ||||
|     if ((g_regs.framebuffer_top_right_1 & ~Memory::VRAM_MASK) == Memory::VRAM_PADDR) { | ||||
| FramebufferLocation GetFramebufferLocation(u32 address) { | ||||
|     if ((address & ~Memory::VRAM_MASK) == Memory::VRAM_PADDR) { | ||||
|         return FRAMEBUFFER_LOCATION_VRAM; | ||||
|     } else if ((g_regs.framebuffer_top_right_1 & ~Memory::FCRAM_MASK) == Memory::FCRAM_PADDR) { | ||||
|     } else if ((address & ~Memory::FCRAM_MASK) == Memory::FCRAM_PADDR) { | ||||
|         return FRAMEBUFFER_LOCATION_FCRAM; | ||||
|     } else { | ||||
|         ERROR_LOG(GPU, "unknown framebuffer location!"); | ||||
|  | @ -64,21 +64,26 @@ const FramebufferLocation GetFramebufferLocation() { | |||
|     return FRAMEBUFFER_LOCATION_UNKNOWN; | ||||
| } | ||||
| 
 | ||||
| u32 GetFramebufferAddr(const u32 address) { | ||||
|     switch (GetFramebufferLocation(address)) { | ||||
|     case FRAMEBUFFER_LOCATION_FCRAM: | ||||
|         return Memory::VirtualAddressFromPhysical_FCRAM(address); | ||||
|     case FRAMEBUFFER_LOCATION_VRAM: | ||||
|         return Memory::VirtualAddressFromPhysical_VRAM(address); | ||||
|     default: | ||||
|         ERROR_LOG(GPU, "unknown framebuffer location"); | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Gets a read-only pointer to a framebuffer in memory | ||||
|  * @param address Physical address of framebuffer | ||||
|  * @return Returns const pointer to raw framebuffer | ||||
|  */ | ||||
| const u8* GetFramebufferPointer(const u32 address) { | ||||
|     switch (GetFramebufferLocation()) { | ||||
|     case FRAMEBUFFER_LOCATION_FCRAM: | ||||
|         return (const u8*)Memory::GetPointer(Memory::VirtualAddressFromPhysical_FCRAM(address)); | ||||
|     case FRAMEBUFFER_LOCATION_VRAM: | ||||
|         return (const u8*)Memory::GetPointer(Memory::VirtualAddressFromPhysical_VRAM(address)); | ||||
|     default: | ||||
|         ERROR_LOG(GPU, "unknown framebuffer location"); | ||||
|     } | ||||
|     return NULL; | ||||
|     u32 addr = GetFramebufferAddr(address); | ||||
|     return (addr != 0) ? Memory::GetPointer(addr) : nullptr; | ||||
| } | ||||
| 
 | ||||
| template <typename T> | ||||
|  |  | |||
|  | @ -219,10 +219,12 @@ void SetFramebufferLocation(const FramebufferLocation mode); | |||
|  */ | ||||
| const u8* GetFramebufferPointer(const u32 address); | ||||
| 
 | ||||
| u32 GetFramebufferAddr(const u32 address); | ||||
| 
 | ||||
| /**
 | ||||
|  * Gets the location of the framebuffers | ||||
|  */ | ||||
| const FramebufferLocation GetFramebufferLocation(); | ||||
| FramebufferLocation GetFramebufferLocation(u32 address); | ||||
| 
 | ||||
| template <typename T> | ||||
| inline void Read(T &var, const u32 addr); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue