| 
									
										
										
										
											2015-05-24 06:55:12 +02:00
										 |  |  | // Copyright 2009 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2013-04-17 23:29:41 -04:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | #include "VideoBackends/Software/EfbCopy.h"
 | 
					
						
							| 
									
										
										
										
											2016-01-17 16:54:31 -05:00
										 |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							|  |  |  | #include "Common/Logging/Log.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "Core/HW/Memmap.h"
 | 
					
						
							|  |  |  | #include "VideoBackends/Software/EfbInterface.h"
 | 
					
						
							|  |  |  | #include "VideoBackends/Software/TextureEncoder.h"
 | 
					
						
							| 
									
										
										
										
											2015-10-09 20:50:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "VideoCommon/BPMemory.h"
 | 
					
						
							| 
									
										
										
										
											2014-07-08 16:49:33 +02:00
										 |  |  | #include "VideoCommon/Fifo.h"
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace EfbCopy | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | void ClearEfb() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   u32 clearColor = (bpmem.clearcolorAR & 0xff) << 24 | bpmem.clearcolorGB << 8 | | 
					
						
							|  |  |  |                    (bpmem.clearcolorAR & 0xff00) >> 8; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   int left = bpmem.copyTexSrcXY.x; | 
					
						
							|  |  |  |   int top = bpmem.copyTexSrcXY.y; | 
					
						
							|  |  |  |   int right = left + bpmem.copyTexSrcWH.x; | 
					
						
							|  |  |  |   int bottom = top + bpmem.copyTexSrcWH.y; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   for (u16 y = top; y <= bottom; y++) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     for (u16 x = left; x <= right; x++) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       EfbInterface::SetColor(x, y, (u8*)(&clearColor)); | 
					
						
							|  |  |  |       EfbInterface::SetDepth(x, y, bpmem.clearZValue); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | } |