Laden...

DirectX: Fehler bei "new Device (...)" [==> wegen Grafikkarte ohne HardwareVertexProcessing]

Erstellt von Sebb767 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.509 Views
S
Sebb767 Themenstarter:in
28 Beiträge seit 2011
vor 12 Jahren
DirectX: Fehler bei "new Device (...)" [==> wegen Grafikkarte ohne HardwareVertexProcessing]

Ich will mir mein eigenes Spiel erstellen, bin damit eig schon einigermaßen der Alpha nahe, aber ich kann nicht weiter testen, da Dx im try-catch-Block das als Fehler ausgibt.

Hier mal der Code in der Main:


                try
                {
                    ex.InitGfx();
                }
                catch (DirectXException e)
                {
                    MessageBox.Show("DirectX Fehler: " + e.Message +
                        "/n/nAnwendung wird beendet!", "Direct X Failure",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                    ex.Show();
                    while (ex.Created)
                    {
                        ex.Render();
                        Application.DoEvents();
                    }
                

Dann noch der Code in InitGfx:


private Device dx_Device;

....

this.ClientSize = new Size(800, 600);
PresentParameters pp = new PresentParameters();
            pp.Windowed = true;
            pp.SwapEffect = SwapEffect.Copy;
 dx_Device = new Device(Manager.Adapters.Default.Adapter,        DeviceType.Hardware,
                 this, CreateFlags.HardwareVertexProcessing, pp);

Hab natürlich nur das wichtige rein...laut Einzelschritt kommt der Fehler bei der new-Anweisung des DX-Device...Habt ihr ne Idee? Ich hab den Code aus einem Tutorial und hab alles nochmal nachgeschaut ist eigentlich korrekt so.

Thx im vorraus^^

PS: Was bei SuFu und Google rauskam waren nur Fehler bezüglich MP3 und Datein etc.

I hacked 127.0.0.1

5.941 Beiträge seit 2005
vor 12 Jahren

Hallo Sebb767

Wie lautet der Exceptiontext und kannst du was aus dem StackTrace entnehmen?
Seit wann kommt der Fehler?
Was hast du seit da gemacht (installiert, etc..)?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

S
Sebb767 Themenstarter:in
28 Beiträge seit 2011
vor 12 Jahren

Der Exceptiontext lautet nur "Fehler in der Anwendung". Ich hab das Projekt unter Framework 3.5 und Dx-SDK March 09/June 10. Stacktrace sagt nur:

Fehlermeldung:
Microsoft.DirectX.Direct3D.Device..ctor(Int32 Adapter, DeviceType devicetype, Control RenderWindow, CreateFlags behavorflags, PresentParameters[] presentationparameters)

Und dann verweist es noch auf 2 Zeilen mit dem Code:
Die Zeile, bei der "Catch" ausgelöst wird.


dx_Device = new Device(Manager.Adapters.Default.Adapter, DeviceType.Hardware, this, CreateFlags.HardwareVertexProcessing, pp);

Und auf die Stelle des Methodenaufrufs in der Main


ex.InitGfx();

Die DirectX-Anwendung ist auch in der Main mit

SilentSpace ex = new SilentSpace();

initiert...

EDIT: Der Fehler kommt schon die ganze Zeit(also seit dem schreiben des Codes).

I hacked 127.0.0.1

148 Beiträge seit 2006
vor 12 Jahren

Hallo Sebb767,

das kann unter Umständen daran liegen, dass deine Grafikkarte kein HardwareVertexProcessing unterstützt 😃

du kannst dir die Caps deiner Grafikkarte holen und prüfen, ob sie dies unterstützt.. wenn ja, nimmst du HardwareVertexProcessing, ansonsten nimmst du SoftwareVertexProcessing und lässt deine CPU alles berechnen..

kleiner Ausschnitt, von einer Stelle an der ich das auch verwende..


Caps itsCaps = D3D.Manager.GetDeviceCaps(0, D3D.DeviceType.Hardware);
CreateFlags itsCreateFlags;

// Wird auf der externen Grafikkarte gerechnet?
if (itsCaps.DeviceCaps.SupportsHardwareTransformAndLight)
   itsCreateFlags = CreateFlags.HardwareVertexProcessing;
else
   itsCreateFlags = CreateFlags.SoftwareVertexProcessing;

// optional
if (itsCaps.DeviceCaps.SupportsPureDevice) 
   itsCreateFlags |= CreateFlags.PureDevice;

// optional
itsCreateFlags |= CreateFlags.FpuPreserve;

itsDevice = new D3D.Device(0, D3D.DeviceType.Hardware, this, itsCreateFlags, itsPresentParams);

greetz..

I cna tpye 300 wrods pre mnuite!

S
Sebb767 Themenstarter:in
28 Beiträge seit 2011
vor 12 Jahren

Danke^^ Hatte garnicht dran gedacht dass das an der Notebookgraka liegen könnte, die BSP's gingen ja 😉 Naja, jetzt gehts und hat noch ne Absicherung gg Onboard-Zeug.

Thx =)

I hacked 127.0.0.1