hedgewars/uStore.pas
changeset 1904 20348675b015
parent 1896 fdacad5d0acc
child 1906 644f93d8f148
equal deleted inserted replaced
1903:64e56f19d6d6 1904:20348675b015
   340 
   340 
   341 glEnd()
   341 glEnd()
   342 end;
   342 end;
   343 
   343 
   344 procedure DrawTexture(X, Y: LongInt; Texture: PTexture);
   344 procedure DrawTexture(X, Y: LongInt; Texture: PTexture);
   345 begin
   345 var VertexBuffer, TextureBuffer: array [0..5] of TVertex2f;
       
   346 begin
       
   347 glPushMatrix;
       
   348 glTranslatef(X, Y, 0);
       
   349 
   346 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   350 glBindTexture(GL_TEXTURE_2D, Texture^.id);
   347 
   351 
   348 glBegin(GL_QUADS);
   352 VertexBuffer[0].X:= 0;
   349 
   353 VertexBuffer[0].Y:= 0;
   350 glTexCoord2f(0, 0);
   354 VertexBuffer[1].X:= Texture^.w;
   351 glVertex2i(X, Y);
   355 VertexBuffer[1].Y:= 0;
   352 
   356 VertexBuffer[2].X:= Texture^.w;
   353 glTexCoord2f(Texture^.rx, 0);
   357 VertexBuffer[2].Y:= Texture^.h;
   354 glVertex2i(Texture^.w + X, Y);
   358 VertexBuffer[3].X:= 0;
   355 
   359 VertexBuffer[3].Y:= Texture^.h;
   356 glTexCoord2f(Texture^.rx, Texture^.ry);
   360 VertexBuffer[4]:= VertexBuffer[0];
   357 glVertex2i(Texture^.w + X, Texture^.h + Y);
   361 VertexBuffer[5]:= VertexBuffer[2];
   358 
   362 
   359 glTexCoord2f(0, Texture^.ry);
   363 TextureBuffer[0].X:= 0;
   360 glVertex2i(X, Texture^.h + Y);
   364 TextureBuffer[0].Y:= 0;
   361 
   365 TextureBuffer[1].X:= Texture^.rx;
   362 glEnd()
   366 TextureBuffer[1].Y:= 0;
       
   367 TextureBuffer[2].X:= Texture^.rx;
       
   368 TextureBuffer[2].Y:= Texture^.ry;
       
   369 TextureBuffer[3].X:= 0;
       
   370 TextureBuffer[3].Y:= Texture^.ry;
       
   371 TextureBuffer[4]:= TextureBuffer[0];
       
   372 TextureBuffer[5]:= TextureBuffer[2];
       
   373 
       
   374 glEnableClientState(GL_VERTEX_ARRAY);
       
   375 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
       
   376 
       
   377 glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
       
   378 glTexCoordPointer(2, GL_FLOAT, 0, @TextureBuffer[0]);
       
   379 glDrawArrays(GL_TRIANGLES, 0, Length(VertexBuffer));
       
   380 
       
   381 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
       
   382 glDisableClientState(GL_VERTEX_ARRAY);
       
   383 
       
   384 glPopMatrix
   363 end;
   385 end;
   364 
   386 
   365 procedure DrawTextureF(Texture: PTexture; Scale: GLfloat; X, Y, Frame, Dir, Frames: LongInt);
   387 procedure DrawTextureF(Texture: PTexture; Scale: GLfloat; X, Y, Frame, Dir, Frames: LongInt);
   366 var ft, fb: GLfloat;
   388 var ft, fb: GLfloat;
   367 	hw: LongInt;
   389 	hw: LongInt;