Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
Delphi 6 Enterprise
|
Re: OpenGL Probleme
28. Mär 2005, 16:08
Loaden von Texturen...Ganz einfach.
Wichtig : Die folgende Procedure ist nicht von mir ! (von einem DGL Supporter)
Delphi-Quellcode:
procedure LoadTextureFromBitmap(bmp:TBitmap);
var
data:PByteArray;
i,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];
move(b^,data^[i*w*4],w*4);
end;
gltexparameteri(GL_TEXTURE_2D,GL_Texture_min_filter,GL_LINEAR);
gltexparameteri(GL_TEXTURE_2D,GL_Texture_mag_filter,GL_LINEAR);
gluBuild2DMipmaps(GL_TEXTURE_2D,gl_RGBA8,bmp.width,bmp.Height,GL_BGRA,gl_unsigned_byte,data);
//glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,bmp.width,bmp.Height,0,GL_BGRA, GL_UNSIGNED_BYTE, Data);
FreeMem(data);
end;
// aufruf ist von mir :mrgreen:
procedure TForm1.Button1Click(Sender: TObject);
var MyResBitmap : TBitmap;
TextID : Cardinal;
begin
MyResBitmap := TBitmap.Create;
MyResBitmap.LoadFromResourceName(HInstance, 'MyBitmap' );
glGenTextures(1,@TextID);
glBindTexture(GL_TEXTURE_2D,TextID);
LoadTextureFromBitmap(MyResBitmap);
MyResBitmap.Free;
end;
Katura Haris Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
|
|
Zitat
|