Managed DirectX9c - wo ist Device->SetLight()?



  • Ich habe auch gleich eine Frage:

    Wo finde ich in MDX die Entsprechung zu Device->SetLight()?
    In der unmanaged Version ist es in der Klasse Device und in EffectStateManager zu finden. In MDX nur noch im EffectStateManager.



  • Hat sich erledigt. Es geht mit Device->Lights[index]->...
    Oder eben eine existierende Light-Klasse in Device->Lights[index]->FromLight(existierendesLicht) ziehen.



  • Hat zwar nix mit deinem Thema zu tun, interessiert mich aber brennend,
    wo ich jemanden finde der MDX mit C++ programmieren will:

    Hast du irgendwo mal Tutorials und Beispiele zu MDX mit C++ (CLI) gefunden ?
    Alles was ich finde und sogar die MDX SDK Dokumentation beziehen sich aussschließlich auf MDX mit C# oder VB.NET.

    Mit freundlichen Grüßen
    Dexter1982



  • Hast du irgendwo mal Tutorials und Beispiele zu MDX mit C++ (CLI) gefunden ?
    Alles was ich finde und sogar die MDX SDK Dokumentation beziehen sich aussschließlich auf MDX mit C# oder VB.NET.

    ich frag mich manchmal, wie lange es noch geht bis die leute endlich merken, dass es unter .net keinen unterschied macht, ob man nun mit c# oder vb.net oder halt c++ programmiert. gerade entwickler, welche sich mit derart "forgeschrittenen" themen befassen sollten doch in der lage sein, von einer sprache in die andere zu übersetzen, zumindest wenn sie so nahe verwandt sind wie c# und c++ 😉

    was deine frage betrifft kann ich dir sagen, dass ich bisher noch keine "systematischen" tutorials gefunden habe, also etwas, das von null anfängt und sich schritt für schritt hocharbeitet.



  • OMG - Ich denke jeder ist in der Lage

    Console.WriteLine("") (C#) nach Console::WriteLine("") (C++) zu übersetzen.

    🙄

    Manchmal gibt es auch andere Gründe warum man nach einem Tutorial in "seiner" Sprache sucht...



  • Es gibt wirklich wenig zu finden (für C++/CLI und MDX). Manchmal wird man in Newsgroups fündig und sieht dort Code, den man so auch gemacht hat, aber ein Problem damit hat.

    Ein Beispiel bei dem ich gerade nicht weiss, ob das so richtig ist bzw. warum es da doch einen kleinen Unterschied zwischen c+ und C++/CLI gibt:

    In c#:

    Direct3D.Material myMaterial = new Direct3D.Material();
    ...
    myDevice.Material = myMaterial;
    

    In C++/CLI

    Direct3D::Material^ myMaterial = gcnew Direct3D::Material();
    myDevice->Material = safe_cast<Direct3D::Material>(myMaterial);
    

    oder

    array<CustomVertex::TransformedColored, 1>^ verts = gcnew array<CustomVertex::TransformedColored, 1> (3);
    ...
    

    Ich hatte natürlich versucht, das mit TransformedColored^ (man beachte das ^) zu machen. Compiliert... sieht auch im Debugger richgit aus... aber gibt später im Code einen Fehler (InvalidOperationException).

    Ich will sagen, es gibt schon einen teilweise nicht leicht zu entdeckenden Unterschied. Zumindest fragt man sich manchmal, ob dies oder das so richtig ist, wenn es eben mal einen cast braucht. etc.

    Manches macht man dann auch wieder ganz anders (soweit ich das bisher beurteilen kann), als in c#. Aber da muss ich mir erst noch ein Urteil bilden - noch stehe ich knietief in MDX 😉

    Auf jeden Fall ist es sinnvoll, sich unmanaged DirectX Beispiele und Tutorials anzusehen und dann nach Entsprechungen in c# zu suchen, denn da existieren schon erhebliche Unterschiede (ist ja auch klar - kein COM mehr).



  • Kleiner Nachtrag:
    Tetris gibt es natürlich als gutes Beispiel schon lange. Das hatte ich ganz vergessen.


Anmelden zum Antworten