Hi!
Ich schaff es nicht so ganz, DirectX zu initialisieren.
![;)](wcf/images/smilies/wink.png.pagespeed.ce.L9LRa_F2a5.png)
Bzw. hängts nicht direkt an der Initialisierung, denn das würde ja funktionieren. Ich mag nur, dass die Initialisierung von meinem Framework übernommen wird, und das bekomme ich nicht hin.
Hier mal bisschen code:
Am Anfang der main.cpp:
|
C-/C++-Quelltext
|
1
2
|
PDIRECT3D9 g_pD3D;
PDIRECT3DDEVICE9 g_pD3DDevice;
|
In der WinMain Funktion, nachdem ich das Fenster erstellt habe:
|
C-/C++-Quelltext
|
1
2
|
CFramework Framework;
Framework.InitDirect3D(&g_pD3D, &g_pD3DDevice, &PresentParams)
|
Funktion zum erstellen des Devices:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
int CFramework::InitDirect3D(PDIRECT3D9* pD3D, PDIRECT3DDEVICE9* pD3DDevice, D3DPRESENT_PARAMETERS* PresentParams)
{
HRESULT hResult;
//Globale IDirect3D9-Schnittstelle erzeugen
m_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
if(!m_pD3D)
return 1;
//Geräteschnittstelle generieren
hResult = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,
PresentParams, &m_pD3DDevice);
if(FAILED(hResult))
return 2;
if(PresentParams->Windowed == false)
ShowCursor(false);
pD3D = &m_pD3D;
pD3DDevice = &m_pD3DDevice;
return 0;
}
|
m_pD3DDevice und m_pD3D sind Membervariablen dieser Klasse, vom Typ PDIRECT3DDEVICE9 bzw. PDIRECT3D9.
Ich glaub, ich hab mich da irgendwie mit den Zeigern vertan. Übergeben tu ich ja eine Adresse eines Zeigers, oder? Kann man das nicht so machen. Bzw, wie kann ich das anders machen?
Lg
EDIT: Hab mir jetzt einfach zwei Get-Methoden geschrieben, die mir die Zeiger liefern.
Würd mich aber trotzdem interessieren, was ich da falsch mach. Möglicherweise ist es auch totaler Schwachsinn.