압축 버퍼 만들기 및 렌더링 대상 디코딩

Microsoft Direct3D 런타임은 사용자 모드 표시 드라이버의 CreateResource 함수를 호출하여 압축 버퍼를 만들고 디코딩을 위한 대상을 렌더링합니다.

각 압축된 버퍼 형식에는 자체 표면 형식과 런타임이 만드는 표면에 가속 비디오 디코딩에 대한 압축 버퍼 정보가 포함되어 있음을 나타내는 특수 플래그가 있습니다. 사용자 모드 표시 드라이버는 CreateResourcepResource 매개 변수가 가리키는 D3DDDIARG_CREATERESOURCE 구조체의 Flags 멤버에 DecodeCompressedBuffer 비트 필드 플래그가 설정된 경우 압축된 버퍼를 만들도록 결정합니다. 사용자 모드 표시 드라이버는 D3DDDIARG_CREATERESOURCE Format 멤버의 형식 값으로 만들 압축된 버퍼의 형식을 결정합니다. 다음 형식이 정의됩니다.

D3DDDIFMT_PICTUREPARAMSDATA       = 150
D3DDDIFMT_MACROBLOCKDATA          = 151
D3DDDIFMT_RESIDUALDIFFERENCEDATA  = 152
D3DDDIFMT_DEBLOCKINGDATA          = 153
D3DDDIFMT_INVERSEQUANTIZATIONDATA = 154
D3DDDIFMT_SLICECONTROLDATA        = 155
D3DDDIFMT_BITSTREAMDATA           = 156

Direct3D 런타임은 사용자 모드 표시 드라이버의 CreateResource 함수를 호출할 때 각 디코딩 렌더링 대상을 독립적으로 만듭니다. 각 대상은 단일 리소스의 하위 리소스 인덱스로 참조됩니다. 사용자 모드 표시 드라이버는 D3DDDIARG_CREATERESOURCE Flags 멤버의 DecodeRenderTarget 비트 필드 플래그가 설정된 경우 디코딩 렌더링 대상을 만들도록 결정합니다.