Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3|回复: 1
打印 上一主题 下一主题

还是走合成之后的buf修改

[复制链接]

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
跳转到指定楼层
楼主
发表于 2016-4-18 18:10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// Overrides ConsumerBase:nFrameAvailable(), does not call base class impl.
void FramebufferSurface:nFrameAvailable() {
    sp<GraphicBuffer> buf;
    sp<Fence> acquireFence;
    status_t err = nextBuffer(buf, acquireFence);
    if (err != NO_ERROR) {
        ALOGE("error latching nnext FramebufferSurface buffer: %s (%d)",
                strerror(-err), err);
        return;
    }
    err = mHwc.fbPost(mDisplayType, acquireFence, buf);
    if (err != NO_ERROR) {
        ALOGE("error posting framebuffer: %d", err);
    }
}

status_t err = nextBuffer(buf, acquireFence);
这个就是获得那个buffer。

这个buffer对应的物理地址是多少呢?


回复

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
沙发
 楼主| 发表于 2016-4-18 18:51:42 | 只看该作者
本帖最后由 zangcf 于 2016-4-18 18:56 编辑

ANativeWindowBuffer* getNativeBuffer() const;
从GraphicBuffer得到ANativeWindowBuffer
  •     ANativeWindow_Buffer outBuffer;  
  •     //Surface::SurfaceoutBuffer outBuffer;  
  •     surface->lock(&outBuffer,NULL);//获取surface缓冲区的地址  
  •     ssize_t bpr = outBuffer.stride * bytesPerPixel(outBuffer.format);  
  •     android_memset16((uint16_t*)outBuffer.bits, 0xF800, bpr*outBuffer.height);//往surface缓冲区塞要显示的RGB内容  



然后使用上面方法操作buffer
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2025-12-15 02:01 , Processed in 0.012249 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表