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

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

21

08.02.2006, 17:21

:P hey ich weiss noch immer nich was falsch is.... was meinst du mit dem hdevicewindow = 0 nox??? ???
wenns auf hwnd is gehts auch net... scheiss teil }>

und bei CreateDevice sagt er mir, die methode sei nich erfolgreich gewesen... ???

mfg!!
Gratis Tools+Software und Games:

www.miraculous.eu.tc

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

22

08.02.2006, 18:02

C-/C++-Quelltext

1
2
3
4
5
6
if(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, 
                            D3DDEVTYPE_HAL, 
                            hwnd, 
                            D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL, 
                            &d3dpp, 
                            &g_pD3DDevice)) 


was hat das D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL da zu suchen?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

23

08.02.2006, 18:03

LOL - CreateDevice nicht erfolgreich heißt genausoviel wie kein Clear, kein garnix wird gehen - ohne Device geht da nichts.
Auf hwnd solltest du hDeviceWindow auf jeden Fall stellen.

Außerdem musst du manchmal beachten, dass die Fenstergröße mit den Abmessungen, die du hier einträgst, übereinstimmen muss:

Quellcode

1
2
d3dpp.BackBufferHeight = Fensterhöhe; 
d3dpp.BackBufferWidth  = Fensterbreite;


Und wenn das nichts hilft, dann kann es auch noch sein, dass deine Grafikkarte dieses bizarre Format 400 * 400 gar nicht unterstützt - versuchs erstmal mit Auflösungen wie 800x600 oder 1024x768 oder 640x480, bis du mehr weißt.

[EDIT]
Nox hat recht, dieses Flag hat da nichts zu suchen - versuch mal D3DCREATE_SOFTWARE_VERTEXPROCESSING, wenn das geht, kannst du dann noch D3DCREATE_HARDWARE_VERTEXPROCESSING ausprobieren, falls deine Grafikkarte das unterstützt.

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

24

08.02.2006, 18:04

k jetzt ist es so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
if(SUCCEEDED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
                            D3DDEVTYPE_HAL,
                            0,
                            D3DCREATE_MIXED_VERTEXPROCESSING,
                            &d3dpp,
                            &g_pD3DDevice)))
    {

       MessageBox(0,"Direct3D could be initialized!", "DX9 initialized!", MB_OK|MB_ICONINFORMATION);
    
    }


läuft aber immer noch nicht... ???
muss man irgendwo besonders aufpassen oder wie??

in der dx9 doku steht, dass wenn es ein fenster is, dass man dann die grösse weglassen kann. und dass das hwnd auch weggelassen werden kann im windowed mode.. ioch schnall nichs mehr... :crying:

mfg
Gratis Tools+Software und Games:

www.miraculous.eu.tc

ThomasS

Frischling

Beiträge: 50

Wohnort: Landshut

Beruf: Student

  • Private Nachricht senden

25

08.02.2006, 19:40

Stell doch einfach mal Direct3D auf den Debugmodus und es wird dir genau mitteilen, was falsch ist.

Phili

unregistriert

26

09.02.2006, 16:20

Es kann im Grunde jeder ***** in den PresentParams sein. Vieleicht unterstützt seine Graka kein

C-/C++-Quelltext

1
D3DSWAPEFFECT_DISCARD

(Ich mein, nichts ist unmöglich... ;) ).

27

09.02.2006, 17:39

Ich würde noch abfragen ob die Angaben auch unterstützt werden

für Gerätetyp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
D3DCAPS9 Caps;

// Direct3D initialisieren ...


if (SUCCEDED(pDirect3D->GetDeviceCaps (D3DADAPTER_DEFAULT, // Adapter-ID

                                          D3DDEVTYPE_HAL, // Gerätetyp

                                          &Caps))
{
        // Der Angegebene Gerätetyp wird unterstützt

}


für Bildbuffer und Z-buffer Format nimmst du IDirect3D9::CheckDeviceFormat

Danach testest du mit IDirect3D9::CheckDeviceType ob das Bildbufferformat auch mit dem Gewünschten Gerätetyp verfügbar ist

Danach testest du mit IDirect3D9::CheckDepthStencilMatch ob das Z - bufferformat auch mit dem Gewünschten Gerätetyp verfügbar ist

für Multisampling noch IDirect3D9::CheckDeviceMultiSamplingType

Kannst ja noch in der Dokumentation nachschauen

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

28

09.02.2006, 18:17

Schonmal D3DCREATE_SOFTWARE_VERTEXPROCESSING probiert? Wir ham ja keine Ahnung, was für ne Graka du hast, wer weiß, ob die mixed processing kann...

Oder vielleicht kann sie nur REF? ^^
Wenn wir schon dabei sind... ;)

Phili

unregistriert

29

09.02.2006, 20:35

Benutz doch zur Sicherheit D3DDEVTYPE_REF.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

30

09.02.2006, 20:56

Du meinst zum testen...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige