Discuz! Board
标题:
还是走合成之后的buf修改
[打印本页]
作者:
zangcf
时间:
2016-4-18 18:10
标题:
还是走合成之后的buf修改
// 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对应的物理地址是多少呢?
作者:
zangcf
时间:
2016-4-18 18:51
本帖最后由 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
欢迎光临 Discuz! Board (http://47.89.242.157:9000/bbs/discuz/)
Powered by Discuz! X3.2