Browse Source

SharpDX update to current version

pull/1861/head^2
Benedikt Schroeder 8 years ago
parent
commit
2a64f133d5
  1. 10
      build/SharpDX.props
  2. 2
      samples/interop/Direct3DInteropSample/MainWindow.cs
  3. 40
      src/Windows/Avalonia.Direct2D1/Media/AvaloniaTextRenderer.cs
  4. 15
      src/Windows/Avalonia.Direct2D1/Media/FormattedTextImpl.cs

10
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>

2
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,

40
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;
}
}
}

15
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))

Loading…
Cancel
Save