Допустим, у меня есть метод, который получает текстуру GLuint в качестве параметра, и я хотел бы отобразить ее часть.Подумайте, например, о наборе плиток, я хочу иметь возможность загружать набор плиток и отображать его части (плитки) при загрузке своего уровня.
Было бы оптимальным, если бы я каким-то образом смог определитьвысота, ширина, posX и posY в пиксельных координатах из набора плиток для рисования.
Я уже несколько часов пытаюсь, и любая помощь будет признательна.
Упрощенная версия рисования текстуры:
void Render::draw(GLuint texture, float posX, float posY, float sizeX, float sizeY) {
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glAlphaFunc(GL_GREATER,0.1f);
glBindTexture( GL_TEXTURE_2D, texture );
glPushMatrix();
glTranslatef(posX,posY,0);
glBegin( GL_QUADS );
//Bottom-left vertex (corner)
glTexCoord2i( 0, 0);
glVertex2f( -sizeX,-sizeY);
//Bottom-right vertex (corner)
glTexCoord2i( 1, 0);
glVertex2f(sizeX,-sizeY);
//Top-right vertex (corner)
glTexCoord2i( 1, 1);
glVertex2f(sizeX,sizeY);
//Top-left vertex (corner)
glTexCoord2i( 0, 1);
glVertex2f( -sizeX,sizeY);
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
}