Skip to content

Commit

Permalink
netstandard2.1 & netstandard2.0 update
Browse files Browse the repository at this point in the history
 - removed stringbuilder support for netstandard2.0
 - added readonlyspan support for netstandard2.1
  • Loading branch information
baetz-daniel committed Nov 23, 2020
1 parent 9fcd80c commit 6e6c787
Show file tree
Hide file tree
Showing 19 changed files with 1,149 additions and 1,523 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net48</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Platforms>AnyCPU;x64;x86</Platforms>
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable>
Expand Down
98 changes: 49 additions & 49 deletions examples/Exomia.Framework.Example.Canvas/MyGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using Exomia.Framework.Game;
using Exomia.Framework.Graphics;
using Exomia.Framework.Mathematics;
using Exomia.Framework.Resources;
using SharpDX;

namespace Exomia.Framework.Example.Canvas
Expand All @@ -34,6 +35,28 @@ sealed class MyGame : Game.Game

private float k;

private readonly Vector2[] polyA =
{
new Vector2(550, 250), new Vector2(550, 120), new Vector2(650, 320), new Vector2(520, 250)
};

private readonly Vector2[] polyB =
{
new Vector2(450, 400), new Vector2(700, 420), new Vector2(700, 450), new Vector2(600, 480),
new Vector2(600, 600)
};

private readonly Vector2[] polyC =
{
new Vector2(400, 600), new Vector2(550, 620), new Vector2(650, 820), new Vector2(520, 750)
};

private readonly Vector2[] polyD =
{
new Vector2(600, 600), new Vector2(650, 610), new Vector2(650, 720), new Vector2(450, 750),
new Vector2(400, 630)
};

/// <summary>
/// Initializes a new instance of the <see cref="MyGame" /> class.
/// </summary>
Expand Down Expand Up @@ -88,8 +111,8 @@ protected override void OnLoadContent()
_texture = Content.Load<Texture>("logo1.jpg");
_texture2 = Content.Load<Texture>("logo2.png");

_spriteFont1_12Px = Content.Load<SpriteFont>(Resources.Fonts.ARIAL_12_PX, true);
_spriteFont1_24Px = Content.Load<SpriteFont>(Resources.Fonts.ARIAL_24_PX, true);
_spriteFont1_12Px = Content.Load<SpriteFont>(Fonts.ARIAL_12_PX, true);
_spriteFont1_24Px = Content.Load<SpriteFont>(Fonts.ARIAL_24_PX, true);
}

/// <inheritdoc />
Expand Down Expand Up @@ -122,65 +145,42 @@ protected override void Draw(GameTime gameTime)

k += gameTime.DeltaTimeS / 2;

_canvas.DrawFillTriangle(new Triangle2(100, 50, 150, 100, 50, 100), Color.Red, 0, Vector2.Zero, 1.0f);
_canvas.DrawTriangle(new Triangle2(100, 50, 150, 100, 50, 100), Color.Green, 5.0f, 0, Vector2.Zero, 1.0f);
_canvas.DrawFillTriangle(new Triangle2(100, 250, 150, 300, 50, 300), Color.Red, 0, Vector2.Zero, 1.0f);
_canvas.DrawTriangle(new Triangle2(100, 250, 150, 300, 50, 300), Color.Green, 5.0f, 0, Vector2.Zero, 1.0f);

_canvas.DrawFillTriangle(
new Triangle2(100, 50, 150, 100, 50, 100), Color.Yellow, k, new Vector2(100, 50), 1.0f);
new Triangle2(100, 250, 150, 300, 50, 300), Color.Yellow, k, new Vector2(100, 250), 1.0f);
_canvas.DrawTriangle(
new Triangle2(100, 50, 150, 100, 50, 100), Color.Green, 5.0f, k, new Vector2(100, 50), 1.0f);
new Triangle2(100, 250, 150, 300, 50, 300), Color.Green, 5.0f, k, new Vector2(100, 250), 1.0f);

_canvas.DrawFillRectangle(new RectangleF(200, 200, 100, 50), Color.Red, 0, Vector2.Zero, 1.0f);
_canvas.DrawRectangle(new RectangleF(200, 200, 100, 50), Color.Green, 5.0f, 0, Vector2.Zero, 1.0f);

_canvas.DrawFillRectangle(new RectangleF(200, 200, 100, 50), Color.Yellow, k, new Vector2(200, 200), 1.0f);
_canvas.DrawRectangle(new RectangleF(200, 200, 100, 50), Color.Green, 5.0f, k, new Vector2(200, 200), 1.0f);

_canvas.DrawLine(new Line2(300, 400, 345, 400), Color.Red, 5.0f, 1.0f);
_canvas.DrawLine(new Line2(400, 400, 450, 450), Color.Red, 5.0f, 1.0f);

