Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android GUI系統之SurfaceFlinger(17) handleRepaint

Android GUI系統之SurfaceFlinger(17) handleRepaint

編輯:Android開發教程

1.1.1 handleRepaint

經過handleTransaction和handlePageFlip等步驟的准備工作後,現在可以合成各圖層數據了。

void SurfaceFlinger::handleRepaint()

{…

mSwapRegion.orSelf(mDirtyRegion);

   const DisplayHardware&hw(graphicPlane(0).displayHardware());

   …

   uint32_t flags =hw.getFlags();//系統支持的渲染方式

   if (flags &DisplayHardware::SWAP_RECTANGLE) {

      mDirtyRegion.set(mSwapRegion.bounds());

   } else {

       if (flags & DisplayHardware::PARTIAL_UPDATES) {

          mDirtyRegion.set(mSwapRegion.bounds());

       } else {

          mDirtyRegion.set(hw.bounds());

           mSwapRegion =mDirtyRegion;

       }

   }

   setupHardwareComposer();

   composeSurfaces(mDirtyRegion);//合成各圖層數據

  mSwapRegion.orSelf(mDirtyRegion);

   mDirtyRegion.clear();

}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved