【问题标题】:DirectX 11/12 without UWP possible?没有 UWP 的 DirectX 11/12 可能吗?
【发布时间】:2017-02-06 03:19:56
【问题描述】:

自从 DX9 时代以来,我就没有看过 DirectX。是否可以制作 DX11/12 应用程序而不必同时制作 UWP 应用程序?

我有点担心 UWP 的开销——为了好玩,我创建了一个空应用程序,我注意到它使用 ~30MB 来绘制一个空白窗口。

【问题讨论】:

    标签: directx directx-11 directx-12


    【解决方案1】:

    我猜“WUP”是指通用 Windows 平台 (UWP)。 Windows 7、Windows Vista SP2、Windows 8.x 和 Windows 10 上的 Win32 经典桌面应用程序支持 Direct3D 11。Windows 10 上的 Win32 经典桌面应用程序支持 Direct3D 12。UWP 和 Xbox One 也支持这两者。

    要了解 DirectX 的现代故事,您应该查看:MSDNWhere is the DirectX SDK (2015 Edition)?Getting Started with Direct3D 11,以及 DirectX Tool Kit tutorials 教程

    UWP 有三种基本应用模型:XAML、XAML+DirectX 和 DirectX(即无 XAML)。只有交换链和设备的 Direct3D 11 基本 DirectX 应用程序在发布模式下作为 x86 应用程序具有大约 100 KB 的 EXE。 DirectX+XAML“空”应用大约 347 KB。

    更新:作为 x86 发布模式的 Direct3D 11 的基本 DirectX 应用程序在全屏模式下的 RAM 占用量约为 6.1 MB。 x86 发布模式下的 DirectX+XAML“空”应用程序为 11.2 MB。这非常好,因为 1920 x 1080 BGRA32 渲染目标纹理是 8 MB 的 VRAM。

    【讨论】:

    • 哎呀!打错了两次!是的,我的意思是通用平台。 30MB 是我在 Visual Studio 2015 中创建的程序的内存占用,它只有一个空白窗口,在发布模式下运行。
    • 即使应用程序是 30MB 空的,为什么还要担心呢?它不像现在用 GB 的 RAM 运行的计算机。与服务开销相比,您更有可能在用户代码中浪费内存。此外,您对测试没有说太多,是调试、发布、静态或动态链接、32 位还是 64 位等! UWP 运行时不是针对空应用程序进行优化的,它是为了做一个真正的应用程序,其中 30MB 什么都不是,并且还可以在所有活着的 UWP 应用程序之间共享。
    • 并非所有机器都运行大量 RAM。你不知道我的用例。别再居高临下了。
    • UWP 旨在为从 64 GB+ 工作站到物联网设备的各种设备提供相同的编程界面。就内存占用而言,它在发布模式下非常有效。唯一容易变得“臃肿”的是构建中介,如.obj 文件和.pch 文件,因此构建应用程序需要相当多的磁盘空间。与 Win32 经典桌面应用程序中的同等功能相比,结果本身并不是特别重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多