_canvas.DrawLine(new Line2(300, 450, 345, 450), Color.Yellow, 5.0f, 1.0f);
_canvas.DrawLine(new Line2(400, 450, 450, 400), Color.Yellow, 5.0f, 1.0f);

_canvas.DrawFillPolygon(
new[] { new Vector2(550, 250), new Vector2(550, 120), new Vector2(650, 320), new Vector2(520, 250) },
Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawPolygon(
new[] { new Vector2(550, 250), new Vector2(550, 120), new Vector2(650, 320), new Vector2(520, 250) },
Color.Green, 5.0f, 0.0f, Vector2.Zero, 1.0f);

_canvas.DrawFillPolygon(
new[] { new Vector2(450, 400), new Vector2(700, 420), new Vector2(700, 450), new Vector2(600, 480), new Vector2(600, 600) },
Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawPolygon(
new[] { new Vector2(450, 400), new Vector2(700, 420), new Vector2(700, 450), new Vector2(600, 480), new Vector2(600, 600) },
Color.Green, 5.0f, 0.0f, Vector2.Zero, 1.0f);

_canvas.DrawFillPolygon(
new[] { new Vector2(400, 600), new Vector2(550, 620), new Vector2(650, 820), new Vector2(520, 750) },
Color.Yellow, k, new Vector2(400, 600), 1.0f);
_canvas.DrawPolygon(
new[] { new Vector2(400, 600), new Vector2(550, 620), new Vector2(650, 820), new Vector2(520, 750) },
Color.Green, 5.0f, k, new Vector2(400, 600), 1.0f);

_canvas.DrawFillPolygon(
new[]
{
new Vector2(600, 600), new Vector2(650, 610), new Vector2(650, 720), new Vector2(450, 750),
new Vector2(400, 630)
}, Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawLine(new Line2(300, 400, 345, 400), Color.Red, 5.0f, 1.0f, 0, Vector2.Zero);
_canvas.DrawLine(new Line2(400, 400, 450, 450), Color.Red, 5.0f, 1.0f, k, new Vector2(425, 425));

_canvas.DrawPolygon(
new[]
{
new Vector2(600, 600), new Vector2(650, 610), new Vector2(650, 720), new Vector2(450, 750),
new Vector2(400, 630)
}, Color.Yellow, 5.0f, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawLine(new Line2(300, 450, 345, 450), Color.Yellow, 5.0f, 1.0f, 0, Vector2.Zero);
_canvas.DrawLine(new Line2(400, 450, 450, 400), Color.Yellow, 5.0f, 1.0f, k, new Vector2(425, 425));

_canvas.DrawFillPolygon(polyA, Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawPolygon(polyA, Color.Green, 5.0f, 0.0f, Vector2.Zero, 1.0f);

_canvas.DrawFillPolygon(polyB, Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawPolygon(polyB, Color.Green, 5.0f, 0.0f, Vector2.Zero, 1.0f);

_canvas.DrawFillPolygon(polyC, Color.Yellow, k, new Vector2(400, 600), 1.0f);
_canvas.DrawPolygon(polyC, Color.Green, 5.0f, k, new Vector2(400, 600), 1.0f);

_canvas.DrawFillPolygon(polyD, Color.Red, 0.0f, Vector2.Zero, 1.0f);
_canvas.DrawPolygon(polyD, Color.Yellow, 5.0f, 0.0f, Vector2.Zero, 1.0f);

Vector2 center = new Vector2(800, 400);

_canvas.DrawRectangle(
new RectangleF(center.X - 100, center.Y - 100, 200, 200), Color.Green, 2, 0, Vector2.Zero, 1.0f);
new RectangleF(center.X - 100, center.Y - 100, 200, 200), Color.Green, 2, 0, Vector2.Zero, 1.0f);
_canvas.DrawFillArc(new Arc2(center, 100f), Color.Black, 0, center, 1.0f);

float l = 20;
Expand Down Expand Up @@ -269,9 +269,9 @@ protected override void Draw(GameTime gameTime)

_canvas.Draw(_texture, new RectangleF(1100, 50, 200, 200), Color.White);
_canvas.Draw(_texture2, new RectangleF(1350, 50, 200, 200), Color.White);
_canvas.DrawText(_spriteFont1_12Px, "This is the canvas example.", new Vector2(450, 50), Color.Black);
_canvas.DrawText(_spriteFont1_24Px, "This is the canvas example.", new Vector2(450, 65), Color.Black);

_canvas.DrawText(_spriteFont1_12Px, "This is the canvas example.", new Vector2(450, 50), Color.Black, 0);
_canvas.DrawText(_spriteFont1_24Px, "This is the canvas example.", new Vector2(450, 65), Color.Black, k, new Vector2(450, 65), 1.0f, TextureEffects.None);

_canvas.End();

Expand Down
24 changes: 12 additions & 12 deletions src/Exomia.Framework/Exomia.Framework.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -161,19 +161,19 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="SharpDX" Version="4.2.0" />
<PackageReference Include="SharpDX.D3DCompiler" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct2D1" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D10" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D12" Version="4.2.0" />
<PackageReference Include="SharpDX.Direct3D9" Version="4.2.0" />
<PackageReference Include="SharpDX.DXGI" Version="4.2.0" />
<PackageReference Include="SharpDX.Mathematics" Version="4.2.0" />
<PackageReference Include="SharpDX.MediaFoundation" Version="4.2.0" />
<PackageReference Include="SharpDX.XAudio2" Version="4.2.0" />
<PackageReference Include="SharpDX" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.D3DCompiler" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Direct2D1" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Direct3D10" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Direct3D12" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Direct3D9" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.DXGI" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.Mathematics" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.MediaFoundation" Version="4.2.0" IncludeAssets="all" />
<PackageReference Include="SharpDX.XAudio2" Version="4.2.0" IncludeAssets="all" />
</ItemGroup>

<ItemGroup>
<Compile Update="Game\RenderForm.cs"></Compile>
<Compile Update="Game\RenderForm.*.cs">
Expand Down
94 changes: 42 additions & 52 deletions src/Exomia.Framework/Graphics/Canvas.Arc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,11 @@ public void DrawArc(in Arc2 arc,
// ReSharper disable once CompareOfFloatsByEqualityOperator
if (arc.Start == arc.End) { return; }

Color scaledColor = color * opacity;
Vector4 scaledColor;
scaledColor.X = color.R * opacity;
scaledColor.Y = color.G * opacity;
scaledColor.Z = color.B * opacity;
scaledColor.W = color.A * opacity;

float r = arc.Radius;
float rh = (arc.Radius - lineWidth) * 0.685f;
Expand Down Expand Up @@ -197,7 +201,11 @@ public void DrawFillArc(in Arc2 arc,
// ReSharper disable once CompareOfFloatsByEqualityOperator
if (arc.Start == arc.End) { return; }

Color scaledColor = color * opacity;
Vector4 scaledColor;
scaledColor.X = color.R * opacity;
scaledColor.Y = color.G * opacity;
scaledColor.Z = color.B * opacity;
scaledColor.W = color.A * opacity;

float u = arc.Start;
float v = arc.End;
Expand Down Expand Up @@ -270,33 +278,27 @@ public void DrawFillArc(in Arc2 arc,

Vector2 corner = s_arcCornerOffsets[i];

vertex->X = x + (corner.X * arc.Radius);
vertex->Y = y + (corner.Y * arc.Radius);
vertex->Z = x;
vertex->W = y;

vertex->R = scaledColor.R;
vertex->G = scaledColor.G;
vertex->B = scaledColor.B;
vertex->A = scaledColor.A;

vertex->U = u;
vertex->V = v;

vertex->M = m;
vertex->O = arc.Radius;
vertex->X = x + (corner.X * arc.Radius);
vertex->Y = y + (corner.Y * arc.Radius);
vertex->Z = x;
vertex->W = y;
vertex->RGBA = scaledColor;
vertex->U = u;
vertex->V = v;
vertex->M = m;
vertex->O = arc.Radius;
}
}

private static void DrawArcRect(Item* ptr,
in Line2 lineA,
in Line2 lineB,
in Color c,
float z,
float w,
float u,
float v,
float o)
private static void DrawArcRect(Item* ptr,
in Line2 lineA,
in Line2 lineB,
in Vector4 c,
float z,
float w,
float u,
float v,
float o)
{
// ReSharper disable CompareOfFloatsByEqualityOperator
float m = u == 0.0f && v == MathUtil.TwoPi ? BORDER_CIRCLE_MODE : BORDER_CIRCLE_ARC_MODE;
Expand All @@ -312,19 +314,13 @@ private static void DrawArcRect(Item* ptr,
vertex->XY = *(lf + i);
}

vertex->Z = z;
vertex->W = w;

vertex->R = c.R;
vertex->G = c.G;
vertex->B = c.B;
vertex->A = c.A;

vertex->U = u;
vertex->V = v;

vertex->M = m;
vertex->O = o;
vertex->Z = z;
vertex->W = w;
vertex->RGBA = c;
vertex->U = u;
vertex->V = v;
vertex->M = m;
vertex->O = o;
}

for (int i = 1; i >= 0; i--)
Expand All @@ -336,19 +332,13 @@ private static void DrawArcRect(Item* ptr,
vertex->XY = *(lf + i);
}

vertex->Z = z;
vertex->W = w;

vertex->R = c.R;
vertex->G = c.G;
vertex->B = c.B;
vertex->A = c.A;

vertex->U = u;
vertex->V = v;

vertex->M = m;
vertex->O = o;
vertex->Z = z;
vertex->W = w;
vertex->RGBA = c;
vertex->U = u;
vertex->V = v;
vertex->M = m;
vertex->O = o;
}
}
}
Expand Down
Loading

0 comments on commit 6e6c787

Please sign in to comment.