fermi2d: Correct Origin Mode
This commit is contained in:
		
				
					committed by
					
						
						ReinUsesLisp
					
				
			
			
				
	
			
			
			
						parent
						
							a56f687793
						
					
				
				
					commit
					cb728797b0
				
			@@ -38,11 +38,16 @@ void Fermi2D::HandleSurfaceCopy() {
 | 
			
		||||
 | 
			
		||||
    const u32 src_blit_x1{static_cast<u32>(regs.blit_src_x >> 32)};
 | 
			
		||||
    const u32 src_blit_y1{static_cast<u32>(regs.blit_src_y >> 32)};
 | 
			
		||||
    const u32 src_blit_x2{
 | 
			
		||||
        static_cast<u32>((regs.blit_src_x + (regs.blit_dst_width * regs.blit_du_dx)) >> 32)};
 | 
			
		||||
    const u32 src_blit_y2{
 | 
			
		||||
        static_cast<u32>((regs.blit_src_y + (regs.blit_dst_height * regs.blit_dv_dy)) >> 32)};
 | 
			
		||||
 | 
			
		||||
    u32 src_blit_x2, src_blit_y2;
 | 
			
		||||
    if (regs.blit_control.origin == Origin::Corner) {
 | 
			
		||||
        src_blit_x2 =
 | 
			
		||||
            static_cast<u32>((regs.blit_src_x + (regs.blit_du_dx * regs.blit_dst_width)) >> 32);
 | 
			
		||||
        src_blit_y2 =
 | 
			
		||||
            static_cast<u32>((regs.blit_src_y + (regs.blit_dv_dy * regs.blit_dst_height)) >> 32);
 | 
			
		||||
    } else {
 | 
			
		||||
        src_blit_x2 = static_cast<u32>((regs.blit_src_x >> 32) + regs.blit_dst_width);
 | 
			
		||||
        src_blit_y2 = static_cast<u32>((regs.blit_src_y >> 32) + regs.blit_dst_height);
 | 
			
		||||
    }
 | 
			
		||||
    const Common::Rectangle<u32> src_rect{src_blit_x1, src_blit_y1, src_blit_x2, src_blit_y2};
 | 
			
		||||
    const Common::Rectangle<u32> dst_rect{regs.blit_dst_x, regs.blit_dst_y,
 | 
			
		||||
                                          regs.blit_dst_x + regs.blit_dst_width,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user