hedgewars/uStore.pas
changeset 1908 5be17e24751a
parent 1906 644f93d8f148
child 1912 c3d31fb59f0e
equal deleted inserted replaced
1907:a104432e8301 1908:5be17e24751a
   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..5] of TVertex2f;
   351 var VertexBuffer, TextureBuffer: array [0..3] of TVertex2f;
   352 begin
   352 begin
   353 glPushMatrix;
   353 glPushMatrix;
   354 glTranslatef(X, Y, 0);
   354 glTranslatef(X, Y, 0);
   355 
   355 
   356 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   356 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   361 VertexBuffer[1].Y:= 0;
   361 VertexBuffer[1].Y:= 0;
   362 VertexBuffer[2].X:= Texture^.w;
   362 VertexBuffer[2].X:= Texture^.w;
   363 VertexBuffer[2].Y:= Texture^.h;
   363 VertexBuffer[2].Y:= Texture^.h;
   364 VertexBuffer[3].X:= 0;
   364 VertexBuffer[3].X:= 0;
   365 VertexBuffer[3].Y:= Texture^.h;
   365 VertexBuffer[3].Y:= Texture^.h;
   366 VertexBuffer[4]:= VertexBuffer[0];
       
   367 VertexBuffer[5]:= VertexBuffer[2];
       
   368 
   366 
   369 TextureBuffer[0].X:= 0;
   367 TextureBuffer[0].X:= 0;
   370 TextureBuffer[0].Y:= 0;
   368 TextureBuffer[0].Y:= 0;
   371 TextureBuffer[1].X:= Texture^.rx;
   369 TextureBuffer[1].X:= Texture^.rx;
   372 TextureBuffer[1].Y:= 0;
   370 TextureBuffer[1].Y:= 0;
   373 TextureBuffer[2].X:= Texture^.rx;
   371 TextureBuffer[2].X:= Texture^.rx;
   374 TextureBuffer[2].Y:= Texture^.ry;
   372 TextureBuffer[2].Y:= Texture^.ry;
   375 TextureBuffer[3].X:= 0;
   373 TextureBuffer[3].X:= 0;
   376 TextureBuffer[3].Y:= Texture^.ry;
   374 TextureBuffer[3].Y:= Texture^.ry;
   377 TextureBuffer[4]:= TextureBuffer[0];
       
   378 TextureBuffer[5]:= TextureBuffer[2];
       
   379 
   375 
   380 glEnableClientState(GL_VERTEX_ARRAY);
   376 glEnableClientState(GL_VERTEX_ARRAY);
   381 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
   377 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
   382 
   378 
   383 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
   379 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
   384 glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]);
   380 glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]);
   385 glDrawArrays(GL_TRIANGLES, 0, Length(VertexBuffer));
   381 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
   386 
   382 
   387 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
   383 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
   388 glDisableClientState(GL_VERTEX_ARRAY);
   384 glDisableClientState(GL_VERTEX_ARRAY);
   389 
   385 
   390 glPopMatrix
   386 glPopMatrix