- procedure loadtexture(var textur : integer; filename:string);
 - var
 - bitmap : tbitmap;
 - jpg : tjpegimage;
 - texdata : array[0..262143] of array[0..2] of shortint;
 - r,g,b : byte;
 - x,y : integer;
 - tempint : integer;
 - xwidth, ywidth : integer;
 - begin
 - bitmap := tbitmap.create;
 - if (ExtractFileExt(filename) = '.jpg') or (ExtractFileExt(filename) = '.jpeg') then
 - begin
 - jpg := tjpegimage.Create;
 - jpg.LoadFromFile(filename);
 - jpg.CompressionQuality := 100;
 - try
 - bitmap.assign(jpg);
 - finally
 - jpg.free;
 - end;
 - end
 - else
 - begin
 - if ExtractFileExt(filename) = '.bmp' then
 - begin
 - bitmap.loadfromfile(filename);
 - end;
 - end;
 - xwidth := bitmap.Width;
 - ywidth := bitmap.Height;
 - for x := 0 to xwidth-1 do
 - begin
 - for y := 0 to ywidth-1 do
 - begin
 - tempint := bitmap.canvas.pixels[x,y];
 - r := TempInt and $FF;
 - g := (TempInt shr 8) and $FF;
 - b := (TempInt shr 16) and $FF;
 - texdata[((ywidth-1)-y)*xwidth+x, 0] := r;
 - texdata[((ywidth-1)-y)*xwidth+x, 1] := g;
 - texdata[((ywidth-1)-y)*xwidth+x, 2] := b;
 - end;
 - end;
 - bitmap.free;
 - glGenTextures(1, @textur);
 - glBindTexture(GL_TEXTURE_2D, textur);
 - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_linear);
 - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_linear);
 - glTexImage2D(GL_TEXTURE_2D, 0, 3, xwidth, ywidth, 0, GL_RGB, GL_UNSIGNED_BYTE, @texdata);
 - end;
 
