本段代码由 CocoaChina 会员“yydog”分享,希望对开发者有所帮助
typedef struct Scale
{
GLfloat scaleX,scaleY,scaleZ;
}Scale;
-(void) drawImage:(CGPoint) point withScale:(Scale) scale
{
// 图片大小
GLfloat w = _size.width / 2;
GLfloat h = _size.height / 2;
// 顶点坐标
const GLfloat vertices[]=
{
-w, h, 0.0,
-w, -h, 0.0,
w, -h, 0.0,
w, h, 0.0,
};
// 纹理坐标
const GLfloat coordinates[]=
{
0.0, 0.0,
0.0, _maxT,
_maxS, _maxT,
_maxS, 0.0,
};
glBindTexture(GL_TEXTURE_2D, _name);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
glEnable( GL_TEXTURE_2D);
glEnableClientState( GL_VERTEX_ARRAY);
glEnableClientState( GL_TEXTURE_COORD_ARRAY);
glPushMatrix(); {
glTranslatef(point.x,point.y,0.0);
glScalef(scale.scaleX,scale.scaleY,scale.scaleZ);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
}
glPopMatrix();
glDisableClientState( GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable( GL_TEXTURE_2D);
}