【发布时间】:2017-10-06 18:45:28
【问题描述】:
这是我的第一个应用程序,所以我很抱歉描述有点混乱。
我想全屏显示“hello world”——我下载了 SharpDX 示例,那里有“hello world”示例。我将渲染表单的创建更改为:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};
然后使用_form.Width/_form.Height作为大小值设置WindowRenderTarget的属性和绘制文本时的矩形大小。
有效,大小正确,文字不模糊(即不被拉伸,这是使用不同大小的效果)。
这种方法使用 WindowRenderTarget,我注意到在 SharpDX 示例中也有使用 RenderTarget 的类 (Direct2D1DemoApp),所以我切换“hello world”来使用它。
我做了同样的更改,并将SwapChainDescription.IsWindowed 设置为false。但是这次它效果不佳——我得到了全屏显示,但看起来我有一些虚拟工作区,比显示器分辨率大 4 倍左右,而显示器只是在左上角偷看工作区。我只能看到文本的一部分,而且它被拉伸了。
所以有些地方打开了缩放,或者有些尺寸与我设置的不同。但是我没有看到有这种偏差的地方。
所以我的问题是——当使用RenderTarget 时,还需要什么才能获得全屏? SharpDX的原始代码:
基类 -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/DemoApp.cs(这两种方法都一样)
带有交换链的层 -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct3D11DemoApp.cs
和类使用
RenderTarget-- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct2D1DemoApp.cs
【问题讨论】:
标签: c# directx-11 sharpdx