MFCreateDXSurfaceBuffer 函数 (mfapi.h)

创建管理 Direct3D 9 图面的媒体缓冲区对象。

语法

HRESULT MFCreateDXSurfaceBuffer(
  [in]  REFIID         riid,
  [in]  IUnknown       *punkSurface,
  [in]  BOOL           fBottomUpWhenLinear,
  [out] IMFMediaBuffer **ppBuffer
);

参数

[in] riid

标识 Direct3D 9 图面的类型。 目前,此值必须 IID_IDirect3DSurface9

[in] punkSurface

指向 DirectX 图面的 IUnknown 接口的指针。

[in] fBottomUpWhenLinear

如果 为 TRUE,则缓冲区的 IMF2DBuffer::ContiguousCopyTo 方法会将缓冲区复制到自下而上的格式。 对于未压缩的 RGB 图像,自下而上格式与 GDI 兼容。 如果此参数为 FALSE则 ContiguousCopyTo 方法会将缓冲区复制到与 DirectX 兼容的自上而下格式。

有关自上而下与自下而上图像的详细信息,请参阅 图像步幅

[out] ppBuffer

接收指向 IMFMediaBuffer 接口的指针。 调用方必须释放缓冲区。

返回值

函数返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
无效的参数。

备注

此函数创建一个媒体缓冲区对象,该对象保存指向 punkSurface 中指定的 Direct3D 图面的指针。 通过锁定缓冲区,调用方可以访问 Surface 内存。 当缓冲区对象被销毁时,它会释放表面。 有关媒体缓冲区的详细信息,请参阅 媒体缓冲区

注意 此函数不分配 Direct3D 表面本身。
 
此函数创建的缓冲区对象还公开 IMF2DBuffer 接口。 有关详细信息,请参阅 DirectX Surface 缓冲区

此函数不支持 DXGI 图面。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mfapi.h
Library Evr.lib
DLL Evr.dll

另请参阅

DirectX Surface 缓冲区

媒体缓冲区

媒体基础函数