我无法让第二个盒子渲染。到目前为止,我有 1 个用纹理绘制的对象,它似乎工作正常,但我附加了一些代码,所以如果我在它上面按住鼠标左键,第二个框会出现在它的右边。相反,第二个盒子没有出现,纹理盒子完全消失了。
我认为我在 opengl 中遗漏了一些东西,比如我必须在绘制 1 件事之前或之后启用或禁用的东西。
这是我的opengl初始化代码:
private static void glInit(){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), Display.getHeight(), 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
glClearColor(0, 0, 0, 1);
glDisable(GL_DEPTH_TEST);
}
这是绘制对象的代码:
public void render(){
if(myImage != null){
myImage.bind();
glBegin(GL_QUADS);
{
// upper left
glTexCoord2f(0, 0);
glVertex2f(x, y);
// upper right
glTexCoord2f(1, 0);
glVertex2f(x + size, y);
// bottom right
glTexCoord2f(1, 1);
glVertex2f(x + size, y + size);
// bottom left
glTexCoord2f(0, 1);
glVertex2f(x, y + size);
}
glEnd();
}
if(drawChoiceBox){
glColor3f(1, 0, 0);
glBegin(GL_QUADS);
{
glVertex2f(x + size, y - size);
glVertex2f(x + size*2, y - size);
glVertex2f(x + size*2, y + size*2);
glVertex2f(x + size, y + size*2);
}
glEnd();
}
}
我已经测试了获取第二个盒子的逻辑及其工作原理,所以我想它一定是我错过了 opengl 绘制事物的方式。知道我缺少什么吗?这就是我现在项目中的所有opengl代码。