解决方法:
1.在bootablerecoveryminuiGraphics.c 文件找到gr_flip(void)方法
把memcpy(gr_framebuffer[gr_active_fb].data,gr_mem_surface.data,
fi.line_length*vi.yres);修改为
rotate_180(gr_framebuffer[gr_active_fb].data,gr_mem_surface.data
,fi.line_length*vi.yres);
- 添加方法
```
void *rotate_180(void *_dst,const void *_src,int len)</li>
</ol>
<p>{</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>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++;
</code></pre></div></div>
<p>}</p>
<p>src -=pixelSize;</p>
<p>}
Return _dst;</p>
<p>}</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rotate_180方法的作用就是把buffer中的数据按像素倒转过来例如:原始数据
</code></pre></div></div>
<p>{(1,2,3),(4,5,6),(7,8,9),</p>
<p>(a,b,c),(d,e,f),(g,h,i),</p>
<p>(A,B,C),(D,E,F),(G,H,I)</p>
<p>}</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>180度旋转后数据
</code></pre></div></div>
<p>{(G,H,I),(D,E,F),(A,B,C),</p>
<p>(g,h,i),(d,e,f),(a,b,c),</p>
<p>(7,8,9),(4,5,6),(1,2,3)</p>
<p>}
```
每个像素的数据不变,以像素为单位旋转顺序
近期评论