LWJGL 3.2.0+ 字体

2024-02-20

我使用 lwjgl 一段时间了,最​​近我决定从固定功能管道切换到着色器。因此,当我启动程序时,我首先设置 ContextAttrib(3, 2),这样我将使用 GL 3.2+。问题是,当我打开更高版本的 GL 时,很多功能都不受支持。在切换到更高的GL之前,我已经使用Slick的字体(TrueTypeFont)来渲染我需要的文本,但是现在TrueTypeFont的drawString方法本身有一个不受支持的功能。我尝试用谷歌搜索解决方案,但没有任何结果。

有谁知道在使用 GL 版本 3.2+ 或其他库时是否可以使用 slick-util 库渲染文本?或有关该主题的任何链接。我将不胜感激任何帮助或建议。

编辑:启动 openGL 3.2 及更新版本的代码来自 wiki 上的教程

try
    {
        PixelFormat pixelFormat = new PixelFormat();
        ContextAttribs contextAtrributes = new ContextAttribs(3, 2)
            .withForwardCompatible(true)
            .withProfileCore(true);

        Display.create(pixelFormat, contextAtrributes);
    } catch (LWJGLException e){
        e.printStackTrace();
        return;
    }

通过使用 openGL 3.2 或更高版本,您被迫仅使用着色器。在 UnicodeFont 或 TrueTypeFont 上调用 drawString 或任何其他固定函数管道函数(如 GL11.glMatrixMode(GL11.GL_PROJECTION);)时出现的异常:

Exception in thread "Thread-0" java.lang.IllegalStateException: Function is not supported
at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
at org.lwjgl.opengl.GL11.glColor4f(GL11.java:881)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glColor4f(ImmediateModeOGLRenderer.java:127)
at org.newdawn.slick.Color.bind(Color.java:182)
at org.newdawn.slick.UnicodeFont.drawDisplayList(UnicodeFont.java:443)
at org.newdawn.slick.UnicodeFont.drawString(UnicodeFont.java:551)
at org.newdawn.slick.UnicodeFont.drawString(UnicodeFont.java:559)
at org.newdawn.slick.UnicodeFont.drawString(UnicodeFont.java:555)
at application.Controller.render3D(Controller.java:163)
at Engine.Engine.renderScene3D(Engine.java:230)
at Engine.Engine.render(Engine.java:334)
at Engine.Engine.gameLoop(Engine.java:306)
at Engine.Engine.access$1(Engine.java:246)
at Engine.Engine$1.run(Engine.java:154)

thanks.


GameDevSE 上也出现了类似的问题,您可能需要检查一下here https://gamedev.stackexchange.com/questions/71578/why-do-i-get-function-not-supported-exceptions-for-opengl-3-2-functions-using

Citing:

听起来你可能没有实际上请求一个适当版本的 OpenGL 上下文 http://lwjgl.org/wiki/index.php?title=Version_selection(即支持 3.2 的版本)。为此,您必须在调用 Display.create() 时提供请求所需版本的上下文属性

PixelFormat pixelFormat = new PixelFormat();
ContextAttribs contextAtrributes = new ContextAttribs(3, 2)
    .withForwardCompatible(true)
    .withProfileCore(true);

