Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Käsekönig

1x Contest-Sieger

  • »Käsekönig« ist der Autor dieses Themas
  • Private Nachricht senden

1

19.03.2010, 18:40

Problem mit Initialisierung von DirectX

Hi!
Ich schaff es nicht so ganz, DirectX zu initialisieren. ;)
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. ;)

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

2

19.03.2010, 19:31

Re: Problem mit Initialisierung von DirectX

Zitat von »"Käsekönig"«


Hi


Huhu!

Zitat von »"Käsekönig"«


C-/C++-Quelltext

1
2
pD3D = &m_pD3D;
pD3DDevice = &m_pD3DDevice; 



nope, das geht so nciht, du willst ja den zeiger dem aufrufer zur verfügung stellen:

C-/C++-Quelltext

1
2
*pD3D = m_pD3D;
*pD3DDevice = m_pD3DDevice; 
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

3

19.03.2010, 20:14

Wie sehen denn deine Present Params aus?
Metal ist keine Musik sondern eine Religion.

Werbeanzeige