如何让recovery 屏幕旋转180度

如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度

解决方法:

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);

  1. 添加方法
    ```
    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>}
    ```
    每个像素的数据不变,以像素为单位旋转顺序