[C#] Anfängerfrage: DirectX in WindowsForm nutzen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Raven280438
Establishment
Beiträge: 140
Registriert: 03.10.2010, 20:14

[C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von Raven280438 »

Hi,

ich bin Anfänger in der C# Programmierung.
Als Lern-Projekt bin ich im Moment dabei, einen Map-Editor für ein 2D RPG, was ich später schreiben will, zu programmieren.

Meine Frage: Ist es möglich, DirectX nur für einen bestimmtes Element in einem WindowsForm zu nutzen? Bei den Tutorials die ich bisher gefunden habe, wird das komplette Form mit DirectX erstellt (per Fullscreen). Ich würde aber gerne z.b. Scrollbars für das Element (z.B. eine PictureBox) benutzen.

Ist das möglich?


Gruß
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von Despotist »

Ob es so möglich ist weiß ich nicht. Bei C++ geht es (Zerbi hatte da glaub ich ein Tut dazu oder wars im Buch? Da wurde ein Raumschiff in ein Windows Fenster gerendert).

Meine Frage ist warum du nicht XNA nutzt wenn du schon C# verwendest? Ist ein Wrapper um DX der vieles einfacher macht. Gerade für Anfänger (wie mich) finde ich es sehr geeignet da man sich nicht um den Urschleim kümmern muss.

Edit: Also mit XNA scheints zu gehen: http://www.google.de/#hl=de&source=hp&q ... 33a925b4f9
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von dowhilefor »

DirectX braucht für gewöhnlich nur ein HWND. Egal ob Fenster, Button, Label oder sonstwas ... jedes Control unter Windows hat so ein Handle. Im normalfall kommst du in WinForms über die Property "Handle" daran was vom Typ IntPtr sein sollte.
Kleine Warnung allerdings, wenn du DirectX mit C# benutzt rate ich dir von Managed DirectX ab. Microsoft unterstützt das schon länger nicht mehr. Wenn du ein 1zu1 DX haben möchtest, nimm SlimDX, wenn du gerne etwas mehr Hilfe haben möchtest schau dir mal XNA an. Beides sehr gute Bibliotheken.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
sherminator
Beiträge: 1
Registriert: 25.06.2010, 14:11

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von sherminator »

Hallo,
selbstverständlich ist es möglich eine DX View in einem Windows Form zu verwenden, alles was du dazu benötigst ist das MDX (Managed Direct X SDK).
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von dowhilefor »

alles was du dazu benötigst ist das MDX (Managed Direct X SDK)
Wie schon gesagt, MDX wird nicht weiterentwickelt. Alternativen sind XNA oder SlimDX.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Jiba
Beiträge: 31
Registriert: 16.01.2010, 17:42

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Beitrag von Jiba »

Wenn du Managed Direct3D verwendest dann übergiebst du statt dem Form einfach ein anderes Steuerelement, denn new Device(...) erwartet ein Control Objekt und alle Steuerelemente sind von Control abgeleitet.

Wenn du NICHT Managed benutzt übergiebst du die Eigenschaft Handle des Controls.

Falls du mehr als in ein Control Rendern willst must du ein SwapChain erzeugen.

C#:
SwapChain sc = new SwapChain(device, presentParams);

C++:
HRESULT IDirect3DDevice9::CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain );

Ich hoffe ich konnte dir helfen.
Antworten