Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 理解 Android 2D/3D 圖形架構

理解 Android 2D/3D 圖形架構

編輯:關於Android編程

首先理解Android 的 egl 的函數調用,先要得到display (對應顯示器),而後選擇一個支持的config(這是顯卡支持的),而後創建WindowSurface, 還要創建context (context 相當於 opengl 這個狀態機), 而後就可以調用 gl 的繪圖函數在Surface上畫圖, 工作完成後需要釋放 Context, windowSurace這些資源

\ <喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+QW5kcm9pZCAzRCDNvNDOvNy5ucjnz8I8L3A+CjxwPrWx08O7p8q508OhoUdMU3VyZmFjZVZpZXcgtcTKsbryo6y74bX308NlZ2wgtcS6r8r9o6y0tL2os/ZHTFN1cmZhY2VWaWV30sDAtaGhd2luZG93U3VyYWNlo6xDb250ZXh01eLQqbbUz/OjrKGhtvi687DRamF2YSC1xGdstffTw9equ6/OqrbUbGliR0wuc2+1xG5hdGl2ZbX308MsbGliR0wuc2+74bX308O1vc/Uv6jH/bavPC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/20140501/20140501090137124.png" alt="\">

如果沒有硬件就是走軟件模擬的的gl函數,值得注意的是Andoid對其中copybit作了優化

2D渲染

以前Android是使用skia生成2D圖形的,後來(4.1 Jellybean )為了提高性能,改為使用 opengl (因為可以可以gpu),但以前的skia軟架構依舊保留

當編譯時打開 USE_OPENGL_RENDER:=true,才打開硬件加速(默認是打開),就是libhwui.so硬件加速的實現

跟3D一樣創建Surface, 創建Context,調用gl函數繪制...

\


上面兩個架構,渲染好了Surface(不管是GPU渲染出來的,還是cpu模擬渲染出來的),  SurfaceFlinger在最後上屏的時候,又調用了 opengl 的函數。也分為gpu硬件上屏,還是cpu模擬



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