hedgewars/uStore.pas
changeset 1912 c3d31fb59f0e
parent 1908 5be17e24751a
child 1916 9c3d0e3df6bb
equal deleted inserted replaced
1911:6283bd8a960b 1912:c3d31fb59f0e
   346 
   346 
   347 glEnd()
   347 glEnd()
   348 end;
   348 end;
   349 
   349 
   350 procedure DrawTexture(X, Y: LongInt; Texture: PTexture);
   350 procedure DrawTexture(X, Y: LongInt; Texture: PTexture);
   351 var VertexBuffer, TextureBuffer: array [0..3] of TVertex2f;
       
   352 begin
   351 begin
   353 glPushMatrix;
   352 glPushMatrix;
   354 glTranslatef(X, Y, 0);
   353 glTranslatef(X, Y, 0);
   355 
   354 
   356 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   355 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   357 
   356 
   358 VertexBuffer[0].X:= 0;
       
   359 VertexBuffer[0].Y:= 0;
       
   360 VertexBuffer[1].X:= Texture^.w;
       
   361 VertexBuffer[1].Y:= 0;
       
   362 VertexBuffer[2].X:= Texture^.w;
       
   363 VertexBuffer[2].Y:= Texture^.h;
       
   364 VertexBuffer[3].X:= 0;
       
   365 VertexBuffer[3].Y:= Texture^.h;
       
   366 
       
   367 TextureBuffer[0].X:= 0;
       
   368 TextureBuffer[0].Y:= 0;
       
   369 TextureBuffer[1].X:= Texture^.rx;
       
   370 TextureBuffer[1].Y:= 0;
       
   371 TextureBuffer[2].X:= Texture^.rx;
       
   372 TextureBuffer[2].Y:= Texture^.ry;
       
   373 TextureBuffer[3].X:= 0;
       
   374 TextureBuffer[3].Y:= Texture^.ry;
       
   375 
       
   376 glEnableClientState(GL_VERTEX_ARRAY);
   357 glEnableClientState(GL_VERTEX_ARRAY);
   377 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
   358 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
   378 
   359 
   379 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
   360 glVertexPointer(2, GL_FLOAT, 0, @Texture^.vb);
   380 glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]);
   361 glTexCoordPointer(2, GL_FLOAT, 0, @Texture^.tb);
   381 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
   362 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(Texture^.vb));
   382 
   363 
   383 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
   364 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
   384 glDisableClientState(GL_VERTEX_ARRAY);
   365 glDisableClientState(GL_VERTEX_ARRAY);
   385 
   366 
   386 glPopMatrix
   367 glPopMatrix