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

23.02.2009, 17:34

Probleme mit CreateDevice (DirectX9)

Hallo.

Meine Hardware: AMD Athlon64 X2 6000+, ASUS EN8800GTS 640MB, ASUS M2N SLI-Deluxe
4GB 800Mhz Ram. WinXP Prof.

Im folgenden gibt CreateDevice nicht D3D_OK zurück, ich weiss selber nicht mehr weiter.

Erst meine WndProc zur zeit nur Basis.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LRESULT CALLBACK WindowProc(HWND hwnd,unsigned uMsg,WPARAM wParam,LPARAM lParam)
{
    switch(uMsg)
    {
        case WM_PAINT:
            
            break;
        case WM_DESTROY:

            break;
        default:
            return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
}


In WinMain

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
WNDCLASSEX wndcl={ sizeof(WNDCLASSEX),CS_CLASSDC,WindowProc,0,0,GetModuleHandle(NULL),
NULL,NULL,NULL,NULL,"3DO Tech",NULL};

if(!RegisterClassEx(&wndcl))
{
    return 0;
}

WindowHwnd=CreateWindow("3DO Tech",
            d3dElement->GameName,
            WS_VISIBLE|WS_OVERLAPPEDWINDOW,
            0,0,
                        d3dElement->VMzeiger->DisplayModeInfo.Width,
                        d3dElement->VMzeiger->DisplayModeInfo.Height,
            NULL,NULL,
            GetModuleHandle(NULL),
            NULL);

Die folgenden Parameter wurden vorher mit CheckDeviceFormat, CheckDeviceType und CheckDepthStencilMatch ermittelt.
Jede der Funktionen hat mit D3D_OK geantwortet.

Zitat

PRESENT_PARAMETER Einstellungen:

BackBufferWidth 1600
BackBufferHeight 900
BackBufferFormat D3DFMT_X8R8G8B8
BackBufferCount 1
MultiSampleType D3DMULTISAMPLE_6_SAMPLES
MultiSampleQuality 4
SwapEffect D3DSWAPEFFECT_COPY
hDeviceWindow entspricht der Adresse des Fensters
Windowed 0
EnableAutoDepthStencil 1
AutoDepthStencilFormat D3DFMT_D24S8
Flags D3DPRESENTFLAG_LOCKABLE_BACKBUFFER | D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL

FullScreen_RefreshRateInHz 60
PresentationsInterval D3DPRESENT_INTERVAL_ONE

BehaviorFlags=D3DCREATE_MIXED_VERTEXPROCESSING


C-/C++-Quelltext

1
CreateDevice(Adapter, D3DDEVTYPE_HAL, WindowHwnd, BehaviorFlags, &PerfParam, &pD3DDev9)


Vieleicht kann mir irgendjemand sagen, warum CreateDevice nicht mit D3D_OK antwortet. :?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

23.02.2009, 17:52

1. Willkommen im Forum
2. Benutze cpp-Tags.
3. Benute echte Codeausschnitte

4. und zum Problem. Es liegt wahrscheinlich an den parameters.

Mach mal das Multisampling weg und/oder schau mit dem Caps Viewer, ob du das wirklich alles unterstützt!

3

23.02.2009, 18:03

Danke für die Begrüssung.
Ich werde es so einmal versuchen.

4

23.02.2009, 18:20

Welcome Andi!

Denke auch, dass falsche Einstellungen beim Multisampling das Problem verursachen: MultiSampleQuality = 4
Woher hast du den Wert?
(D3DMULTISAMPLE_6_SAMPLES sollten Ok sein)


Ich habe mir erlaubt, deinen ersten Post mal etwas aufzuräumen.
(gemäß Absatz 2 und 3, Drakons "kleiner Foren-Knigge" :))
fka tm

5

23.02.2009, 18:31

Ich bin davon ausgegangen, das es sich dabei um die eingestellte
MultiSampleStuffe(Anti Aliasing) handelt.
Habe in einem Dialog die Anti Aliasing Stuffen(1-6) zur Auswahl gemacht und dachte ich könnte es so angeben.

Ich werde der Sache mal nachgehen. :)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

23.02.2009, 18:33

Zitat von »"TrikkieMikkie"«


Ich habe mir erlaubt, deinen ersten Post mal etwas aufzuräumen.
(gemäß Absatz 2 und 3, Drakons "kleiner Foren-Knigge" :))


Braver Mod.

(Link)


:D

7

23.02.2009, 18:38

Das war sehr nett.
Ich danke dafür.
Ich bin heute das erste mal in dem Forum tätig und denke das auch alles noch ausexperimentieren kann.

Danke noch mall.

8

23.02.2009, 18:38

Zitat von »"drakon"«

Braver Mod.

(Link)

Wuff wuff, hechel hechel :p wedel


Andi0310
Prüf doch mal mittels CheckDeviceMultiSampleType, was deine Karte unterstützt?
fka tm

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

23.02.2009, 18:49

Zitat von »"TrikkieMikkie"«

Zitat von »"drakon"«

Braver Mod.

(Link)

Wuff wuff, hechel hechel :p wedel


Ich liebe den Smiley jetzt schon :p

Zitat


Andi0310
Prüf doch mal mittels CheckDeviceMultiSampleType, was deine Karte unterstützt?

Oder wie schon gesagt für ganz (programmier)faule die Caps anschauen. Geht wahrscheinlich schneller. Und am besten, sobald es mal läuft mit den ganzen Parametern spielen und schön vergleichen. Irgendwann wirst du es dann verstehen, wie es etwa abläuft.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

23.02.2009, 20:03

Wie schon gesagt wurde: Überprüfe mal ob deine Hardware diese Einstellungen fürs Multisampling wirklich unterstützt, weil die kommen mir ein bisschen komisch vor.

Meine Graka (GeForce 7900GT) unterstützt z.B. nur D3DMULTISAMPLE_4_SAMPLES und D3DMULTISAMPLE_9_SAMPLES mit jeweils nur einem QualityLevel (0)...

Prüfen kannst du das ganz einfach mit dem Caps Viewer (ein kleines Tool is beim dx sdk dabei, findet sich bei den Utilities). Wenn du die Utilities in deiner PATH Umgebungsvariable hast, dann reicht es auch wenn du einfach bei Start > Ausführen "dxcapsviewer" eingibst und Return drückst...


(Link)

Werbeanzeige