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
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
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
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!
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