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

14.05.2005, 17:03

Fenster oder Vollbild oder etwas dazwischen?

Hallo, ich hab mich entschlossen, mal etwas ganz ohne TriBase zu machen, also nur mit d3dx und so. Aber als mit dem Vollbildmodus klappt's nicht so richtig. Man scheint immer noch mit der Startleiste agieren zu können. Wenn ich kan unten klicke, wird das Programm minimiert. Und die Startleiste flimmert auch so komisch hervor.
Ich hab mal etwas Code hier:

Quellcode

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
HRESULT InitD3D( HWND hWnd )
{
    if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
        return E_FAIL;

    D3DPRESENT_PARAMETERS pp; 
    ZeroMemory(&pp,sizeof(D3DPRESENT_PARAMETERS));

    pp.BackBufferCount= 1;  //We only need a single back buffer
    pp.MultiSampleType=D3DMULTISAMPLE_NONE; //No multi-sampling
    pp.MultiSampleQuality=0;                //No multi-sampling
    pp.SwapEffect = D3DSWAPEFFECT_DISCARD;  // Throw away previous frames, we don't need them
    pp.hDeviceWindow=hWnd;  //This is our main (and only) window
    pp.Flags=0;            //No flags to set
    pp.FullScreen_RefreshRateInHz=75; //Default Refresh Rate
    pp.PresentationInterval=D3DPRESENT_INTERVAL_ONE;
   //Default Presentation rate
    pp.BackBufferFormat=D3DFMT_X8R8G8B8;      //Display format
    pp.EnableAutoDepthStencil=TRUE; //No depth/stencil buffer
    pp.AutoDepthStencilFormat = D3DFMT_D24X8;
    pp.Windowed          = FALSE;
    pp.BackBufferWidth   = 800;
    pp.BackBufferHeight  = 600;


    if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                      D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                      &pp, &g_pD3DDevice ) ) )
    {
        return E_FAIL;
    }

    ShowCursor(FALSE);

    // Turn on the zbuffer
    g_pD3DDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
    
    // Turn on ambient lighting 
    g_pD3DDevice->SetRenderState( D3DRS_AMBIENT, 0xffffffff );

    return S_OK;
}
Mein Projekt: Rise of the Sylvan

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

14.05.2005, 19:46

ähm, wenn ich dich jetzt richtig verstanden habe, funktioniert der Vollbild Modus nicht, ja, dann liegt das an folgender Codezeile

C-/C++-Quelltext

1
pp.Windowed          = FALSE;


ändere mal in true um!

3

14.05.2005, 20:03

Doch, der Vollbildmodus funktioniert sehr wohl aber unten am Rand flimmert manchmal die Startleiste durch und wenn ich darauf klicke, wird das Spiel minimiert. Wie wenn das Spiel nicht den Fokus hat oder so. Keine Ahnung.
Mein Projekt: Rise of the Sylvan

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

14.05.2005, 20:12

ich weiss nicht, aber gib mal beim Backbuffer Format lieber D3DFMT_UNKNOWN an, du weisst ja nicht welches der Spieler nun hat ;)

5

14.05.2005, 20:30

Nein, dann geht das Programm gar nicht erst ins Vollbild.
Mein Projekt: Rise of the Sylvan

6

15.05.2005, 00:58

mit welchen optionen hast denn dein fenster erzeugt?

7

15.05.2005, 09:40

Quellcode

1
2
3
4
5
6
7
WNDCLASSEX wc = {sizeof(WNDCLASSEX), CS_CLASSDC,MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                      g_acClassName, NULL };
RegisterClassEx( &wc );
    
HWND hWnd = CreateWindow(g_acClassName, "D3DPurTest", 
                              WS_OVERLAPPEDWINDOW, 0,0,400,400,
                              GetDesktopWindow(), NULL, wc.hInstance, NULL );
Mein Projekt: Rise of the Sylvan

8

16.05.2005, 20:58

Ey, könnt ihr mir nicht helfen? Gibt's nicht irgendwelche Regeln beim Vollbildmodus? Im Fenstermodus funktioniert's ja.
Mein Projekt: Rise of the Sylvan

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

16.05.2005, 23:16

Überleg mal was du damit sagst:
GetDesktopWindow()
und dann überleg mal was du mit dem bekommenen handle machst ;)

10

17.05.2005, 14:39

Jaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!! Genau so. Vielen Dank.
Mein Projekt: Rise of the Sylvan

Werbeanzeige