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

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

1

25.09.2010, 22:48

Fullscreen wird auf dem falschen Monitor angezeigt. (DirectX11) [solved]

Hallo zusammen,

ich habe zwei Monitore. Auf Monitor 1 wird das Programm gestartet. Der Benutzer bestimmt über eine GUI, dass das Programm auf Monitor 2 im Fullscreen gestartet werden soll - so der Plan.

Nur wo kann ich in D3D11CreateDeviceAndSwapChain den Monitor angeben, auf dem das Fullscreen Fenster angezeigt werden soll?

(Outputs sind durch die EnumOutputs Funktion bekannt.)

Mfg

Fb

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fireball« (26.09.2010, 02:24) aus folgendem Grund: erledigt


CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

26.09.2010, 00:11

Bist du dir sicher, dass das mit dieser Funktion so einfach geht?

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

26.09.2010, 00:23

Du musst dein Fenster auf dem entsprechenden Monitor platzieren. Falls der PC auch über mehrere Grafikkarten verfügt darfst du nicht vergessen auch den richtigen Adapter zu verwenden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (26.09.2010, 00:35)


CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

4

26.09.2010, 00:40

Ich denke, er will den Fullscreen per Code auf einen bestimmten Bildschirm platzieren...

Evtl. wird das mit einer Kombination von http://msdn.microsoft.com/en-us/library/…v=VS.85%29.aspx und http://msdn.microsoft.com/en-us/library/…v=VS.85%29.aspx funktionieren ;)

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

26.09.2010, 00:52

OK gut, damit dürfte es auch gehen (wobei ich ehrlich gesagt noch nie versucht habe eine SwapChain auf einen anderen Output zu legen als den wo ihr Fenster ist. Sollte der Output zu einem anderen Adapter gehören geht das jedenfalls sicher nicht). Dann sollte er aber die Window Association der SwapChain aufheben und sich selber ums Mode Switching kümmern da das Defaultverhalten wäre dass der Fullscreen auf den Monitor geht auf dem der größte Teil des Fenster ist.

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

6

26.09.2010, 02:31

Was würde ich bloß ohne euch machen

Hallo ihr,

mein Denkfehler lag darin, dass ich angenommen hatte, dass SetFullscreenState einfach nur ein boolean erwartet.
Habe es mit DXGI_SWAP_CHAIN_DESC verwechselt.

Hier die Lösung:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
...
if(mDeviceSettings->bFullscreen){
        IDXGIOutput *pOutput;
        pAdapter->EnumOutputs((UINT)mDeviceSettings->dwOutput,&pOutput);
        mSwapChain->SetFullscreenState(true,pOutput);
        ReleaseCOM(pOutput);
    }
...


Grüße

Fb

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fireball« (26.09.2010, 02:37)


Werbeanzeige