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

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

11

28.06.2004, 17:44

Ich hätte gedacht ich habe alles gelesen. Den Beitrag muss ich wohl übersehen haben :jojo: :rolleyes:

Ich hatte mal einen ähnlichen (oder auch den gleichen) Fehler (hab ein schlechtes Erinnerungsvermögen), aber ich glaube der hat sich gelöst als ich:

g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,NULL, D3DCREATE_HARDWARE_VERTEXPROCESSING, &PresentParams, &g_pD3DDevice)

den fetten Eintrag auf NULL gesetzt habe.

Einen Versuch wirds ja wohl wert sein. :P :huhu:
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

12

28.06.2004, 17:49

Ne dann kommt genau das gleiche :crying: ! Vielleicht weiß ja M4513R 5CH3RFG3N weiter

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

13

28.06.2004, 18:54

nicht ärgern, wenn ich was überlesen haben sollte :rolleyes: , aber probier doch mal den start-up von z.B. der tribase aus und guck, ob du diese Werte in der Kombination benutzen kannst!? Wäre nur mal ne Idee ;)
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

14

28.06.2004, 19:04

So jetzt machen wir richtig:

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
 DirectX::DirectX(void)
{

    int                   iFormat = 0;    
    D3DFORMAT             aFormat[] = {D3DFMT_A8R8G8B8, D3DFMT_X8R8G8B8,D3DFMT_R5G6B5};
    int                   ibufferFormat = 0;    
    D3DFORMAT             abufferFormat[] = {D3DFMT_D24S8, D3DFMT_D24X8,D3DFMT_D32,D3DFMT_D16};

    // Globale IDirect3D9-Schnittstelle erzeugen

    g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    if(g_pD3D == NULL) 
        return;    
    

 ADAPTER=D3DADAPTER_DEFAULT;
 g_pD3D->GetDeviceCaps(ADAPTER,D3DDEVTYPE_HAL,&caps);


    while(iFormat < 3)
    {
     if(D3D_OK==g_pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,aFormat[iFormat],D3DUSAGE_RENDERTARGET,D3DRTYPE_SURFACE , aFormat[iFormat]))
      break;     
     iFormat++;
    }

    while(ibufferFormat < 4)
    {
     if(D3D_OK==g_pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,aFormat[iFormat],D3DUSAGE_DEPTHSTENCIL,D3DRTYPE_SURFACE ,abufferFormat[ibufferFormat]))
      break;     
     ibufferFormat++;
    }
        // Präsentationsstruktur ausfüllen

        ZeroMemory(&PresentParams, sizeof(D3DPRESENT_PARAMETERS));
        PresentParams.BackBufferWidth               = GetSystemMetrics(SM_CXSCREEN);
        PresentParams.BackBufferHeight              = GetSystemMetrics(SM_CYSCREEN);
        PresentParams.BackBufferFormat              = aFormat[iFormat];
        PresentParams.BackBufferCount               = 1;
        PresentParams.MultiSampleType               = D3DMULTISAMPLE_NONE ;
        PresentParams.MultiSampleQuality            = 0;
        PresentParams.SwapEffect                    = D3DSWAPEFFECT_DISCARD;
        PresentParams.hDeviceWindow                 = NULL;
        PresentParams.Windowed                      = false;
        PresentParams.EnableAutoDepthStencil        = true;
        PresentParams.AutoDepthStencilFormat        = abufferFormat[ibufferFormat];
        PresentParams.Flags                         = D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL;
        PresentParams.FullScreen_RefreshRateInHz    = D3DPRESENT_RATE_DEFAULT;
        PresentParams.PresentationInterval          = D3DPRESENT_INTERVAL_ONE;
}