try {
      Display.setDisplayMode(new DisplayMode(320, 240));
      Display.setTitle("Version selection");
      Display.create(pixelFormat, contextAtrributes);
} catch (LWJGLException e) {
    e.printStackTrace();
    System.exit(-1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LWJGL 3.2.0+ 字体 的相关文章

随机推荐

  • 处理 PDO::prepare() 添加的引号

    根据 PHP 文档 PDO prepare 为所有参数添加引号 这样您就不必担心这样做 准备好的语句的参数不需要加引号 驱动程序会自动处理此问题 如果应用程序专门使用准备好的语句 则开发人员可以确保不会发生 SQL 注入 但是 如果查询的其
  • 如何支持“按请求”范围

    我想从中间件获取用户令牌并将其注入控制器 这可能吗 class TaskController inject private currentUser Post tasks addTask if hasPermission currentUse
  • 在 MATLAB 中将绘制的数据与颜色和尺寸源链接起来

    这个问题与发布的问题相关here https stackoverflow com questions 45527467 visualizing large 3d dataset with scatter plot 其中我概述了我在仿真期间在
  • 在 yiimongodbsuite 中更新插入嵌入文档

    我需要在 yiimongodbsuite 中执行 upsert 命令 我试过 model new Murls model gt userid userid model gt title title model gt edits 0 new
  • 为什么 Future 的 andThen 不链接结果?

    The andThen这意味着我从中学到了answer https stackoverflow com a 20292526 2210478是一个函数作曲家 比如说 f andThen g andThen h 将等于 h g f x 这意味
  • 如何通过代理设置 libGDX 项目

    我正在使用 libgdx 项目创建器 gdx setup jar 设置一个新项目 但是 我在 Windows 计算机上使用代理连接来访问互联网 并且 gdx setup jar 无法检测到设置 因此我无法下载所需的 jar 文件并生成任何项
  • Hyperledger Composer 中的链代码与 Hyperledger Fabric 中的链代码?

    在 Hyperledger Composer 中使用 javascript 编写链代码是否可以实现与在 Hyperledger Fabric 中使用 go 编写链代码相同的功能 与用 go 编写链代码相比 用 JS 编写链代码有哪些限制和好
  • 如何将会话从一台 Tomcat 服务器转移到另一台?

    我们有一个用于网店的 Tomcat 服务器 当用户登录时 我们需要将用户转移到另一个 安全 服务器 以下是详细说明 1 我们有两台 Tomcat 服务器 一台 常规 HTTP 和一台安全 HTTPS 2 用户最初访问常规服务器 3 当他们登
  • 使用 Rails、MySQL 和 Active Record 查询 where date = Date.today

    我在 Active Record 文档中看到 您可以使用大于 小于比较来查询日期 但是 如果您想选择 where date Date today 或者我必须查询 date 大于昨天且小于明天的情况该怎么办 正如您所看到的 我在以下查询中正是
  • 从 Shiny (R) 下载 png

    我对 Shiny 和 R 还很陌生 并且正在努力将我在 Shiny 中制作的情节导出到 png 文件 我查看了这两个线程 但无法弄清楚 保存在闪亮的应用程序中制作的绘图 https stackoverflow com questions 1
  • Adobe AIR - 带图像的自定义预加载器

    Folks 我设计了一个Adobe AIR应用 我想展示一些preloader在它打开之前 任何人都可以指导我的教程preloader 专门针对 AIR或者任何已经内置的 Thanks 借助 AIR 我可以想出几种方法来实现这一目标 1 使
  • go + cgo 和链接

    我想使用以下 c 作为 Go 的 cgo include
  • 如何使用 javascript 在 selenium 中设置网络节流?

    如何使用 selenium 和 javascript 在 chrome 中设置网络节流设置 我也花了一些时间才弄清楚这一点 但这似乎对我有用 driver await new Builder forBrowser engine usingS
  • React 卸载并重新挂载子组件

    我有一个 npm 导入的组件 CKEditor 它只关心其父组件在安装时的状态 也就是说 无论父组件的状态发生什么变化 如果父组件已经挂载 CKEditor 都不会反映这些变化 这对我来说是一个问题 因为当父组件更改其语言属性时 我需要 C
  • 如何在屏幕退出时隐藏有条件的自定义字段?

    我的任务是自定义标题详细信息屏幕ME33K交易 目标是添加一个包含新字段的框 仅当协议类型是我使用交易定义的类型时才应显示该框SPRO 例如 协议类型ABC 我开始使用CMOD交易中 我创建了一个虚拟框和带有一些硬编码输入值的字段 并且工作
  • Scala 相等与类型检查?

    是否有统一的方法来执行类型检查的相等性 很遗憾 val objectA String test val objectB Int 2 objectA objectB 如果 objectB 是 Int 而 objectA 是 String 则相
  • 具有多个 CDVViewController 的 Phonegap/Cordova

    我的想法是使用 Phonegap 作为我的应用程序的业务逻辑 但使用本机转换 所以我在每个 UIViewController 中都需要 CDVWebView 这对于普通的 UIWebviews 来说工作得很好 但是如果我使用多个 CDVVi
  • 在android中设计一个如下图所示的带有图像按钮的布局

    Hi 我想设计像上图这样的按钮 八个按钮以圆形方式 我很困惑如何将它们设计成圆形的板球标志 我已经尝试使用相对布局和线性布局 但不能这样做 请帮助我使这个观点得以实施 查看车轮组件 http developer digitalaria co
  • 选择 Hive 中的前 2 行

    我正在尝试根据配置单元 版本 0 11 中的工资从我的员工列表中检索前 2 个表 由于它不支持TOP功能 有什么替代方案吗 或者我们有定义一个UDF吗 是的 在这里你可以使用LIMIT 您可以通过以下查询尝试一下 SELECT FROM e
  • LWJGL 3.2.0+ 字体

    我使用 lwjgl 一段时间了 最 近我决定从固定功能管道切换到着色器 因此 当我启动程序时 我首先设置 ContextAttrib 3 2 这样我将使用 GL 3 2 问题是 当我打开更高版本的 GL 时 很多功能都不受支持 在切换到更高