Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Ich versuche gerade in C# mit dem DirectX Wrapper SlimDX (http://slimdx.org/) in ein ToolstripContainer bzw. genauer in das "innere" Element des Containers zu zeichnen. Das Resultat ist sehr dürftig, alles was ich mache ist bei OnPaint Device.Clear aufzurufen mit dem Ziel zum Testen den Container Rot zu färben (bzw. dessen Fläche). Stattdessen zeichnet mir SlimDX ein (nicht gefülltes) Rechteck..
Der Code ist sehr minimal gehalten. Im Designer habe ich einfach ein ToolstripContainer hinzugefügt (das wars schon).
Initialisierung des Device:
C#-Quelltext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
privatevoid InitializeDirect3D()
{
var Window = m_MainContainer.ContentPanel;
// Create a new PresentParameters object and fill in the necessary fields.
PresentParameters presentParams =new PresentParameters();
// Below are the required bare mininum, needed to initialize the D3D device.
presentParams.BackBufferHeight = Window.ClientRectangle.Height; // BackBufferHeight, set to the Window's height.
presentParams.BackBufferWidth = Window.ClientRectangle.Width; // BackBufferWidth, set to the Window's width.
presentParams.DeviceWindowHandle = Window.Handle; // DeviceWindowHandle, set to the Window's handle.// Create the device.
m_Device =new Device(new Direct3D(), 0, DeviceType.Hardware, Window.Handle, CreateFlags.HardwareVertexProcessing, presentParams);
}
Hab versucht auch in andere Element bzw direkt in die Form zu rendern, hat aber auch nicht geklappt. (Selbe Resultat). Auf der SlimDX Seite habe ich nur ein Tutorial gefunden, das1) nur für DX11 ist und 2) benutzen die immer ihre eigene Renderform.. sollte aber auch so gehen.
hmm. Ich kenn mich mit C#/.NET kaum aus.
Was kann den die Ursache für diese Rechteck sein? Ist das irgendwie ne Art Fehler-Output von .NET? kann mir das nur schwer vorstellen. Wenn ich aber in SlimDX die Farbe ändere hat das keine Auswirkungen..
Der Code ist nunmal auch total minimal. ich hab quasi ne neue WinForms Application erstellt und SlimDX eingebunden + ein Device erstellt und die OnPaint Methode des Fensters geändert, das wars.
... Ohh man super behinderter Fehler hab vergessen meine tolle Initialze-Methode aufzurufen.. warum passiert mir sowas . Wenigstens wieder was gelernt (was das komische Rechteck bedeutet )