• Recovery和Charger模式下屏幕旋转180度


    转自:http://www.etwiki.cn/android/1267.html

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

    解决方法:

    1.在bootable ecoveryminuiGraphics.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);

    2.添加方法

    void *rotate_180(void *_dst,const void *_src,int len)
    {
      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)

    }

    每个像素的数据不变,以像素为单位旋转顺序

    这样就完成了旋转

  • 相关阅读:
    mock数据
    关于适配各种浏览器的图片预览。
    闭包
    兼容性 适配
    递归 使用callee
    webservice的model层命名空间不同的问题
    删除右键菜单中的Git
    windows server core 设置shell 及切换
    设置共享用户名密码
    Windows Remote Shell(WinRM)使用介绍
  • 原文地址:https://www.cnblogs.com/dirt2/p/5910386.html
Copyright © 2020-2023  润新知