gpt4 book ai didi

java - 显示 ContextAttribs 和 GL11 投影矩阵模式 - 不支持功能

转载 作者:行者123 更新时间:2023-11-30 06:07:31 25 4
gpt4 key购买 nike

当我尝试将 LWJGL 程序的矩阵模式设置为 GL_Projection 时,出现错误。

glMatrixMode(GL_PROJECTION);

错误是:

Exception in thread "main" java.lang.IllegalStateException: Function is not supported at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58) at org.lwjgl.opengl.GL11.glMatrixMode(GL11.java:2075) ....

我已经找到了我制作显示器时的错误。当我删除 ContexAttribs 时,我的代码不会显示错误并呈现! (当我注释掉需要contexattribs的代码时)

这是我的代码:

显示代码:

Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
ContextAttribs attribs = new ContextAttribs(3, 2).withProfileCore(true).withForwardCompatible(true);
Display.create(new PixelFormat().withDepthBits(24).withSamples(4), attribs);
Display.setTitle(TITLE);
Display.setInitialBackground(1, 1, 1);
GL11.glEnable(GL13.GL_MULTISAMPLE);
GL11.glViewport(0, 0, WIDTH, HEIGHT);

初始化方法:

glMatrixMode(GL_PROJECTION);
glOrtho(0, width, height, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glClearColor(0, 1, 0, 0);

textureID = loadTexture("res/hud.png");

glEnable(GL_TEXTURE_2D);

渲染方法:

glClear(GL_COLOR_BUFFER_BIT);

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glPushMatrix();

glTranslatef(0, 0, 0);

glBindTexture(GL_TEXTURE_2D, textureID);

glBegin(GL_QUADS);

{
glTexCoord2f(0, 0);
glVertex2f(0, 0);

glTexCoord2f(1, 0);
glVertex2f(width, 0);

glTexCoord2f(1, 1);
glVertex2f(width, height);

glTexCoord2f(0, 1);
glVertex2f(0, height);
}

glEnd();
glPopMatrix();

有人知道如何让这段代码与 contextAttribs 一起使用吗?

提前致谢!

编辑1:我静态导入了GL11中的所有函数和变量。

最佳答案

首先,使用 glBegin/glEnd 序列进行绘图已被弃用十多年了。请参阅Vertex Specification最先进的渲染方式。

用线

ContextAttribs attribs = new ContextAttribs(3, 2).withProfileCore(true).withForwardCompatible(true);

一个OpenGL core profile ContextForward compatibility生成位集。

在此上下文中,所有已弃用的函数,例如 glBegin/glEnd 序列、矩阵堆栈 (glMatrixMode)、标准光照模型等都是已删除。这会导致错误。

另请参阅Fixed Function PipelineOpenGL Context

跳过前向兼容性位(.withForwardCompatible(true))的设置来解决该问题。

关于java - 显示 ContextAttribs 和 GL11 投影矩阵模式 - 不支持功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50998072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com