C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口
首先創建一個控制台程序,選擇 dotnet framework 為 4.5 這樣就可以保證下面安裝的庫可以使用
下載
最好是使用 VisualStudio 2017項目格式,這樣就可以直接複製下面代碼放在自己的項目文件,就可以快速使用 Nuget 安裝而不是需要等待 VisualStudio 的安裝
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net45</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SharpDX" Version="4.1.0" />
<PackageReference Include="SharpDX.D3DCompiler" Version="4.1.0" />
<PackageReference Include="SharpDX.Desktop" Version="3.1.1" />
<PackageReference Include="SharpDX.Direct2D1" Version="4.1.0" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.1.0" />
<PackageReference Include="SharpDX.DXGI" Version="4.1.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
</Project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果使用的不是 VisualStudio 2017 的就通過 Nuget 安裝下面幾個庫
- SharpDX
- SharpDX.D3DCompiler
- SharpDX.Desktop
- SharpDX.Direct2D1
- SharpDX.Direct3D11
- SharpDX.DXGI
創建窗口
首先創建一個簡單的類,這個類主要使用 RenderForm 來創建窗口
class KikuSimairme
{
private RenderForm _renderForm;
private const int Width = 1280;
private const int Height = 720;
}
1
2
3
4
5
6
7
8
9
這個類的主要就是 RenderForm ,在使用的時候需要引用
using SharpDX.Windows;
1
2
現在還沒有創建好窗口,需要在構造函數使用這個代碼
public KikuSimairme()
{
_renderForm = new RenderForm();
_renderForm.ClientSize = new Size(Width, Height);
}
1
2
3
4
5
如果是在 WPF 創建一個窗口,除了創建還需要顯示,下面來告訴大家如何顯示窗口
在KikuSimairme添加兩個方法
public void Run()
{
RenderLoop.Run(_renderForm, RenderCallback);
}
private void RenderCallback()
{
}
1
2
3
4
5
6
7
8
9
這樣就可以在調用 Run 顯示窗口,因為創建窗口需要開啟循環,使用 RenderLoop.Run 就可以
在不使用這個窗口時需要記得去掉
class KikuSimairme : IDisposable
{
// 其他代碼
public void Dispose()
{
_renderForm?.Dispose();
}
}
1
2
3
4
5
6
7
8
在 Main 函數創建類,然後顯示窗口
static void Main(string[] args)
{
using (var temp = new KikuSimairme())
{
temp.Run();
}
}
1
2
3
4
5
6
7
現在按下運行就可以看到顯示了一個窗口
雖然裡面還沒什麼東西,但是已經可以顯示窗口,在窗口裡面也就可以進行畫東西。以前很少在一個控制台創建窗口,現在使用 sharpDx 可以很簡單在控制台創建窗口
這是KikuSimairme類的全部代碼
class KikuSimairme : IDisposable
{
/// <inheritdoc />
public KikuSimairme()
{
_renderForm = new RenderForm();
_renderForm.ClientSize = new Size(Width, Height);
}
private const int Width = 1280;
private const int Height = 720;
public void Run()
{
RenderLoop.Run(_renderForm, RenderCallback);
}
private RenderForm _renderForm;
private void RenderCallback()
{
}
/// <inheritdoc />
public void Dispose()
{
_renderForm?.Dispose();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
雖然已經創建窗口,但是現在還沒有內容,在下一篇,我將會告訴大家如何在這個窗口修改顏色。更多SharpDx博客請到SharpDX 系列
TAG:程序員小新人學習 |