0 前言
《iTOP4412|Android-4.0.3_r1 Gralloc》分析了4.0.3_r1版本的Gralloc实现和使用i情况,本文继续基于android-4.4.4_r1进行分析。
1 HAL
和《iTOP4412|Android-4.0.3_r1 Gralloc》相比,就是源码路径发生了变化,其它的并没有多差异:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31struct private_module_t HAL_MODULE_INFO_SYM = { base: { common: { tag: HARDWARE_MODULE_TAG, version_major: 1, version_minor: 0, id: GRALLOC_HARDWARE_MODULE_ID, name: "Graphics Memory Allocator Module", author: "ARM Ltd.", methods: &gralloc_module_methods, dso: NULL, reserved : {0,}, }, registerBuffer: gralloc_register_buffer, unregisterBuffer: gralloc_unregister_buffer, lock: gralloc_lock, unlock: gralloc_unlock, getphys: gralloc_getphys, perform: NULL, lock_ycbcr: NULL, reserved_proc: {0,}, }, framebuffer: NULL, flags: 0, numBuffers: 0, bufferMask: 0, lock: PTHREAD_MUTEX_INITIALIZER, currentBuffer: NULL, ion_client: -1, }; // @file: hardware/samsung_slsi/exynos4/libgralloc_ump/gralloc_module.cpp
1.1 .open()
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16static int gralloc_device_open(const hw_module_t* module, const char* name, hw_device_t** device) { int status = -EINVAL; char property[PROPERTY_VALUE_MAX]; if (!strcmp(name, GRALLOC_HARDWARE_GPU0)) status = alloc_device_open(module, name, device); else if (!strcmp(name, GRALLOC_HARDWARE_FB0)) status = framebuffer_device_open(module, name, device); property_get("ro.build.version.sdk",property,0); gSdkVersion = atoi(property); return status; } // @file: hardware/samsung_slsi/exynos4/libgralloc_ump/gralloc_module.cpp
2 FW
基本同《iTOP4412|Android-4.0.3_r1 Gralloc》,就是多了HWComposer这个应用场景,同时使用同时使用上述gralloc_module_t和framebuffer_device_t,详见《iTOP4412|Android-4.4.4_r1 HWC-1.1》。
3 其它
比 《iTOP4412|Android-4.0.3_r1 Gralloc》多了许多。
参考资料
[1]Android-4.4图像显示之gralloc驱动分析
最后
以上就是仁爱向日葵最近收集整理的关于iTOP4412|Android-4.4.4_r1 Gralloc0 前言1 HAL2 FW3 其它参考资料的全部内容,更多相关iTOP4412|Android-4.4.4_r1内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复