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

Phili

unregistriert

1

16.12.2005, 15:07

Problem mit D3DDEVTYPE_HAL

Ich hab ein Prob:
Das Programm funktioniert:

C-/C++-Quelltext

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <windows.h>
#include <D3D9.h>
#include <D3DX9.h>
#include <StdIO.h>
#include "resource.h"

struct Vertex
{
    float Pos[3];
    float tex[2];
};

struct Polygone
{
    Vertex vert[3];
};

WNDCLASSEX wndclassex;
HWND hwnd;
IDirect3D9 *D3D;
IDirect3DDevice9 *D3DDev;
MSG msg;
D3DPRESENT_PARAMETERS pp;
D3DMATRIX World;
D3DMATRIX Projection;
D3DMATRIX View;
IDirect3DTexture9 *Tex;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
    Polygone Poly;
    Poly.vert[0].Pos[0] = 0;
    Poly.vert[0].Pos[1] = 0;
    Poly.vert[0].Pos[2] = 0;
    Poly.vert[0].tex[0] = 0;
    Poly.vert[0].tex[1] = 0;
    Poly.vert[1].Pos[0] = 1;
    Poly.vert[1].Pos[1] = 0;
    Poly.vert[1].Pos[2] = 0;
    Poly.vert[1].tex[0] = 1;
    Poly.vert[1].tex[1] = 0;
    Poly.vert[2].Pos[0] = 0.5;
    Poly.vert[2].Pos[1] = 1;
    Poly.vert[2].Pos[2] = 0;
    Poly.vert[2].tex[0] = 0.5;
    Poly.vert[2].tex[1] = 1;

    wndclassex.cbClsExtra = NULL;
    wndclassex.cbSize = sizeof(WNDCLASSEX);
    wndclassex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
    wndclassex.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1));
    wndclassex.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1));
    wndclassex.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1));
    wndclassex.hInstance = hInstance;
    wndclassex.lpfnWndProc = DefWindowProc;
    wndclassex.lpszClassName = "PHILIP";
    wndclassex.lpszMenuName = NULL;
    wndclassex.style = CS_CLASSDC;
    RegisterClassEx(&wndclassex);
    if(FAILED(
    hwnd = CreateWindow("PHILIP", "PHILIP", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 
        0, 0, 300,300, NULL, NULL, GetModuleHandle(NULL), NULL)))
    {
        MessageBox(NULL, "Fehler beim Erstellen des Fensters", "Fehlermeldung", MB_OK);
    }


    D3D = Direct3DCreate9(D3D_SDK_VERSION);
    ZeroMemory(&pp, sizeof(D3DPRESENT_PARAMETERS));
    pp.BackBufferWidth = 800;
    pp.BackBufferHeight = 600;
    pp.BackBufferFormat = D3DFMT_X8R8G8B8;
    pp.BackBufferCount = 1;
    pp.MultiSampleType = D3DMULTISAMPLE_NONE;
    pp.MultiSampleQuality = 0;
    pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    pp.Windowed = FALSE;
    pp.EnableAutoDepthStencil = TRUE;
    pp.AutoDepthStencilFormat = D3DFMT_D32;
    pp.FullScreen_RefreshRateInHz = 60;
    pp.PresentationInterval = 1;
    if(FAILED(
    D3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, hwnd, 
        D3DCREATE_MIXED_VERTEXPROCESSING, &pp, &D3DDev)))
    {
        MessageBox(NULL, "Fehler beim Erstellen der D3D9Device", "Fehlermeldung", MB_OK);
    }


    D3DDev->SetFVF(D3DFVF_XYZ|D3DFVF_TEX1);
    D3DDev->SetRenderState(D3DRS_LIGHTING, FALSE);
    D3DDev->SetRenderState(D3DRS_CULLMODE, FALSE);;
    D3DDev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
    D3DDev->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
    D3DDev->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);



    if(FAILED(
    D3DXCreateTextureFromFileEx(D3DDev, "Picture1.bmp", 1024, 1024, D3DX_DEFAULT, 0,
        D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_BOX|D3DX_FILTER_MIRROR_U, 
        D3DX_DEFAULT, 0, NULL, NULL, &Tex)))
    {
        MessageBox(NULL, "Fehler beim Texturladen", "Fehlermeldung", MB_OK);
    }
    D3DDev->SetTexture(0, Tex);


    while(msg.message != WM_QUIT)
    {

        while(PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }

        Poly.vert[0].tex[0] += 0.1;
        Poly.vert[1].tex[0] += 0.1;
        Poly.vert[2].tex[0] += 0.15;
        Poly.vert[1].Pos[0] -= 0.01;
        Poly.vert[2].tex[1] += 0.01;


        D3DDev->BeginScene();
        D3DDev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(100, 100, 100), 1, 1);
        D3DDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, &Poly.vert[0], sizeof(Vertex));
        D3DDev->EndScene();
        D3DDev->Present(0,0,0,0);
    }


    return 0;
}


Sobald ich aber D3DDEVTYPE_HAL angebe, funktioniert die Device nich.
Ich hab ne Grafikkarte drinnen(6600GT)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

16.12.2005, 16:50

Preisfrage:
pp.AutoDepthStencilFormat = D3DFMT_D32;
pp.FullScreen_RefreshRateInHz = 60; (bei 800 x 600)
pp.PresentationInterval = 1;

Unterstützt deine Graka das alles mit 100%iger Sicherheit? Dafür macht man eigentlich immer Überprüfungen rein.
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.

3

16.12.2005, 17:19

hmm ich geh mal davon aus das du keines der beiden Bücher gelesen hast :D naja.. guck mal in der SDK Dokumentation.. steht genügen drüber drin.... guck mal nach Hardware Information
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige