HAL Series(3) Gralloc

来源:互联网 发布:实体店在淘宝进货渠道 编辑:程序博客网 时间:2024/04/30 00:04

Android里面的Graphics部分总感觉很乱,看了几次也没理顺清楚,这次一定要理顺清楚~~~


从硬件模块的id入手:

#define GRALLOC_HARDWARE_MODULE_ID "gralloc"


在源码中搜索"GRALLOC_HARDWARE_MODULE_ID",可以发现:

struct 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 = "The Android Open Source Project",
            .methods = &gralloc_module_methods
        },
        
        .registerBuffer = gralloc_register_buffer,
        .unregisterBuffer = gralloc_unregister_buffer,
        .lock = gralloc_lock,
        .unlock = gralloc_unlock,
    },
    
    .framebuffer = 0,
    .flags = 0,
    .numBuffers = 0,
    .bufferMask = 0,
    .lock = PTHREAD_MUTEX_INITIALIZER,
    .currentBuffer = 0,
};




一个硬件模块,但是有两个hw_device_t:

struct gralloc_context_t 
{
    alloc_device_t  device;
    /* our private data here */
};



struct fb_context_t 
{
    framebuffer_device_t  device;
};









0 0
原创粉丝点击