如何讓Recovery (系統固件升級),charger(關機充電動畫)時屏幕旋轉180度c++
解決方法:動畫
1.在bootable\recovery\minui\Graphics.c 文件找到gr_flip(void)方法ui
把memcpy(gr_framebuffer[gr_active_fb].data,gr_mem_surface.data,spa
fi.line_length*vi.yres);修改成ip
rotate_180(gr_framebuffer[gr_active_fb].data,gr_mem_surface.datatable
,fi.line_length*vi.yres);方法
2.添加方法數據
void *rotate_180(void *_dst,const void *_src,int len)tab
{文件
int pixelSize = PIXEL_SIZE,size,step = len/pixelSize;//像素個數
unsigned char *dst = _dst;
const unsigned char *src = _src + len;
while(step-- > 0){
size = pixelSize;
src -=size;
while(size-- > 0){
*dst++ = *src++;
}
src -=pixelSize;
}
Return _dst;
}
rotate_180方法的做用就是把buffer中的數據按像素倒轉過來
例如:原始數據
{(1,2,3),(4,5,6),(7,8,9),
(a,b,c),(d,e,f),(g,h,i),
(A,B,C),(D,E,F),(G,H,I)
}
180度旋轉後數據
{(G,H,I),(D,E,F),(A,B,C),
(g,h,i),(d,e,f),(a,b,c),
(7,8,9),(4,5,6),(1,2,3)
}
每一個像素的數據不變,以像素爲單位旋轉順序
這樣就完成了旋轉