D3DPRESENTFLAG

D3DPRESENT_PARAMETERS使用的常量。

#define 价值 描述
D3DPRESENTFLAG_DEVICECLIP 0x00000004 在创建 Direct3D 设备的视频适配器的监视器屏幕区域中,将窗口化 呈现 剪辑到窗口工作区中。 D3DPRESENTFLAG_DEVICECLIP对D3DSWAPEFFECT_FLIPEX无效。
D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 创建设备或交换链以启用 z 缓冲区丢弃时设置此标志。 如果设置了此标志,则调用具有不同深度图面的 setDepthStencilSurfacePresent后,深度模具缓冲区的内容将无效。 放弃 z 缓冲区数据可以提高性能,并且依赖于驱动程序。 调试运行时将通过调用 PresentSetDepthStencilSurface 使用不同的深度图面清除 z 缓冲区来强制放弃。
对于所有可锁定格式、D3DFMT_D16_LOCKABLE和D3DFMT_D32F_LOCKABLE,放弃 z 缓冲区数据是非法的。 CreateDevice 指定可锁定格式和 z 缓冲区放弃的任何使用都将失败。 有关格式的详细信息,请参阅 D3DFORMAT
D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 如果应用程序需要直接锁定后台缓冲区,请设置此标志。 请注意,除非应用程序在 调用 createDeviceReset时指定D3DPRESENTFLAG_LOCKABLE_BACKBUFFER,否则后台缓冲区不可锁定。 可锁定的后台缓冲区在某些图形硬件配置上会产生性能成本。 在可锁定的后退缓冲区上执行锁定作(或使用 UpdateSurface 写入)可降低许多卡的性能。 在这种情况下,请考虑使用纹理三角形将数据移动到后台缓冲区。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
在 Direct3D9Ex 中,如果D3DSWAPEFFECT D3DSWAPEFFECT_FLIPEX,则无法设置此标志,因为翻转模型使桌面窗口管理器能够访问应用程序的后台缓冲区。 不应锁定跨进程共享图面。

 

D3DPRESENTFLAG_NOAUTOROTATE 0x00000020 旋转的监视器在演示期间自动使用旋转副本进行处理,这并不十分高效。 此标志意味着应用程序将执行它自己的显示旋转。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

应用程序可以使用旋转视图矩阵实现自己的旋转。 GetDisplayModeExGetAdapterDisplayModeEx 的方法应用于查找当前旋转设置。 CreateDeviceExResetEx 中的后退宽度和高度参数必须使用横向方向,而全屏显示模式结构应与从 EnumAdapterModesEx 返回的内容相同(即旋转 90 度和 270 度时交换宽度和高度)。

在旋转的呈现目标上使用锁定时,左上角假设不再为 true,呈现目标SURFACE_DESC将保持横向(如创建参数所隐含),并且 GDI 窗口、鼠标坐标等需要在与 Direct3D 呈现目标和场景一起使用时正确转换。

D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040 使用此标志可以指定显示适配器枚举的任何 RAW 显示模式,即使 Direct3D 可能指示模式无效。 如果所需模式确实无效,应用程序应以可靠的方式实现此目标。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

D3DPRESENTFLAG_VIDEO 0x00000010 这是驱动程序的提示,即后退缓冲区将包含视频数据。
D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080 指定覆盖是全范围 RGB 还是有限范围 RGB。 设置此标志表示有限范围的 RGB。 在有限范围 RGB 中,RGB 范围经过压缩,使 16:16:16 为黑色,235:235:235 为白色。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100 指定覆盖是 BT.601 还是 BT.709。 对于高清电视(HDTV),设置此标志表示 BT.709。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200 指定覆盖是传统的 YCbCr 还是扩展的 YCbCr(xvYCC)。 设置此标志指示扩展的 YCbCr (xvYCC)。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400 设置此标志表示交换链包含受保护的内容,并自动导致运行时限制对交换链的访问,以便只有桌面 Windows 管理器(DWM)可以使用交换链。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800 设置此标志表示驱动程序应限制对为 DWM 交互创建的任何共享资源的访问。 调用方必须使用驱动程序创建经过身份验证的通道。 然后,驱动程序应允许访问尝试打开这些共享资源的进程。
Direct3D 9 和 Direct3D 9Ex 之间的差异:
此标志仅在 Direct3D 9Ex 中可用。

 

 

这些常量由 D3DPRESENT_PARAMETERS使用。

常量信息

要求 价值
页眉 d3d9types.h
最低作系统 Windows 98

 

Direct3D 常量