forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			958 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			958 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright 2009 Dolphin Emulator Project
 | 
						|
// Licensed under GPLv2+
 | 
						|
// Refer to the license.txt file included.
 | 
						|
 | 
						|
#include "VideoBackends/Software/EfbCopy.h"
 | 
						|
#include "Common/CommonTypes.h"
 | 
						|
#include "Common/Logging/Log.h"
 | 
						|
#include "Core/HW/Memmap.h"
 | 
						|
#include "VideoBackends/Software/EfbInterface.h"
 | 
						|
#include "VideoBackends/Software/TextureEncoder.h"
 | 
						|
 | 
						|
#include "VideoCommon/BPMemory.h"
 | 
						|
#include "VideoCommon/Fifo.h"
 | 
						|
 | 
						|
namespace EfbCopy
 | 
						|
{
 | 
						|
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);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
}
 |