[MDX] DX2Dengine [Update 17.4.2010 17:22] mit Sourcecode Z-Buffer-Korrektur

    • VB.NET

    Es gibt 61 Antworten in diesem Thema. Der letzte Beitrag () ist von Tibha.

      Der Gleiche wie Sakeco.

      VB.NET-Quellcode

      1. Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "Draw2D" mit diesen Argumenten aufgerufen werden kann:
      2. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As Integer)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Rectangle" konvertiert werden.
      3. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As Integer)': Der Wert vom Typ "Single" kann nicht in "System.Drawing.Rectangle" konvertiert werden.
      4. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As Integer)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      5. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Rectangle" konvertiert werden.
      6. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "Single" kann nicht in "System.Drawing.Rectangle" konvertiert werden.
      7. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      8. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, srcRectangle As System.Drawing.Rectangle, destinationRectangle As System.Drawing.Rectangle, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "Integer" kann nicht in "System.Drawing.Color" konvertiert werden.
      9. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, rotationCenter As System.Drawing.Point, rotationAngle As Single, position As System.Drawing.Point, color As Integer)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      10. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, rotationCenter As System.Drawing.Point, rotationAngle As Single, position As System.Drawing.Point, color As Integer)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      11. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, rotationCenter As System.Drawing.Point, rotationAngle As Single, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      12. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, rotationCenter As System.Drawing.Point, rotationAngle As Single, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "System.Drawing.PointF" kann nicht in "System.Drawing.Point" konvertiert werden.
      13. 'Public Sub Draw2D(srcTexture As Microsoft.DirectX.Direct3D.Texture, rotationCenter As System.Drawing.Point, rotationAngle As Single, position As System.Drawing.Point, color As System.Drawing.Color)': Der Wert vom Typ "Integer" kann nicht in "System.Drawing.Color"
      bei den Verweisen hast du ja sicherlich die Microsoft.DirectX.Direct3DX Assembly hinzugefügt, hast du da auch die neuste Version genommen? Von der Datei gibt es deshalb so viele Versionen, da eben diese Funktion sowie ein paar andere noch Fehler enthielten(DrawText auch...)
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Morgen,
      Ich hab es nun hinbekommen es zeigt mir keine Fehler mehr an,bloß wenn ich es Debuggen möchte kommt mir eine Fehlermeldung die ich nicht ganz verstehe.

      Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: ist keine zulässige Win32-Anwendung. (Ausnahme von HRESULT: 0x800700C1).

      Hab es auch mit Point versucht.

      Mein Form Code:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Dim engine As New DX2Dengine
      3. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
      4. 'Form.Click
      5. engine.Render()
      6. End Sub
      7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      8. 'Form.Load
      9. engine.InitEngine(Me, Me.Size, True)
      10. engine.AddSprite(My.Resources.a, New Point(0, 0))
      11. End Sub
      12. End Class
      sieht mir so aus, als hättest du ein 64 Bit System...
      also aufjedenfall darf es nicht auf .net Framework 4 gestellt sein(sondern älter...)...
      zusätzlich musst du es für ein 32 Bit System kompilieren:
      vbarchiv.net/tipps/tipp_2226-3…endung-vb-auf-64-bit.html
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Hey,
      Ja ich besitze ein 64Bit System habe es jetzt so wie im Link beschrieben die Zeile hinzugefügt.
      Aber das Problem besteht weiterhin, ich weiß jetzt nicht ob ich es richtig eingefügt habe.
      Es muss auf .Net Framework 3.5 sein da er sonnst eine Funktion nicht erkennt.

      Spoiler anzeigen

      VB.NET-Quellcode

      1. <?xml version="1.0" encoding="utf-8"?>
      2. <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      3. <PropertyGroup>
      4. <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
      5. <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
      6. <ProductVersion>9.0.30729</ProductVersion>
      7. <SchemaVersion>2.0</SchemaVersion>
      8. <ProjectGuid>{32F13B22-7F27-4873-A57E-7D87924E77F6}</ProjectGuid>
      9. <OutputType>WinExe</OutputType>
      10. <StartupObject>TheRessource.My.MyApplication</StartupObject>
      11. <RootNamespace>TheRessource</RootNamespace>
      12. <AssemblyName>TheRessource</AssemblyName>
      13. <FileAlignment>512</FileAlignment>
      14. <MyType>WindowsForms</MyType>
      15. <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
      16. <OptionExplicit>On</OptionExplicit>
      17. <OptionCompare>Binary</OptionCompare>
      18. <OptionStrict>Off</OptionStrict>
      19. <OptionInfer>On</OptionInfer>
      20. <TargetFrameworkSubset>
      21. </TargetFrameworkSubset>
      22. </PropertyGroup>
      23. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
      24. <DebugSymbols>true</DebugSymbols>
      25. <DebugType>full</DebugType>
      26. <DefineDebug>true</DefineDebug>
      27. <DefineTrace>true</DefineTrace>
      28. <OutputPath>bin\Debug\</OutputPath>
      29. <DocumentationFile>TheRessource.xml</DocumentationFile>
      30. <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
      31. </PropertyGroup>
      32. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
      33. <DebugType>pdbonly</DebugType>
      34. <DefineDebug>false</DefineDebug>
      35. <DefineTrace>true</DefineTrace>
      36. <Optimize>true</Optimize>
      37. <OutputPath>bin\Release\</OutputPath>
      38. <DocumentationFile>TheRessource.xml</DocumentationFile>
      39. <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
      40. <PlatformTarget>x86</PlatformTarget>
      41. </PropertyGroup>
      hast du es gespeichert und auch nochmal neu geladen?
      Und natürlich nochmal compiliert...

      evtl. mal den PlatformTarget teil in die anderen PropertyGroups einfügen?!
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Hab ich jetzt auch getan nun bekomme ich die nächste Fehlermeldung.

      Die DLL "C:\Windows\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll" unternimmt einen Versuch, innerhalb der Sperre für den OS-Loader eine verwaltete Ausführung durchzuführen. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen, da dies ein Hängen der Anwendung zur Folge haben kann.

      Zeile

      VB.NET-Quellcode

      1. Dim disp As DisplayMode = Manager.Adapters.Default.CurrentDisplayMode
      Super Klasse ! (Sie hat mir MDX beigebracht :thumbsup: )

      Wenn ich die Klasse modifiziere, kann ich ihr dann einen anderen namen geben und in der Lizenz schreiben, dass es eine Modifikation ist ?

      Gruß, trudi

      EDIT: Wieso benutzt du denn den Typ long anstatt integer ?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trudi“ ()

      Hi,
      soweit ich weiß kann long mit größeren Zahlen rechnen.
      Ist das der Grund wieso du das in der Engine verwendest ?
      Oder ist das schneller ? (was ich nicht glaube)


      Beim starten tritt immer bei mir eine InvalidCallException auf.

      Die Codezeile zum Initialisieren des Device wird markiert :

      VB.NET-Quellcode

      1. dev = New Device(0, DeviceType.Hardware, forControl.Handle, CreateFlags.SoftwareVertexProcessing, pp)


      Ich habe alle PointF in Point umgewandelt. Daran liegt es aber Wahrscheinlich nicht.

      Gruß, Trudi

      Edit :
      Ich habe eine halbtransparente Datei im png format geladen (Größe : 500x500)
      Wenn ich auf meinem Bildschirm in die Linke obere Ecke gehe kommt auf einmal ein Laden-Mauszeiger ..

      Edit#2 :
      Ich hab vergessen mein projekt auf das .net framework > 4 einzustellen

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Trudi“ ()

      Die Message ist total sinnlos :
      InvalidCallException
      Fehler in der Anwendung


      Das passiert bei Framework 2.0 und 3.5.

      Code :

      VB.NET-Quellcode

      1. engine.InitEngine(Me, Me.Size, True)
      2. engine.AddSprite(My.Resources.halbtransparenter_kreis.png, New Point(500,500))


      Gruß, Trudi