bool DirectX::InitDirectX (HICON Icon,bool ownwindow)
{
    if(ownwindow==false)
      PresentParams.hDeviceWindow=spiel.pWindow->InitWindow(PresentParams.BackBufferWidth,PresentParams.BackBufferHeight,"spiel",Icon,NULL);
    // Und nun die Geräteschnittstelle generieren

    if(FAILED(           g_pD3D->CreateDevice(ADAPTER,
                                             D3DDEVTYPE_HAL ,
                                             PresentParams.hDeviceWindow,
                                             D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                             &PresentParams,
                                             &g_pD3DDevice)))
    if(FAILED(           g_pD3D->CreateDevice(ADAPTER,
                                             D3DDEVTYPE_HAL ,
                                             PresentParams.hDeviceWindow,
                                             D3DCREATE_MIXED_VERTEXPROCESSING,
                                             &PresentParams,
                                             &g_pD3DDevice)))
    if(FAILED(           g_pD3D->CreateDevice(ADAPTER,
                                             D3DDEVTYPE_HAL ,
                                             PresentParams.hDeviceWindow,
                                             D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                             &PresentParams,
                                             &g_pD3DDevice)))
    {
        // Fehler beim Generieren der Schnittstelle!

        Log::writetoLog("Fehler beim erstellen der device aufgetretten");
        return(false);
    }
     spiel.ptextur->g_pD3DDevice=g_pD3DDevice;
     //spiel.pModell->g_pD3DDevice=g_pD3DDevice;

    // Es hat geklappt!

return(true);
}

Damit muss es gehen!

Edited by David Scherfgen:
DirectX bitte mit "c"... ;)

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

15

28.06.2004, 21:40

Oha kam ich mir eben dumm vor als ich das gelesen hab mit den vielen Zahlen ^^ da konnte doch was nicht stimmen. Derweil habe ich meinen Konfigdialog fertiggestellt. Ach noch was: David dein Buch rockt. Man kanns nicht oft genug sagen. Jetzt werd ich mal Nox Ratschlag in die Tat umsetzen!

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

16

28.06.2004, 22:48

Ne also ich habe das jetzt implementiert, musste es aber etwas verkrüppeln, da es teilweise nicht kompatibel zu meinem Code war. Leider kommt der gleiche Fehler immer wieder. Es liegt vielleicht an dem InitWindow oder an dem Handle, leider habe ich mit solchen Fehlerquellen keine Erfahrung, und kann hier wohl auch nicht den gesamten Code posten. Ich habe mal den Quellcode kuezfristig auf die Homepage von meinem Betriebssystem gestellt ( http://mitglied.lycos.de/helixos/Engine.rar - normalerweise unter www.helixos.de.vu). Vielleicht kann sichs ja mal jemand anschaun. Einfach die dsw öffnen, kompilieren und naja.
Der Code ist aber noch etwas unsauber und noch nicht kommenitert und geordnet. Das kommt aber gleich als nächstes.

EDIT: Wenn man die Engine.rar laden will, muss man erst dem Lycos link auf die Hauptseite folgen und dann nochmal den Link eingeben (oder einfach Engine.rar dranhängen)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

17

28.06.2004, 23:09

Wäre nice wenn man drauf zugreifen könnte........
also nocheinmal genauer: Es kommt eine Fehlermeldung von wegen auf die Seite oder die datei kann nciht zugegriffen werden oder wurden nciht gefunden versuchen sie es später nochmal erneut........

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

18

28.06.2004, 23:17

geh einfach erst ins startverzeichnis (/helixos/) und nimm dann nochmal die URL von der RAR Datei. Die machen das halt, damit man kein Hotlinking (Bilder etc.) macht

Edit: ja sorry, er hats ja selbst schon in nem Edit hinzugefügt ;)
Mozilla Firefox
The Browser - reloaded

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

19

29.06.2004, 13:38

Ich habe jetzt nochmal den Code aufgeräumt, und werde ihn jeden Momen uppen, also dann die aktuelle Version. Kann bitte mal jemand den code bei sich testen, vielleicht liegts ja an meinem pc oder so!

Danke für eure Bemühungen! :huhu:

EDIT: Achtung, wenn man dann .../Engine.rar eingibt, das E muss gross sein!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

20

29.06.2004, 13:52

Wenn man es klein schreibt sagt er die datei existiert nicht wenn man es großschreibt sagt er:
Engine.rar von mitglied.lycos.de kann nciht übertragen werden

Die Internetsite konnte nicht geöffnet werden. Sie ist entweder nicht verfügbar oder konnte nicht gefunden werden. Versuchen Sie es später erneut.

Also so kann ich dir nicht helfen........

Werbeanzeige