java - 在 Swing 中显示 vulkan 渲染

标签 java jogl vulkan

我目前正在寻找一种在 Swing 上下文中显示 Vulkan 渲染的方法

我注意到 JOGL 的 GLJPanel 允许我获取底层的 native 表面,这是为 Vulkan 提供渲染表面所需的,我认为我可以让 Vulkan 在其中显示,但我当我调用 vkGetPhysicalDeviceSurfaceFormat 时,在 vulkan-1.dll 中出现 EXCEPTION_ACCESS_VIOLATION

显然,我认为事情不会那么简单,但仍然令我惊讶的是,当我操作 native 表面时,会发生这个问题,而该表面在由 glfw 生成时效果很好

有什么我错过的吗?

最佳答案

JOGL allowed me to get the underlying native surface which is what is needed in order to give a surface to Vulkan to render to

...

vkGetPhysicalDeviceSurfaceFormat

您是否建议将从 JOGL 获得的表面直接传递给 vkGetPhysicalDeviceSurfaceFormat?那是行不通的。您需要使用列出的曲面创建函数之一 here并且您需要确保在创建实例时请求了适当的扩展,即 VK_KHR_SURFACE_EXTENSION_NAME 以及您需要的任何特定于平台的扩展,例如 VK_KHR_WIN32_SURFACE_EXTENSION_NAMEVK_KHR_ANDROID_SURFACE_EXTENSION_NAME > 等

如果不包含您用于创建表面并将其传递给 vkGetPhysicalDeviceSurfaceFormat 的代码,则无法进行更多诊断。

关于java - 在 Swing 中显示 vulkan 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971212/

相关文章:

android - 如何在 Android 模拟器上创建并运行示例 Vulkan 应用程序?

java - 为什么我的 native C++ 代码在 Android 上的运行速度比 Java 慢得多?

java - 通用集合的可能元素类型

java - 使用 JOGL 和 Android OpenGL 编写可移植的 Java 应用程序

opengl - 运动矢量 - 如何正确计算它?

c++ - 找不到一些 lunar SDK 验证层

java - ListView SetAdapter 错误

java - 使用 apache poi 从 excel 读取日期格式,无论系统日期格式如何

java - 我在哪里可以找到包 javax.media.opengl?

java - 如何设置 Eclipse RCP 插件来使用 JOGL?