基於androidO的gralloc 流程分析

2021-08-09 16:39:10 字數 1252 閱讀 9384

1.gralloc hal 層邏輯分析

alloc_device_alloc(alloc_device_t*

dev,intw,inth,int

format,int

usage, buffer_handle_t*

phandle,int*

pstride)

其中幾個usage 的理解:
1)

hal_pixel_format_implementation_defined

format主要是指當前buffer支援的畫素點儲存格式,以hal_pixel_format_implementation_defined居多,表明資料格式是由gralloc模組來決定的。

2)gralloc_usage_hw_fb

3)gralloc_alloc_fb_from_ion

4)此函式的形參是怎麼傳入的?

2.initwithsize(inwidth, inheight, informat, inlayercount,usage, std::move(requestorname)) (sideband 流程可以參考其構建native_handle_t)

1)graphicbufferallocator& allocator = graphicbufferallocator::get();

2 )allocator.allocate(inwidth, inheight, informat, inlayercount,  inusage, &handle, &outstride, mid, std::move(requestorname));

3.initwithhandle(handle, method, width, height, format,layercount, usage, stride);

4.graphic buffer 分配流程;

2)初始化mdummydescriptorinfo

3)descriptor = mgralloc->createdescriptor(mdummydescriptorinfo));

4)mallocator->allocate(

descriptor, 1, [&](const auto& tmperror, const auto& tmpstride,

const auto& tmpbuffers) 

Android O 趟過的那些坑

日曆適配android o 許可權write calendar read calendar兩個許可權是一組,只要申請了write許可權read許可權自動就給了 但是現在不是,需要read write許可權都要申請,雖然 呼叫介面的時候,介面上許可權的 dialog不別顯示wirte read許可權的...

基於IP,基於port和基於網域名稱的三種

1 基於相同ip不同port的虛擬主機 2 將listen欄位改為 listen 80 listen 8888 以上設定表示使用80以及8888埠 3 更改虛擬主機部分為 documentroot var www html website1 documentroot var www html web...

基於函式的索引 建立基於函式的索引

基於函式的索引 1基於函式的索引是常規的b樹索引。2該索引存放的資料是由表中的資料應用函式後得到的,而不是直接存放表中的資料本身。3如果查詢條件包含與索引相同的函式,就可以使用基於函式的索引,提高查詢速度 舉例 測試表 create table student2 sno varchar2 10 pr...