Bläddra i källkod

SharpDX update to current version

Benedikt Schroeder 7 år sedan
förälder
incheckning
2a64f133d5

+ 5 - 5
build/SharpDX.props

@@ -1,9 +1,9 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <PackageReference Include="SharpDX" Version="4.0.1" />
-    <PackageReference Include="SharpDX.Direct2D1" Version="4.0.1" />
-    <PackageReference Include="SharpDX.Direct3D11" Version="4.0.1" />
-    <PackageReference Include="SharpDX.DXGI" Version="4.0.1" />
-    <PackageReference Include="SharpDX.Direct3D9" Version="4.0.1" Condition="'$(UseDirect3D9)' == 'true'" />
+    <PackageReference Include="SharpDX" Version="4.2.0" />
+    <PackageReference Include="SharpDX.Direct2D1" Version="4.2.0" />
+    <PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" />
+    <PackageReference Include="SharpDX.DXGI" Version="4.2.0" />
+    <PackageReference Include="SharpDX.Direct3D9" Version="4.2.0" Condition="'$(UseDirect3D9)' == 'true'" />
   </ItemGroup>
 </Project>

+ 1 - 1
samples/interop/Direct3DInteropSample/MainWindow.cs

@@ -132,7 +132,7 @@ namespace Direct3DInteropSample
                 signature,
                 inputElements);
 
-            // Instantiate Vertex buiffer from vertex data
+            // Instantiate Vertex buffer from vertex data
             var vertices = Buffer.Create(
                 device,
                 BindFlags.VertexBuffer,

+ 4 - 36
src/Windows/Avalonia.Direct2D1/Media/AvaloniaTextRenderer.cs

@@ -1,7 +1,6 @@
 // Copyright (c) The Avalonia Project. All rights reserved.
 // Licensed under the MIT license. See licence.md file in the project root for full license information.
 
-using System;
 using SharpDX;
 using SharpDX.Direct2D1;
 using SharpDX.DirectWrite;
@@ -9,7 +8,7 @@ using SharpDX.Mathematics.Interop;
 
 namespace Avalonia.Direct2D1.Media
 {
-    internal class AvaloniaTextRenderer : TextRenderer
+    internal class AvaloniaTextRenderer : TextRendererBase
     {
         private readonly DrawingContextImpl _context;
 
@@ -27,18 +26,7 @@ namespace Avalonia.Direct2D1.Media
             _foreground = foreground;
         }
 
-        public IDisposable Shadow
-        {
-            get;
-            set;
-        }
-
-        public void Dispose()
-        {
-            Shadow?.Dispose();
-        }
-
-        public Result DrawGlyphRun(
+        public override Result DrawGlyphRun(
             object clientDrawingContext,
             float baselineOriginX,
             float baselineOriginY,
@@ -68,34 +56,14 @@ namespace Avalonia.Direct2D1.Media
             return Result.Ok;
         }
 
-        public Result DrawInlineObject(object clientDrawingContext, float originX, float originY, InlineObject inlineObject, bool isSideways, bool isRightToLeft, ComObject clientDrawingEffect)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Result DrawStrikethrough(object clientDrawingContext, float baselineOriginX, float baselineOriginY, ref Strikethrough strikethrough, ComObject clientDrawingEffect)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Result DrawUnderline(object clientDrawingContext, float baselineOriginX, float baselineOriginY, ref Underline underline, ComObject clientDrawingEffect)
-        {
-            throw new NotImplementedException();
-        }
-
-        public RawMatrix3x2 GetCurrentTransform(object clientDrawingContext)
+        public override RawMatrix3x2 GetCurrentTransform(object clientDrawingContext)
         {
             return _renderTarget.Transform;
         }
 
-        public float GetPixelsPerDip(object clientDrawingContext)
+        public override float GetPixelsPerDip(object clientDrawingContext)
         {
             return _renderTarget.DotsPerInch.Width / 96;
         }
-
-        public bool IsPixelSnappingDisabled(object clientDrawingContext)
-        {
-            return false;
-        }
     }
 }

+ 14 - 1
src/Windows/Avalonia.Direct2D1/Media/FormattedTextImpl.cs

@@ -9,6 +9,8 @@ using DWrite = SharpDX.DirectWrite;
 
 namespace Avalonia.Direct2D1.Media
 {
+    using System;
+
     public class FormattedTextImpl : IFormattedTextImpl
     {
         public FormattedTextImpl(
@@ -107,7 +109,18 @@ namespace Avalonia.Direct2D1.Media
 
         private Size Measure()
         {
-            var metrics = TextLayout.Metrics;
+            DWrite.TextMetrics metrics;
+
+            // SharpDX bug
+            try
+            {
+                metrics = TextLayout.Metrics;
+            }
+            catch (ObjectDisposedException)
+            {
+                metrics = TextLayout.Metrics;
+            }
+
             var width = metrics.WidthIncludingTrailingWhitespace;
 
             if (float.IsNaN(width))