【发布时间】:2018-10-21 16:36:15
【问题描述】:
下面我写了一个方法来绘制它的参数中给出的纹理。
public void drawImage(Texture texture, int x, int y, int width, int height) {
texture.bind();
glTranslatef(x, y, 0);
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();
glLoadIdentity();
}
我不想改变这个方法。相反,我想做的是创建一种方法,该方法可以裁剪任意大小的精灵表,并且我可能需要将任意数量的裁剪保存为单独的纹理。
以前,我使用的是 Java.AWT,它允许我做到这一点。请参阅下面的代码。注意:sheet 是 BufferedImage 类型的。
public BufferedImage crop(int x, int y, int width, int height){
return sheet.getSubimage(x*width, y*height, width, height);
}
我正在尝试为上述方法找到等效代码,该代码可以采用任意大小的纹理,裁剪任意区域并将该区域作为自己的纹理返回。
我并不想更改 drawImage 方法,因为我需要该方法的原样。
谢谢
【问题讨论】: