![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Сообственно как его сделать в DirectXе?
Если сделать так Код:
procedure CreateQuad();
var
hRes:HRESULT;
// svVortexList : array [0..iVertsNum] of sVertex;
svVortexList : array of sVertex;
pBuf:Pointer;
begin
setlength(svVortexList,iVertsNum);
// Грань 1
svVortexList[0].x:=-0.5; svVortexList[0].y:=-0.5; svVortexList[0].z:=-0.5; svVortexList[0].Color:=D3DCOLOR_XRGB(0,0,255);
svVortexList[1].x:=-0.5; svVortexList[1].y:=0.5; svVortexList[1].z:=-0.5; svVortexList[1].Color:=D3DCOLOR_XRGB(0,0,255);
svVortexList[2].x:=0.5; svVortexList[2].y:=-0.5; svVortexList[2].z:=-0.5; svVortexList[2].Color:=D3DCOLOR_XRGB(0,0,255);
svVortexList[3].x:=0.5; svVortexList[3].y:=0.5; svVortexList[3].z:=-0.5; svVortexList[3].Color:=D3DCOLOR_XRGB(0,0,255);
// Грань 2
...
hRes := pD3DDevice.CreateVertexBuffer(sizeof(sVertex) *
iVertsNum, 0 , D3DFVF_XYZ or D3DFVF_DIFFUSE,
D3DPOOL_DEFAULT, &vBuffer, nil);
if (FAILED(hRes)) then
exit;
hRes := vBuffer.Lock(0, sizeof(sVertex) * iVertsNum, pBuf, 0);
if (FAILED(hRes))then
exit;
move(svVortexList, pBuf^, sizeof(sVertex) * iVertsNum);
vBuffer.Unlock();
end;
то перестает рисовать обьект (кубик). Соотвественно Код:
type sVertex=record x, y, z:Single; color:DWORD; end; var ... const iVertsNum=24; iIdxNum=35; iPointsNum=12; |