关闭

UNDERSTANDING ANDROID GRAPHICS INTERNALS – GRAPHIC BUFFER HANDLING INTERFACES

188人阅读 评论(0) 收藏 举报
分类:

In this post, we touch IGraphicBufferProducer, IGraphicBufferAlloc.

  • IGraphicBufferProducer

Defined in include/gui/IGraphicBufferProducer.h, it was formerly known as ISurfaceTexture. It is the Interface underpinning the queueBuffer(), dequeueBuffer, requestBuffer() and cancelBuffer() operations in Surface class.

An IGraphicBufferProducer is instantiated in ISurfaceComposerClient::createSurface();  BnGraphicBufferProducer implementor is BufferQueue (declared in frameworks/native/include/gui/BufferQueue.h); In SurfaceFlinger, its subclass variant SurfaceTextureLayer with reference to SurfaceFlinger is actually used,  and each instance of SurfaceTextureLayer corresponds to a Layer instance.

  • IGraphicBufferAlloc

Defined in framework/native/include/gui/IGraphicBufferAlloc.h, IGraphicBufferAlloc’s use is coupled with IGraphicBufferProducer to realize dequeueBuffer() operation.  ISurfaceComposer::createGraphicBufferAlloc() creates the interface.

In the SurfaceFlinger, the BnGraphicBufferAlloc implementor is GraphicBufferAlloc, declared in framework/native/include/gui/GraphicBufferAlloc.h.

0
0
查看评论

UNDERSTANDING ANDROID GRAPHICS INTERNALS – THE GRAPHIC SURFACE SERVICE INTERFACES

As pointed out in previous posts, Android does not allow UI applications to write to the frame buffer directly; SurfaceFlinger administrates the alloc...
  • Damon_X
  • Damon_X
  • 2016-06-01 11:49
  • 250

Understanding Linux Network Internals

一 、简介 Table of Contents 1 基本术语 1.1 本书常用的缩写 2 引用计数 2.1 引用计数函数 3 垃圾回收 3.1 异步3.2 同步 4 函数指针 4.1 缺点 5 goto语句 5.1 使用环境 6 捕捉bug 基本术语 八个位的量通常称为八位...
  • lanmolei814
  • lanmolei814
  • 2015-09-08 22:24
  • 639

Android6.0 显示系统GraphicBuffer分配内存

之前分析了显示系统的大致流程,其中有几个地方不是很清楚,这里我专门写几篇专题。 这篇先来看GraphicBuffer分配内存,我们在之前的博客中分析到用户进程创建一个Surface,最后返回的参数gbp是sp类型的,过程之前都分析过了,我们就不分析了,这个gbp是在Layer的onFirstRef中...
  • kc58236582
  • kc58236582
  • 2016-10-17 16:18
  • 2340

好书推荐-英文原版【Understanding MySQL Internals】(附下载地址)

1.综述这是一本值得每一位程序员去看的原版书,质量非常高,堪称MySQL的经典之作。书的内容包括: 1. MySQL源码的获取、编译、阅读方式的介绍; 2. 核心类、数据结构、核心的全局变量、API介绍(必读); 3. client/server的通讯协议方式,通讯包格式介绍; 4. 变量配...
  • qq_35440678
  • qq_35440678
  • 2017-03-12 22:24
  • 538

UNDERSTANDING ANDROID GRAPHICS INTERNALS – GRAPHICS BASICS(II)

After the preceding post on ANativeWindow and ANativeWindowBuffer, we have the fodder to discuss GraphicBuffer and Surface. After the preceding pos...
  • Damon_X
  • Damon_X
  • 2016-06-01 11:52
  • 233

Android graphic 架构

Graphic Architecture 本篇文章是基于谷歌有关Graphic的一篇概览文章的翻译:http://source.android.com/devices/graphics/architecture.html 大量文字以及术语的理解基于自身的理解,可能并不准确。文中有部分英文原文我也不能...
  • haohaoxuexi2014
  • haohaoxuexi2014
  • 2017-01-10 08:27
  • 1509

Android Graphic - Overview

翻译原文连接: http://source.android.com/devices/graphics/index.htmlGraphics The Android framework offers a variety of graphics rendering APIs for 2D and ...
  • chwan_gogogo
  • chwan_gogogo
  • 2015-07-19 19:41
  • 749

UNDERSTANDING ANDROID GRAPHICS INTERNALS – GRAPHICS BASICS (I)

In this post, it is presumed that you know about frame buffer driver, display control, display overlay, frame buffer, frame rate, commo...
  • Damon_X
  • Damon_X
  • 2016-06-01 11:51
  • 156

转贴:C++ ABI: Exception Handling

Itanium C++ ABI: Exception Handling ($Revision: 1.22 $) Contents Introduction Definitions Base Documents <!-- ...
  • ATField
  • ATField
  • 2007-03-25 15:56
  • 3071

UNDERSTANDING ANDROID GRAPHICS INTERNALS – SURFACEFLINGER (II)

Prior to Jelly Bean, the threadLoop in SurfaceFlinger.cpp processes composition and rendering sequentially in a thread loop. Newly enqueue...
  • Damon_X
  • Damon_X
  • 2016-06-01 11:43
  • 155
    个人资料
    • 访问:21911次
    • 积分:349
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:38篇
    • 译文:0篇
    • 评论:0条
    文章分类