Zatím zde není podrobný návod, ale snažil jsem se sepsat, co je vlastně
to minimu, se kterým začít. Podrobnější informace je možné
najít na Internetu, ale tohle určitá mapa toho, co vlastně má
začátečník hledat.
Číslo 8 na konci jmen tříd znamená, že se toto týká DX verze 8 (t.j.
8.0 a 8.1).
Je nutné použít následující 3 třídy:
Direct 3D objekt (Direct 3D object):
------------------------------------
COM objekt, který realizuje rozhraní Direct X. Jakékoliv zobrazení
probíhá zkrze
tento objekt.
V C++ je realizován třídou IDirect3D8
Direct 3D zařízení (Direct 3D device):
--------------------------------------
je rendrující komponenta direct X. Device provádí rendrování
zobrazovaných
útvarů a výsledná data předává direct 3D objectu.
V C++ je realizováno třídou
IDirect3DDevice8
je jich více druhů, ale pro začátek se spokojíme s HAL.
Buffer na vertexy:
------------------
IDirect3DVertexBuffer8
V aplikaci je nutné provést následující úkony:
===============================
1. vytvořit D3D object
...
2. vytvořit D3D device
...
3. vytvořit buffer na vertexy, nutno předem znát maximální velikost
IDirect3DDevice8::CreateVertexBuffer
4. naplnit si nějakou svou strukturu vertexy
5. naplnit buffer:
-zamknout buffer
IDirect3DVertexBuffer8::Lock
to mi dá ukazatel
-naplnit buffer
pouhé memcpy té mé struktury na ukazatel, co mi dá
IDirect3DVertexBuffer8::Lock
-odemknout buffer
IDirect3DVertexBuffer8::Unlock
6. rendrování
IDirect3DDevice8::Clear
IDirect3DDevice8::BeginScene
IDirect3DDevice8::SetStreamSource
IDirect3DDevice8::SetVertexShader
IDirect3DDevice8::DrawPrimitive
IDirect3DDevice8::EndScene
7. tohle to flákne na obrazovku z bekbafru, případně orotuje bekbafry,
jak zadáno.
IDirect3DDevice8::Present
a je posekáno !
Jednoduché, že ?!