- procedure LoadTextureFromBitmap(bmp:TBitmap);
- var
- data:PByteArray;
- i,j,w:integer;
- b:PByteArray;
- begin
- bmp.PixelFormat:=pf32bit;
- getmem(data,bmp.width*bmp.height*4);
- w:=bmp.Width;
- for i:=0 to bmp.Height-1 do
- begin
- b:=bmp.ScanLine[i];
- for j:=0 to w-1 do
- begin
- data^[i*w*4+j*4+2]:=b^[j*4];
- data^[i*w*4+j*4+1]:=b^[j*4+1];
- data^[i*w*4+j*4]:=b^[j*4+2];
- data^[i*w*4+j*4+3]:=b^[j*4+3];
- end;
- end;
- gltexparameteri(GL_TEXTURE_2D,GL_Texture_min_filter,GL_LINEAR_MIPMAP_LINEAR);
- gltexparameteri(GL_TEXTURE_2D,GL_Texture_mag_filter,GL_LINEAR);
- gluBuild2DMipmaps(GL_TEXTURE_2D,gl_rgba8,bmp.width,bmp.Height,gl_rgba,gl_unsigned_byte,data);
- FreeMem(data);
- end;