问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android opengl es与surfaceview什么关系

发布网友 发布时间:2022-04-23 20:25

我来回答

1个回答

热心网友 时间:2023-04-25 13:32

1.SurfaceFlinger是一个服务,主要是负责合成各窗口的Surface,然后通过OpenGLES显示到FrameBuffer上。2.DisplayHardware是对显示设备的抽象,包括FrameBuffer和Overlay。加载FrameBuffer和Overlay插件,并初始化OpenGLES:view plainmNativeWindow = new FramebufferNativeWindow(); framebuffer_device_t const * fbDev = mNativeWindow->getDevice(); if (hw_get_mole(OVERLAY_HARDWARE_MODULE_ID, &mole) == 0) { overlay_control_open(mole, &mOverlayEngine); } surface = eglCreateWindowSurface(display, config, mNativeWindow.get(), NULL); eglMakeCurrent(display, surface, surface, context); 3.FramebufferNativeWindow 是framebuffer 的抽象,它负责加载libgralloc,并打开framebuffer设备。FramebufferNativeWindow并不直接使用 framebuffer,而是自己创建了两个Buffer:queueBuffer负责显示一个Buffer到屏幕上,它调用fb->post去显示。dequeueBuffer获取一个空闲的Buffer,用来在后台绘制。这两个函数由eglSwapBuffers调过来,调到view plainegl_window_surface_v2_t::swapBuffers: nativeWindow->queueBuffer(nativeWindow, buffer); nativeWindow->dequeueBuffer(nativeWindow, &buffer); 4.msm7k/liboverlay是Overlay的实现,与其它平台不同的是,高通平台上的Overlay并不是提供一个framebuffer设备,而通过fb0的ioctl来实现的,ioctl分为两类操作:OverlayControlChannel用于设置参数,比如设置Overlay的位置,宽度和高度:view plainbool OverlayControlChannel::setPosition(int x, int y, uint32_t w, uint32_t h) { ov.dst_rect.x = x; ov.dst_rect.y = y; ov.dst_rect.w = w; ov.dst_rect.h = h; ioctl(mFD, MSMFB_OVERLAY_SET, &ov); } OverlayDataChannel用于显示Overlay,其中最重要的函数就是queueBuffer:view plainbool OverlayDataChannel::queueBuffer(uint32_t offset) { mOvData.data.offset = offset; ioctl(mFD, MSMFB_OVERLAY_PLAY, odPtr)) } 5.msm7k/libgralloc 是显示缓存的抽象,包括framebuffer和普通Surface的Buffer。framebuffer只是/dev/graphic/fb0的包 装,Surface的Buffer则是对/dev/pmem、ashmem和GPU内存(msm_hw3dm)的包装,它的目标主要是方便硬件加速,因为 DMA传输使用物理地址,要求内存在物理地址上连续。6.msm7k/libcopybit这是2D加速库,主要负责Surface的拉伸、旋转和合成等操作。它有两种实现方式:copybit.cpp: 基于fb0的ioctl(MSMFB_BLIT)的实现。copybit_c2d.cpp: 基于kgsl的实现,只是对libC2D2.so的包装,libC2D2.so应该是不开源的。7.pmemmisc/pmem.c: 对物理内存的管理,算法和用户空间的接口。board-msm7x27.c定义了物理内存的缺省大小:view plain#define MSM_PMEM_MDP_SIZE 0x1B76000 #define MSM_PMEM_ADSP_SIZE 0xB71000 #define MSM_PMEM_AUDIO_SIZE 0x5B000 #define MSM_FB_SIZE 0x177000 #define MSM_GPU_PHYS_SIZE SZ_2M #define PMEM_KERNEL_EBI1_SIZE 0x1C00 msm_msm7x2x_allocate_memory_regions分配几大块内存用于给pmem做二次分配。8.KGSLKernel Graphics System Layer (KGSL),3D图形加速驱动程序,源代码drivers/gpu/msm目录下,它是对GPU的包装,给OpenGLES 2.0提供抽象的接口。9.msm_hw3dm这个我在内核中没有找到相关代码。10.msm_fbmsm_fb.c: framebuffer, overlay和blit的用户接口。mdp_dma.c: 对具体显示设备的包装,提供两种framebuffer更新的方式:mdp_refresh_screen: 定时更新。mdp_dma_pan_update: 通过pan display主动更新。mdp_dma_lcdc.c:针对LCD实现的显示设备,mdp_lcdc_update用更新framebuffer。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想Z470AM I5处理器与I3 联想ideapad z470 独显默认设置是什么 联想Z470 I5处理器 GT520M的显卡跟普通的GT520M显卡有什么区别 性能怎 ... 我新买了一台联想z470 i3-2310 但是朋友说显卡不太好!! 我玩天龙八部... 联想的z470笔记本 上面 的独显GT520M 能不能 更换 或者是升级阿? ...我的是双显卡的 z470- i5 显卡是 gt520m 能换吗 vivo手机耳机麦克风说话声音小 耳机通话声音小是怎么回事 为什么我手机耳机的麦克风声音很小怎么调 求:7个字的情侣游戏名,纯汉字,有诗意的(不要古诗)。不带任何符号或英文... 如何在Android上使用OpenGL ES 2.0绘制点 qt5.4 都添加了什么? Opengl怎么设置多个相机,并且从不同的相机的角度获得目标物体的图像 怎样opengl es渲染到纹理 请教关于opengl中FBO离屏渲染的使用 求帮助解决OpenGL显示抗锯齿问题 opengl如何渲染到内存 No OpenGL framebuffer support. Please upgrade the driver of your video card.是什么意思? 为openGL的选择缓冲区分配内存时要考虑什么因素? 运行游戏显示OpenGL framebuffer object support is missing.... 求教opengl es2.0 中framebufferobject的一些生成机制 FrameBuffer,xlib,opengl,gtk,qt,sdl之间的关系是怎样的 android上如何在应用程序里使用opengl截取framebuffer的内容? opengl后处理为什么需要两个framebuffer 手机不可以掉到马桶里弄湿(猜4字成语)? 手机掉到马桶里怎么办? 手机不可以掉到马桶里成语是什么? 手机不可以掉到马桶里歇后语是什么 歇后语:1 手机不可以掉到马桶里()2蜜蜂停在日历上()3老鼠给大象指路()4下雨天出日头()5无头苍蝇 手机掉到马桶里面应该怎么处理 如何读取在OpenGL中绘制的超大像素的图像数据? Windows 支持 DirectX 和 OpenGL,为什么大多数 PC 游戏还是 201 C++语言,Opengl 中,为什么glClearColor不能让屏幕变色。 暴龙太阳镜和aoJo哪个好? 分手时,怎么样判断是真性分手还是假性分手? 暴龙眼镜和L0HO眼镜比起来哪个更好? 男朋友假分手,还想要复合会有哪些表现? 买开车用的眼镜,哪个牌子好? 假性分手和真性分手的区别是什么? 眼镜店加盟品牌排行榜前十名有哪些? 什么太阳镜好? 眼镜框品牌哪个好 分析真假性分手如何判断? 暴龙眼镜怎么样? 白羊座男生假分手会有什么表现? 怎么判断男生说分手是真是假? 暴龙和雷朋哪个眼镜好些呢? 时尚眼镜框品牌哪个好 有些人容易冲动,气消了会后悔自己的行为,双子男真分手和假分手有何不同? QINA镜片和暴龙镜片哪个好