在Delphi中,可以使用 DsPack或者JEDI的DirectX的头文件
实现类似的功能如下:
function RGBToTColor(const R, G, B: Byte): Integer;
begin
Result := R + G shl 8 + B shl 16;
end;
procedure TColorToRGB(const Color: TColor; var R, G, B: Byte);
begin
R := Color and $FF;
G := (Color shr 8) and $FF;
B := (Color shr 16) and $FF;
end;
function TColorToD3DColor(const Color: TColor): TD3DColor;
var
R,G,B: Byte;
begin
TColorToRGB(Color,R,G,B);
Result := D3DCOLOR_XRGB(R,G,B);
end;
var
SenderDevice: IDirect3DDevice8;
tt: IDirect3DTexture8;
D3DSprite: D3Dx8.ID3DXSprite;
txtPos: TD3DXVector2;
begin
D3DX8.D3DXCreateSprite(SenderDevice,D3DSprite);
D3DX8.D3DXCreateTextureFromFileEx(SenderDevice,'C:\234.bmp',D3DX8.D3DX_DEFAULT,D3DX8.D3DX_DEFAULT,1, 0,Direct3D8.D3DFMT_UNKNOWN,Direct3D8.D3DPOOL_MANAGED,D3DX8.D3DX_DEFAULT,D3DX8.D3DX_DEFAULT,$FF000000,nil,nil,tt);
D3DSprite._Begin;
txtPos.x := 0;
txtPos.y := 0;
D3DSprite.Draw(tt,nil,nil,nil,0,@txtPos,TColorToD3DColor(clRed));
D3DSprite._End;
end;
上一页123下一页


