Тема: Delphi & DirectX
Показать сообщение отдельно
Старый 23.04.2010, 19:37   #6
firstvirus
Оператор ЭВМ
 
Регистрация: 13.01.2010
Сообщений: 35
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Delphi & DirectX

procedure DrawFilledRect(x,y,width,height:single;Color1,Color2,Color3,Color4:Cardinal);
var
  VPoint:array[0..4]of TCustomVertex;
  D3D_VB:IDirect3DVertexBuffer9;
  pVertices: Pointer;
begin
VPoint[0].x:=x;
VPoint[0].y:=y;
VPoint[0].z:=0;
VPoint[0].rhw:=0;
VPoint[0].Color:=Color1;
VPoint[1].x:=x+width;
VPoint[1].y:=y;
VPoint[1].z:=0;
VPoint[1].rhw:=0;
VPoint[1].Color:=Color2;
VPoint[2].x:=x;
VPoint[2].y:=y+height;
VPoint[2].z:=0;
VPoint[2].rhw:=0;
VPoint[2].Color:=Color3;
VPoint[3].x:=x+width;
VPoint[3].y:=y+height;
VPoint[3].z:=0;
VPoint[3].rhw:=0;
VPoint[3].Color:=Color4;
D3D_Device.CreateVertexBuffer(sizeof(VPoint),D3DUSAGE_WRITEONLY,D3DFVF_CUSTOM,D3DPOOL_DEFAULT,D3D_VB,nil);
D3D_VB.Lock(0, sizeof(VPoint), pVertices, 0);
Move(VPoint[0], pVertices^, sizeof(VPoint));
D3D_VB.Unlock;
D3D_Device.SetStreamSource(0,D3D_VB,0,sizeof(TCustomVertex));
D3D_Device.SetFVF(D3DFVF_CUSTOM);
D3D_Device.DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
end;
Этот кусок кода честно спи... сперт из одной статьи и немного модифицирован.
(Offline)
 
Ответить с цитированием