【问题标题】:SlimDX Direct3D11 Device CreationSlimDX Direct3D11 设备创建
【发布时间】:2015-01-13 13:43:59
【问题描述】:

我的应用程序有问题(WinForms [我希望这不是问题,因为下面的链接参考 WPF]), 我所有的问题都和这里描述的一样:

Fast Video Display WPF

为了显示很多视频流,我以前使用图片框,但发现绘图很慢,fps变低。

我听取了这个人的建议,使用 Direct3D11,但是 我在构造函数中遇到了问题:

Texture2D tex = new Texture2D(Device, texDesc);

如何发送设备?设备是一种类型而不是对象, 它向我弹出一个错误,我正在使用 SlimDX ofc,Direct3D11 真的想弄清楚怎么做,或者创建我自己的设备? 如果还有其他方法可以优化 FPS 和绘图 或者任何人已经创建了一个可以处理这个的控件,我会感谢它, 另外,可以通过邮件联系我:dorbenshimon1{at}gmail{dot}com 非常感谢

【问题讨论】:

    标签: c# winforms video-streaming directx-11 slimdx


    【解决方案1】:

    您已经回答了自己的问题 - 您需要传递您创建的 Device 实例,而不是类型。

    查看设置视口的示例,了解这是如何完成的。


    根据 cmets,如果您只想进行快速图像粘贴,DirectX 几乎肯定不是正确的工具。尝试类似的方法:

    using System.Windows.Forms;
    
    public class FastImageRedraw : Panel
    {
        private Image image;
    
        public FastImageRedraw()
        {
            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            this.UpdateStyles();
        }
    
        public Image Image
        {
            get { return this.image; }
            set 
            {
                this.image = value;
                this.Invalidate();
            }
        }
    
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawImage(this.Image, e.ClipRectangle);
        }
    }
    

    这是非常基本的,但它使用 GDI+ 仅在您更改图像时处理重绘图像。

    使用var fastImage = new FastImageRedraw();创建它的一个标准实例

    然后用fastImage.Image = myImage;更改图像时更新图像

    【讨论】:

    • 是的,我很难过,问题是我试图用 Direct3D11 创建一个 Deivce 的实例,但不知道该怎么做,你能指导我吗/我在哪里可以找到这些例子?
    • 好吧,我不是那么专业,或者对 DirectX 有很大的了解(我想我应该在一开始就提到这一点)也许已经有一个 Control 我可以使用 SlimDX 来使用它,并且他很适合绘制一个图片?
    • SlimDX 和 DX 开发一般都很复杂,几乎可以肯定不需要简单地粘贴一些图像。 |您可能想研究 GDI,我将更新我的答案以包含一些基本信息。
    • 谢谢,但我想以 25 FPS 的速度显示来自 IP 摄像头的 10 个视频。此代码可以使用吗?
    • 试试看,你很快就会得到答案。当然,这完全取决于运行它的 PC,但我不会认为这在配备专用显卡的普通 PC 上会成为问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多