首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EGL像素映射有什么好处?

EGL像素映射有什么好处?
EN

Stack Overflow用户
提问于 2013-10-29 20:46:51
回答 2查看 4.6K关注 0票数 1

EGL提供了两种方法来创建带有本地支持存储的EGL曲面,即eglCreateWindowSurfaceegCreatePixmapSurface。两者都创建了EGL曲面,与本地图形层进行交互。(与不与本机图形层交互的pbuffer曲面相反。)

什么是像素映射好的窗口不是?(即为什么EGL要区分两种类型的曲面?)我很难理解其中的区别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-22 12:53:16

EGL像素映射是用来反映由底层窗口系统支持的任何类似像素的概念。术语来源于X11。EGL规范说:

EGL定义了几种类型的绘图表面,统称为EGLSurfaces。其中包括用于屏幕上呈现的窗口;用于屏幕外呈现的pbuffers;以及用于屏幕外呈现为可通过本机API访问的缓冲区的像素映射。EGL窗口和像素映射绑定到本机窗口系统窗口和像素映射。

像素映射和窗口的主要区别是:

  • EGL实现不需要支持像素映射(本机窗口系统可能没有相同的概念)
  • 像素映射通常是单缓冲的,而窗口可能是双缓冲或三缓冲的.
  • 像素映射是屏幕外的表面(尽管屏幕外的窗口也可能是可能的)

如果底层的窗口系统不支持像素映射,那么EGL像素映射就没有真正的用途(而且EGL实现可能不会公开它们)。它们的提供只是为了让您能够呈现给X11像素映射(或类似的东西),以防您出于某种原因需要这样做。

一个例子可能是:您希望使用GPU呈现一个3D对象,然后使用它作为X11游标。在这种情况下,您可以创建一个像素映射,创建一个EGL像素映射可绘制,绘制一些东西,然后使用XCreateCursorFromPixmap将您的像素映射转换为一个光标(这是EGL规范所指的那种“本地API”的例子)。可能存在比这更有用的例子。

票数 4
EN

Stack Overflow用户

发布于 2013-12-09 15:42:56

也许egl规格的这个部分有帮助:

EGL还支持渲染表面,其颜色缓冲区存储在本地像素映射中。像素映射不同于窗口,因为它们通常在屏幕外(不可见)图形或CPU内存中分配。像素映射不同于pbuffers,因为它们确实具有关联的本机像素映射和本机像素映射类型,并且可以使用客户端API以外的API呈现像素映射。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19668758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档