Hallo liebe Community!
Wie ist es möglich, mittels SharpDX.Direct3D9 eine Textur zu zeichnen, diese auf die angegebene Größe skaliert wurde?
Beispiel: Ich habe ein 128x128 großes Bild welches ich aber nur in 64x64 Größe auf den Bildschirm zeichen möchte. Oder umgekehrt, wenn ich ein 128x128 großes Bild in der Größe 256x256 auf den Bildschirm zeichnen möchte.
Hier ist der momentane Code welcher auch funktioniert, nur die skalierung auf die angegebene Größe funktioniert nicht.
Und so lade ich Texturen
Falls ihr weitere Informationen benötigt bitte nicht zögern mir dies mitzuteilen
Wie ist es möglich, mittels SharpDX.Direct3D9 eine Textur zu zeichnen, diese auf die angegebene Größe skaliert wurde?
Beispiel: Ich habe ein 128x128 großes Bild welches ich aber nur in 64x64 Größe auf den Bildschirm zeichen möchte. Oder umgekehrt, wenn ich ein 128x128 großes Bild in der Größe 256x256 auf den Bildschirm zeichnen möchte.
Hier ist der momentane Code welcher auch funktioniert, nur die skalierung auf die angegebene Größe funktioniert nicht.
C#-Quellcode
- public static bool DrawTexture(IntPtr device, IntPtr txt, RectangleF rect, float rotation, Color tint)
- {
- try {
- Texture texture = (Texture)txt;
- Matrix m = Matrix.Identity * Matrix.Translation(-0.5f, -0.5f, 0.0f) * Matrix.Scaling(rect.Width, rect.Height, 1.0f) * Matrix.RotationZ(rotation) * Matrix.Translation(rect.X, rect.Y, 0.0f);
- using (Sprite s = new Sprite((Device)device)) {
- s.Begin();
- s.Transform = m;
- s.Draw(texture, tint.ToRawColorBGRA());
- s.End();
- }
- return true;
- }
- catch (Exception ex) {
- Main.managerInstance.console.PrintError(string.Format("[Direct3D9] An error occured while trying to draw texture. Details: {0}", ex.ToString()));
- }
- return false;
- }
Und so lade ich Texturen
Falls ihr weitere Informationen benötigt bitte nicht zögern mir dies mitzuteilen
Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button
Für VB.NET Entwickler: Option Strict On nicht vergessen!
Für VB.NET Entwickler: Option Strict On nicht vergessen!