Win32 API:Direct3DCreate9Ex 函数(D3d9.h)
Direct3DCreate9Ex 函数是用于创建 Direct3D 9Ex 对象的函数,也属于 Direct3D 9 图形 API 的一部分。这个函数的原型如下:typedef HRESULT(WINAPI *LPDIRECT3DCREATE9EX)( UINT SDKVersion, IDirect3D9Ex **ppD3D);LPDIRECT3DCREATE9EX pDirect3DCreate9Ex = (LPDIRECT3DCREATE9EX)GetProcAddress(LoadLibrary(L"d3d9.dll"), "Direct3DCreate9Ex");// Check for Direct3D9Ex supportif (pDirect3DCreate9Ex != NULL) { IDirect3D9Ex *pD3DEx = NULL; HRESULT hr = pDirect3DCreate9Ex(D3D_SDK_VERSION, &pD3DEx); if (SUCCEE...
Win32 API:Direct3DCreate9 函数(D3d9.h)
Direct3DCreate9 函数是用于创建 Direct3D 9 对象的函数,它属于 Direct3D 9 图形 API 的一部分。这个函数的原型如下:LPDIRECT3D9 Direct3DCreate9( UINT SDKVersion);参数: SDKVersion:Direct3D SDK 的版本号。通常可以传入 D3D_SDK_VERSION 宏作为参数。返回值: 如果成功,返回一个指向 IDirect3D9 接口的指针;如果失败,返回 NULL。示例用法:#include <d3d9.h>LPDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);if (pD3D == NULL) { // 处理初始化失败的情况} else { // 使用 pD3D 进行 Direct3D 9 相关的操作 // ... // 记得在结束时释放对象 pD3D->Release();}这个函数用于初始化和创建一个 Direct3D 9 对象,该对象是进行图形编程的入口点。通过获取 IDirect3...
Win32 API:ID3D12VideoDevice1 接口(D3d12video.h)
ID3D12VideoDevice1 接口是 Direct3D 12 中的扩展接口,用于表示视频设备的接口。这个接口在 ID3D12VideoDevice 接口的基础上提供了一些额外的功能。以下是 ID3D12VideoDevice1 接口的一些方法:1. CheckFeatureSupport: 检查硬件对视频相关功能的支持。 HRESULT CheckFeatureSupport( D3D12_FEATURE_VIDEO Feature, _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, UINT FeatureSupportDataSize ); 这个方法用于检查硬件对特定视频功能的支持,并返回相应的支持信息。2. CreateVideoDecoder: 创建视频解码器。 HRESULT CreateVideoDecoder( _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, ...
Win32 API:ID3D12VideoDevice 接口(D3d12video.h)
ID3D12VideoDevice 接口是 Direct3D 12 中用于表示视频设备的接口。这个接口提供了创建视频解码器、处理器等资源的方法。以下是 ID3D12VideoDevice 接口的一些方法:1. CheckFeatureSupport: 检查硬件对视频相关功能的支持。 HRESULT CheckFeatureSupport( D3D12_FEATURE_VIDEO Feature, _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, UINT FeatureSupportDataSize ); 这个方法用于检查硬件对特定视频功能的支持,并返回相应的支持信息。2. CreateVideoDecoder: 创建视频解码器。 HRESULT CreateVideoDecoder( _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, _In_ REFIID riid, ...
Win32 API:ID3D12VideoDecoderHeap 接口(D3d12video.h)
ID3D12VideoDecoderHeap 接口是 Direct3D 12 中用于表示视频解码器堆(heap)的接口。视频解码器堆用于存储解码所需的资源,例如解码器状态、参考图像等。以下是 ID3D12VideoDecoderHeap 接口的一些方法:1. GetDesc: 获取解码器堆的描述信息。 HRESULT GetDesc( _Out_ D3D12_VIDEO_DECODER_HEAP_DESC *pDesc ); 这个方法用于获取解码器堆的描述信息,包括堆的大小、解码器的关联等。2. GetProtectedResourceSession: 获取解码器堆的保护资源会话。 HRESULT GetProtectedResourceSession( REFIID riid, _COM_Outptr_ void **ppProtectedResourceSession ); 这个方法用于获取与解码器堆关联的保护资源会话。3. GetCreationNode: 获取创建解码器堆的节点。 UINT GetCreatio...
Win32 API:ID3D12VideoDecoder1 接口(D3d12video.h)
ID3D12VideoDecoder1 接口是 Direct3D 12 中的扩展接口,用于表示视频解码器的接口。这个接口在 ID3D12VideoDecoder 接口的基础上提供了一些额外的功能。以下是 ID3D12VideoDecoder1 接口的一些方法:1. GetDesc1: 获取解码器的描述信息,包括支持的特性、输入格式等。 HRESULT GetDesc1( _Out_ D3D12_VIDEO_DECODER_DESC1 *pDesc ); 这个方法是 GetDesc 的扩展版本,提供了更多的解码器描述信息。2. GetProtectedResourceSession1: 获取解码器的保护资源会话。 HRESULT GetProtectedResourceSession1( REFIID riid, _COM_Outptr_ void **ppProtectedResourceSession ); 这个方法是 GetProtectedResourceSession 的扩展版本,可能支持更多的选项。3. Crea...
Win32 API:ID3D12VideoDecoder 接口(D3d12video.h)
ID3D12VideoDecoder 接口是 Direct3D 12 中用于表示视频解码器的接口。这个接口提供了执行视频解码相关操作的方法。以下是 ID3D12VideoDecoder 接口的一些方法:1. GetDesc: 获取解码器的描述信息。 HRESULT GetDesc( _Out_ D3D12_VIDEO_DECODER_DESC *pDesc ); 这个方法用于获取解码器的描述信息,包括支持的特性、输入格式等。2. GetProtectedResourceSession: 获取解码器的保护资源会话。 HRESULT GetProtectedResourceSession( REFIID riid, _COM_Outptr_ void **ppProtectedResourceSession ); 这个方法用于获取与解码器关联的保护资源会话。3. CreateDecodeHeap: 创建解码用的堆(heap)。 HRESULT CreateDecodeHeap( _In_ const D3D1...
Win32 API:ID3D12VideoDecodeCommandList 接口(D3d12video.h)
ID3D12VideoDecodeCommandList 接口是 Direct3D 12 中用于表示视频解码命令列表的接口。这个接口提供了执行视频解码相关操作的方法。通常,视频解码是对视频进行解码以便渲染的过程。以下是 ID3D12VideoDecodeCommandList 接口的一些方法:1. DecodeFrame: 用于解码视频帧。 HRESULT DecodeFrame( _In_ ID3D12VideoDecoder *pDecoder, _In_ const D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM *pOutputHistogram, _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputStreamArguments, _In_ UINT NumInputStreams, _In_reads_(NumInputStreams) const D3D12_VIDEO_DECODE_INPUT_S...
Win32 API:D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS 枚举(D3d12video.h)
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS 枚举是与Direct3D 12中视频编码器相关的一部分,用于指定运动估计器(motion estimator)的矢量精度标志。这些标志影响运动矢量(motion vector)的精度。以下是该枚举的定义:typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS { D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = 0x1, D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_HA LF_PEL = 0x2, D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_INTEGER_PEL = 0x4}...
Win32 API:D3D12_VIDEO_DECODE_TIER 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_TIER 枚举用于表示视频解码的支持层级。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_TIER{ D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, D3D12_VIDEO_DECODE_TIER_1 = 1, D3D12_VIDEO_DECODE_TIER_2 = 2, D3D12_VIDEO_DECODE_TIER_3 = 3} D3D12_VIDEO_DECODE_TIER;该枚举定义了以下值: D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED: 不支持视频解码。 D3D12_VIDEO_DECODE_TIER_1: 支持解码 Tier 1 的功能。 D3D12_VIDEO_DECODE_TIER_2: 支持解码 Tier 2 的功能。 D3D12_VIDEO_DECODE_TIER_3: 支持解码 Tier 3 的功能。这些枚举值用于指定硬件或驱动程序对视...
Win32 API:D3D12_VIDEO_DECODE_SUPPORT_FLAGS 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_SUPPORT_FLAGS 枚举用于表示视频解码的支持标志。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS{ D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0x00000000, D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x00000001} D3D12_VIDEO_DECODE_SUPPORT_FLAGS;该枚举定义了以下标志: D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE: 无特殊标志。 D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED: 表示视频解码是受支持的。这些枚举值用于指定特定视频解码功能的支持状态。
Win32 API:D3D12_VIDEO_DECODE_STATUS 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_STATUS 枚举用于表示视频解码的状态。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_STATUS{ D3D12_VIDEO_DECODE_STATUS_OK = 0, D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, D3D12_VIDEO_DECODE_STATUS_RESTART = 3, D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4} D3D12_VIDEO_DECODE_STATUS;该枚举定义了以下值: D3D12_VIDEO_DECODE_STATUS_OK: 解码成功。 D3D12_VIDEO_DECODE_STATUS_CONTINUE: 解码尚未完成,需要继续。 D3D12_VIDEO_DECODE_STATUS_CONT...
Win32 API:D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT 枚举用于指定视频解码直方图的组件。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT{ D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B, D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A, D3D12_VIDEO_DECODE_HISTOGRAM_CO...
Win32 API:D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS 枚举用于定义视频解码器配置的标志。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS{ D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0x00000000, D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x00000001, D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x00000002, D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS = 0x00000004, D3D12_VIDEO_DECODE_CONFIGURATI...
Win32 API:D3D12_VIDEO_DECODE_ARGUMENT_TYPE 枚举(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_DECODE_ARGUMENT_TYPE 枚举是用于指定视频解码器参数类型的枚举。以下是该枚举的定义:typedef enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE{ D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS, D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX, D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL, D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID} D3D12_VIDEO_DECODE_ARGUMENT_TYPE;该枚举定义了以下值: D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS: 表示视频解码器参数类型为图像参数。 D3D12_VIDEO_DECODE_ARGUM...
Win32 API:D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC 结构(D3d12video.h)
在 Win32 API 的 D3d12video.h 头文件中,D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC 结构是用于描述视频处理器输出流的结构体。这个结构体通常用于配置视频处理器输出流的参数,如图像格式、尺寸等。以下是该结构的定义:typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC{ DXGI_FORMAT Format; DXGI_COLOR_SPACE_TYPE ColorSpace; D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; D3D12_VIDEO_PROCESS_STEREO_FORMAT StereoFormat; D3D12_VIDEO_PROCESS_STEREO_FLIP_MODE StereoFlipMode; UINT OutputIndex; UINT InputFrameOrField; ...
Win32 API:D3D12_VIDEO_PROCESS_LUMA_KEY 结构(D3d12video.h)
D3D12_VIDEO_PROCESS_LUMA_KEY 结构是用于配置视频处理器亮度键控(Luma Keying)的结构体,定义在 D3d12video.h 头文件中。亮度键控是一种视频效果,允许将某个亮度范围的像素变为透明,从而在视频中实现特定的效果。以下是该结构的定义:typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY{ BOOL Enable; FLOAT Lower; FLOAT Upper;} D3D12_VIDEO_PROCESS_LUMA_KEY;结构体包含三个成员:1. Enable: 一个布尔值,用于启用或禁用亮度键控。如果为 TRUE,则启用亮度键控,否则禁用。2. Lower: 一个浮点数,表示亮度范围的下限。像素的亮度低于此值将被认为是在亮度键控范围内。3. Upper: 一个浮点数,表示亮度范围的上限。像素的亮度高于此值将被认为是在亮度键控范围内。通过配置这个结构体,你可以实现在视频处理中选择性地使特定亮度范围的像素变为透明,从而在视频中创建一些特殊效果。记住,使用这些结构体需要对Direct3D 12 ...
Win32 API:D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE 结构(D3d12video.h)
D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE 结构是用于配置视频处理输入流速率的结构体,定义在 D3d12video.h 头文件中。这个结构体用于描述视频处理器的输入流的帧率信息。以下是该结构的定义:typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE{ UINT OutputIndex; UINT InputFrameOrField;} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;结构体包含两个成员:1. OutputIndex: 表示输入流对应的输出索引。这是指定输入流要送往的处理器输出的索引。2. InputFrameOrField: 表示输入流的帧率或场率。这是一个整数值,用于指定每秒的帧数或场数,具体是帧率还是场率取决于应用程序的需求。这个结构体通常用于配置视频处理器的输入流,以便正确地进行视频处理。在使用该结构时,你需要设置好这两个成员的值,以满足你的视频处理需求。请注意,使用这些结构体需要对Direct3D 12 API有一定的了解,以便正确配置和...
Win32 API:D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA 结构(D3d12video.h)
这个结构体定义在 D3d12video.h 头文件中,通常用于与Direct3D 12 API一起使用。以下是该结构体的基本定义:typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA { UINT64 FrameId; BOOL IDR; D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_CODEC_DATA ConfigurationData;} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA;结构体的字段解释如下: FrameId: 表示视频帧的唯一标识符。 IDR: 一个布尔值,表示是否是关键帧(IDR帧)。如果为 TRUE,则表示是关键帧;如果为 FALSE,则表示为非关键帧。 ConfigurationData: 一个类型为 D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_CODEC_DATA 的结构体,包含了视频编码器的配置信息。请注意,上述信息可能会在更新的Direct3D 12...
Win32 API:D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM 结构(D3d12video.h)
根据我所了解的信息,D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM 结构是用于表示压缩的比特流数据的结构,通常用于 Direct3D 12 视频编码器的输出。以下是我对这个结构的理解,可能不是完整的,具体字段的含义可能需要查阅最新的官方文档:typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM { UINT64 StartOffset; UINT64 Size; UINT64 MaxEncodeFrameSize; UINT64 DataOffset; UINT64 DataSize; HANDLE hDrvFileHandle;} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM; StartOffset:比特流在文件或内存中的起始偏移。 Size:比特流的总大小。 MaxEncodeFrameSize:最大编码帧大小。 DataOffset:实际比特流数据的偏移。 DataSize:实际比特流数据的大小。 hDrvFileHandle:...