Browser进程的主要工作是将render进程中包含网页内容的texture合成到on-screen surface。
Browser进程创建的是on-screen surface,网页内容最终要渲染到on-screen surface的back buffer上。
Browser进程调用eglswapbuffer后onscreen surface对应的back buffer和front buffer会互换,
下次屏幕刷新时,front buffer的内容会显示到屏幕上。
Browser进程创建的是on-screen surface,网页内容最终要渲染到on-screen surface的back buffer上。
Browser进程调用eglswapbuffer后onscreen surface对应的back buffer和front buffer会互换,
下次屏幕刷新时,front buffer的内容会显示到屏幕上。
下面是Browser进程合成操作的触发流程:
RenderWidgetHostViewAndroid::BuffersSwapped()的主要操作是调用
CmdBufferImageTransportFactory::AcquireTexture(){
context_->consumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox_name);
}消耗render进程产生的目标texture.
context_->consumeTextureCHROMIUM最终会调用到gles2_cmd_decoder.cc中的
DoConsumeTextureCHROMIUM();
GLES2DecoderImpl::DoConsumeTextureCHROMIUM()中会绑定当前mailbox关联的
render进程产生的目标textures,glBindTexture.