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"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<PackageReference Include="SharpDX" Version="4.0.1" /> <PackageReference Include="SharpDX" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct2D1" Version="4.0.1" /> <PackageReference Include="SharpDX.Direct2D1" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.0.1" /> <PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" />
<PackageReference Include="SharpDX.DXGI" Version="4.0.1" /> <PackageReference Include="SharpDX.DXGI" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D9" Version="4.0.1" Condition="'$(UseDirect3D9)' == 'true'" /> <PackageReference Include="SharpDX.Direct3D9" Version="4.2.0" Condition="'$(UseDirect3D9)' == 'true'" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
samples/interop/Direct3DInteropSample/MainWindow.cs

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

40
src/Windows/Avalonia.Direct2D1/Media/AvaloniaTextRenderer.cs

@ -1,7 +1,6 @@
// Copyright (c) The Avalonia Project. All rights reserved. // 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. // Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using SharpDX; using SharpDX;
using SharpDX.Direct2D1; using SharpDX.Direct2D1;
using SharpDX.DirectWrite; using SharpDX.DirectWrite;
@ -9,7 +8,7 @@ using SharpDX.Mathematics.Interop;
namespace Avalonia.Direct2D1.Media namespace Avalonia.Direct2D1.Media
{ {
internal class AvaloniaTextRenderer : TextRenderer internal class AvaloniaTextRenderer : TextRendererBase
{ {
private readonly DrawingContextImpl _context; private readonly DrawingContextImpl _context;
@ -27,18 +26,7 @@ namespace Avalonia.Direct2D1.Media
_foreground = foreground; _foreground = foreground;
} }
public IDisposable Shadow public override Result DrawGlyphRun(
{
get;
set;
}
public void Dispose()
{
Shadow?.Dispose();
}
public Result DrawGlyphRun(
object clientDrawingContext, object clientDrawingContext,
float baselineOriginX, float baselineOriginX,
float baselineOriginY, float baselineOriginY,
@ -68,34 +56,14 @@ namespace Avalonia.Direct2D1.Media
return Result.Ok; return Result.Ok;
} }
public Result DrawInlineObject(object clientDrawingContext, float originX, float originY, InlineObject inlineObject, bool isSideways, bool isRightToLeft, ComObject clientDrawingEffect) public override RawMatrix3x2 GetCurrentTransform(object clientDrawingContext)
{
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)
{ {
return _renderTarget.Transform; return _renderTarget.Transform;
} }
public float GetPixelsPerDip(object clientDrawingContext) public override float GetPixelsPerDip(object clientDrawingContext)
{ {
return _renderTarget.DotsPerInch.Width / 96; 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 namespace Avalonia.Direct2D1.Media
{ {
using System;
public class FormattedTextImpl : IFormattedTextImpl public class FormattedTextImpl : IFormattedTextImpl
{ {
public FormattedTextImpl( public FormattedTextImpl(
@ -107,7 +109,18 @@ namespace Avalonia.Direct2D1.Media
private Size Measure() 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; var width = metrics.WidthIncludingTrailingWhitespace;
if (float.IsNaN(width)) if (float.IsNaN(width))

Loading…
Cancel
Save