opengl - 带有 EGL 的 Vulkan 接头

标签 opengl graphics opengl-es egl vulkan

似乎有很多关于 Vulkan 新图形 API 的讨论 - https://www.khronos.org/vulkan

我的问题与 - 现有的 EGL 接口(interface)将如何适应 Vulkan API?,使用 Vulkan 新的无状态方法,是否必须用基于 Vulkan 的替代方案替换 EGL?

到目前为止,可以从 EGL(OpenGL、OpenGL ES 和 OpenVG)访问的三个 API 都与每个线程上下文一起工作,Vulkan 怎么样?

最佳答案

EGL 是明确的线程安全的。

这意味着通过 Vulkan 的扩展,您可以绑定(bind) EGLSurface作为管道中的渲染目标或将其用作缓冲区交换的参数。这个EGLSurface将通过正常方式创建,eglQueryString(display, EGL_CLIENT_APIS)创作的EGLDisplay然后必须包括“Vulkan”。

上下文位虽然更棘手。我希望会有一个虚拟(零状态)上下文用于将线程标记为使用 Vulkan 进行渲染。

EGL 甚至不会出现。您可以使用加载程序从头开始获取实例。并且有一组扩展将从操作系统获取窗口句柄,并提供带有多个 vkImage 的 vkSwapchain,您可以将其渲染并发送到监视器。

关于opengl - 带有 EGL 的 Vulkan 接头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392669/

相关文章:

algorithm - 将二次贝塞尔曲线转换为三次贝塞尔曲线

opengl-es - 用于索引绘图的预排序 3d 文件类型

android - 使用 OpenGL ES2.0 的纹理渲染质量下降

c++ - 使用单例存储全局应用程序参数

java - 在运行 OSX 10.8.5 的 iMac 上使用 LWJGL 创建 FBO

c - Sprite 纹理中的透明度不起作用

graphics - 如何将 HSL(色调、饱和度、亮度)转换为 HSLum(色调、饱和度、亮度)和 HSLum/RGB?

c++ - 失去焦点时全屏 GLFW 窗口消失

java - 为什么一旦 run() 方法中的 if 语句为 true,我就不能再使用 keyPressed 了?

java - 减少 opengl es 中锯齿现象的最佳方法? (图像调整大小)