myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grafik und Sound » Wie kann ich DirectX in meine Anwendung einbinden?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann ich DirectX in meine Anwendung einbinden?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
DSS
myCSharp.de-Mitglied

Dabei seit: 11.07.2012
Beiträge: 8


DSS ist offline

Wie kann ich DirectX in meine Anwendung einbinden?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Versuche Anhand der Beispiele von  http://www.riemers.net/eng/Tutorials/Dir...eries1/tut2.php das DirectX einzubinden. Bisher ohne Erfolg, hier der Code:

C#-Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace TestDirectX1
{
    public partial class Form1 : Form
    {
        private Device device;

        public Form1()
        {
            InitializeComponent();
        }

        public void InitializeDevice()
        {
            PresentParameters presentParams = new PresentParameters();
            presentParams.Windowed = true;
            presentParams.SwapEffect = SwapEffect.Discard;

            device = new Device(0, DeviceType.Reference, this, CreateFlags.SoftwareVertexProcessing, presentParams);
        }



        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, Color.DarkSlateBlue, 1.0f, 0);
            device.Present();
        }

    }
}

Im Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TestDirectX1
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());

            using (Form1 our_directx_form = new Form1())
            {
                Application.Run(our_directx_form);
                our_directx_form.InitializeDevice();
            }
        }
    }
}

Die Applikation startet, aber die Software geht in eine Dauerschleife.
Wo ist der Fehler?


mycsharp.de  Moderationshinweis von gfoidl (31.05.2019 14:07):

Bitte Code-Tags verwenden.
 
Neuer Beitrag 31.05.2019 03:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.334
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Die Zeile

C#-Code:
our_dx_form.InitializeDevice();

muß (selbstverständlich) vor

C#-Code:
Application.Run(our_directx_form);

Steht ja auch so im Code unten auf der Tutorial-Seite ;-)

Besser wäre es aber wohl, wenn InitializeDevice() direkt im Konstruktor der Form aufgerufen würde.

PS: Und editiere deinen Beitrag und packe den Code in C#-Tags.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Th69 am 31.05.2019 13:56.

Neuer Beitrag 31.05.2019 09:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
DSS
myCSharp.de-Mitglied

Dabei seit: 11.07.2012
Beiträge: 8

Themenstarter Thema begonnen von DSS

DSS ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Sobald ich die Zeilen our_dx_form.InitializeDevice(); und Application.Run(our_directx_form); vertausche, dann zeigt es mir keine Form mehr an.

Muss mich zuerst mal an dieses Forum gewöhnen :-)
Neuer Beitrag 31.05.2019 13:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
DSS
myCSharp.de-Mitglied

Dabei seit: 11.07.2012
Beiträge: 8

Themenstarter Thema begonnen von DSS

DSS ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nachdem ich mal das .NET-Framework 2.0 benutzte, scheint die Sache auf einmal zu funktionieren.
Neuer Beitrag 05.06.2019 06:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.951
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

D.h. Du hast vorher noch 1.1 verwendet, oder 3.x oder...?
Neuer Beitrag 05.06.2019 09:42 Beiträge des Benutzers | zu Buddylist hinzufügen
DSS
myCSharp.de-Mitglied

Dabei seit: 11.07.2012
Beiträge: 8

Themenstarter Thema begonnen von DSS

DSS ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

4.7.2 wird normalerweise verwendet.
Neuer Beitrag 09.06.2019 01:21 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 3 Monate.
Der letzte Beitrag ist älter als 3 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.09.2019 03:04