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

1

05.11.2013, 15:32

[Gelöst] Presentationsparameter auffüllen für CreateDevice

Ich bin gerade dabei Direct3D zu initialisieren und habe ein paar probleme beim Auffüllen der Presentationsparameter
Bis jetzt habe ich erst die BackBuffer Größe und die Refreshrate, sowie Fensterhandle angegeben. Beim Rest habe ich Probleme,
da ich nicht weiß wie ich das ganze auffülle(natürlich könnte ich irgendwelche werte einsetzen, aber ich will ja vorher prüfen
was unterstützt wird!) Mein bisheriger Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
                d3dpp.BackBufferWidth               =           pmodes[inm-1].Width;
        d3dpp.BackBufferHeight              =           pmodes[inm-1].Height;
        //d3dpp.BackBufferFormat                    =           ;
        d3dpp.BackBufferCount               =           1;
        //d3dpp.MultiSampleType             =           ;
        //d3dpp.MultiSampleQuality                  =           ;
        //d3dpp.SwapEffect                  =           ;
        d3dpp.hDeviceWindow                 =           hwnd;
        d3dpp.Windowed                  =           TRUE;
        //d3dpp.EnableAutoDepthStencil              =           ;
        //d3dpp.AutoDepthStencilFormat              =           ;
        //d3dpp.Flags                       =           ;
        d3dpp.FullScreen_RefreshRateInHz            =           pmodes[inm-1].RefreshRate;
        //d3dpp.PresentationInterval                =           ;

Wäre schön wenn mir jemand helfen könnte


PS: Sry das der code so verrutscht ist! Keine Ahnung woran das liegt

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hoxplus« (06.11.2013, 17:10)


wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

2

05.11.2013, 15:50

Zu Anfang probier erstmal das hier:

Du wendest ZeroMemory auf dein Objekt an.

Dann füllst du die folgenden Member aus:

C-/C++-Quelltext

1
2
3
d3dpp.hDeviceWindow = ...; // dein Handle zum Fenster
d3dpp.Windowed = ...; // TRUE oder FALSE
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;


Wenn du das gemacht hast und IDirect3D::CreateDevice nicht fehlschlägt (Test mit dem FAILED-Makro) kannst du dich um die anderen Parameter kümmern.

3

05.11.2013, 16:15

Deiner Antwort entnehme ich, dass man gar nicht alles auffüllen muss ??!!
Bleibt aber trotzdem noch die frage wie ich zum beispiel abfragewelche
multisampletyps unterstützt werden oder welches Z-Buffer format

PS: Ach ja, Vollbildmodus klappt bei dieser konstelation nicht

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

4

05.11.2013, 16:20

Mit ZeroMemory setzt du ja alles auf 0, der Standardwert für die meisten Member.
So wäre das minimalistischste Füllen der Struktur.

Was alles unterstützt wird entnimmst du der D3DCAPS9-Struktur.

EDIT: Ich glaube, da musst du noch Werte wie BackbufferFormat und RefreshRate setzten, wobei du die unterstützten Werte via IDirect3D::EnumVideoModes (Heißt die so?) herausbekommst.

FSA

Community-Fossil

  • Private Nachricht senden

5

05.11.2013, 16:38

Das abzufragen ist nicht mit 3 Zeilen Code machbar. Ich habe hier mal ein gutes Tutorial gefunden. Es ist allerding für DirectX 11. Aber vielleicht kann es dir trotzdem helfen. Klick

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

6

05.11.2013, 18:05

Habs jetzt hinbekommen. Alles läuft so wie es soll.
Das einzige was mich ein bisschen verwirrt ist, dass
beim Beenden des Programmes nicht 0 sonder 3 als
Ergebnis zurückgegeben wird.

7

05.11.2013, 18:12

Noch ne Frage: Warum bekomme ich bei dem Code 11 Fehler?
Vorallem so komische



C-/C++-Quelltext

1
2
3
4
5
D3DFORMAT d3dZStencilFormats[] = {D3DFMT_D16_LOCKABLE, D3DFMT_D32, 
                            D3DFMT_D15S1, D3DFMT_D24S8,
                            D3DFMT_D24X8, D3DFMT_D24X4S4, 
                            D3DFMT_D32F_LOCKABLE, 
                            D3DFMT_D24FS8, D3DFMT_D16};


EDIT: Nach einem Neustart von VC++ hat sich das Problem irgendwie verflüchtigt. Allein der Herr im Bit-Himmel weiß was das Problem war! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hoxplus« (05.11.2013, 18:56)


wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

8

05.11.2013, 21:12

Hat sich das mit der 3 als Rückgabe denn erledigt?

Wenn nein:
Zeichnest du etwas mit dem Device (erfolgreich natürlich)?
Wenn nein: teste mal die Erstellung des Devices mit FAILED.
Wenn ja: Keine Ahnung, warum du trotzdem 3 als Rückgabe bekommst. ^^

Werbeanzeige