レンダリングする 2 番目のボックスを取得するのに問題があります。テクスチャで描画された 1 つのオブジェクトがあり、正常に動作しているように見えますが、それにいくつかのコードが添付されているため、その上でマウスの左ボタンを押したままにすると、2 番目のボックスが右側に表示されます。代わりに、2 番目のボックスが表示されず、テクスチャ ボックスが完全に消えます。
1 つのものを描画する前または後に有効または無効にする必要があるような、opengl で何かが欠けていると思います。
私の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();
}
}
2 番目のボックスを起動するためのロジックとその動作をテストしたので、opengl が描画する方法に何か欠けているに違いないと思います。何が足りないのですか?それが現在、私のプロジェクトのすべての opengl コードです。