Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › D3D12_FILTER

D3D12_FILTER

列挙型
基底型i4

メンバー 40

名前10進16進説明
D3D12_FILTER_MIN_MAG_MIP_POINT00x0縮小、拡大、ミップレベルの各サンプリングにポイントサンプリングを使用します。
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR10x1縮小と拡大にポイントサンプリングを使用し、ミップレベルのサンプリングに線形補間を使用します。
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT40x4縮小にポイントサンプリングを使用し、拡大に線形補間を使用し、ミップレベルのサンプリングにポイントサンプリングを使用します。
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR50x5縮小にポイントサンプリングを使用し、拡大とミップレベルのサンプリングに線形補間を使用します。
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT160x10縮小に線形補間を使用し、拡大とミップレベルのサンプリングにポイントサンプリングを使用します。
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR170x11縮小に線形補間を使用し、拡大にポイントサンプリングを使用し、ミップレベルのサンプリングに線形補間を使用します。
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT200x14縮小と拡大に線形補間を使用し、ミップレベルのサンプリングにポイントサンプリングを使用します。
D3D12_FILTER_MIN_MAG_MIP_LINEAR210x15縮小、拡大、ミップレベルの各サンプリングに線形補間を使用します。
D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT840x54
D3D12_FILTER_ANISOTROPIC850x55縮小、拡大、ミップレベルの各サンプリングに異方性補間を使用します。
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT1280x80縮小、拡大、ミップレベルの各サンプリングにポイントサンプリングを使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR1290x81縮小と拡大にポイントサンプリングを使用し、ミップレベルのサンプリングに線形補間を使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT1320x84縮小にポイントサンプリングを使用し、拡大に線形補間を使用し、ミップレベルのサンプリングにポイントサンプリングを使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR1330x85縮小にポイントサンプリングを使用し、拡大とミップレベルのサンプリングに線形補間を使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT1440x90縮小に線形補間を使用し、拡大とミップレベルのサンプリングにポイントサンプリングを使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR1450x91縮小に線形補間を使用し、拡大にポイントサンプリングを使用し、ミップレベルのサンプリングに線形補間を使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT1480x94縮小と拡大に線形補間を使用し、ミップレベルのサンプリングにポイントサンプリングを使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR1490x95縮小、拡大、ミップレベルの各サンプリングに線形補間を使用します。結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT2120xD4
D3D12_FILTER_COMPARISON_ANISOTROPIC2130xD5縮小、拡大、ミップレベルの各サンプリングに異方性補間を使用します。結果を比較値と比較します。
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT2560x100D3D12_FILTER_MIN_MAG_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR2570x101D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT2600x104D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR2610x105D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT2720x110D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR2730x111D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT2760x114D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR2770x115D3D12_FILTER_MIN_MAG_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT3400x154
D3D12_FILTER_MINIMUM_ANISOTROPIC3410x155D3D12_FILTER_ANISOTROPIC と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最小値を返します。フィルタリング時に重みが 0 となるテクセルは、最小値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT3840x180D3D12_FILTER_MIN_MAG_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR3850x181D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT3880x184D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR3890x185D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT4000x190D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR4010x191D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT4040x194D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR4050x195D3D12_FILTER_MIN_MAG_MIP_LINEAR と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。
D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT4680x1D4
D3D12_FILTER_MAXIMUM_ANISOTROPIC4690x1D5D3D12_FILTER_ANISOTROPIC と同じテクセルの組を取得しますが、それらをフィルタリングする代わりにテクセルの最大値を返します。フィルタリング時に重みが 0 となるテクセルは、最大値の算出対象に含まれません。このフィルタータイプのサポート状況は、D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーで問い合わせることができます。

公式ドキュメント

テクスチャサンプリング時のフィルタリングオプションを指定します。

解説(Remarks)

この列挙型は D3D12_SAMPLER_DESC 構造体で使用されます。

メモ 縮小フィルターと拡大フィルターに異なるフィルタータイプを使用すると、拡大と縮小のどちらが行われるかがあいまいな特定のケースで未定義の動作が発生します。この未定義の動作を防ぐには、縮小と拡大の両方で同様のフィルター処理を使用するフィルターモードを使用してください(異方性フィルタリングを使用する方法でもこの問題を回避できます)。
テクスチャサンプリングでは、1 つ以上のテクセルが読み取られ、それらを組み合わせて(この処理をフィルタリングと呼びます)単一の値が生成されます。ポイントサンプリングは 1 つのテクセルを読み取り、線形サンプリングは 2 つのテクセル(端点)を読み取って、その間の 3 つ目の値を線形補間します。

Microsoft High Level Shader Language (HLSL) のテクスチャサンプリング関数は、テクスチャサンプリング時の比較フィルタリングもサポートします。比較フィルタリングでは、サンプリングした各テクセルを比較値と比較します。得られたブール値の結果は、通常のテクスチャフィルタリングと同じ方法でブレンドされます。

テクスチャフィルタリングのみを実装する HLSL 組み込みのテクスチャサンプリング関数を使用することも、テクスチャフィルタリングと比較フィルタリングを併用する対応関数を使用することもできます。

また、次の定義にも注意してください。

#define D3D12_FILTER_REDUCTION_TYPE_MASK    ( 0x3 )

#define D3D12_FILTER_REDUCTION_TYPE_SHIFT   ( 7 )

#define D3D12_FILTER_TYPE_MASK  ( 0x3 )

#define D3D12_MIN_FILTER_SHIFT  ( 4 )

#define D3D12_MAG_FILTER_SHIFT  ( 2 )

#define D3D12_MIP_FILTER_SHIFT  ( 0 )

#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )

#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction )                                                     \
                                   ( ( D3D12_FILTER ) (                                                           \
                                   ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) |           \
                                   ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) |           \
                                   ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) |           \
                                   ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 

#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction )                                                  \
                                         ( ( D3D12_FILTER ) (                                         \
                                         D3D12_ANISOTROPIC_FILTERING_BIT |                            \
                                         D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR,         \
                                                                    D3D12_FILTER_TYPE_LINEAR,         \
                                                                    D3D12_FILTER_TYPE_LINEAR,         \
                                                                    reduction ) ) )                     
#define D3D12_DECODE_MIN_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 

#define D3D12_DECODE_MAG_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 

#define D3D12_DECODE_MIP_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 

#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter )                                                        \
                                 ( ( D3D12_FILTER_REDUCTION_TYPE )                                          \
                                 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) 

#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter )                                                    \
                                 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) 

#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter )                                               \
                            ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) &&                  \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) &&   \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) &&   \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) )    

テクスチャサンプリング関数 比較フィルタリングを伴うテクスチャサンプリング関数
Sample SampleCmp または SampleCmpLevelZero
 

比較フィルターは、次の形式を持つテクスチャでのみ動作します: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_R16_UNORM

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum D3D12_FILTER : int {
    D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16,
    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20,
    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21,
    D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84,
    D3D12_FILTER_ANISOTROPIC = 85,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128,
    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149,
    D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212,
    D3D12_FILTER_COMPARISON_ANISOTROPIC = 213,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256,
    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277,
    D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340,
    D3D12_FILTER_MINIMUM_ANISOTROPIC = 341,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384,
    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
    D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468,
    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469
} D3D12_FILTER;
public enum D3D12_FILTER : int
{
    D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16,
    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20,
    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21,
    D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84,
    D3D12_FILTER_ANISOTROPIC = 85,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128,
    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149,
    D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212,
    D3D12_FILTER_COMPARISON_ANISOTROPIC = 213,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256,
    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277,
    D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340,
    D3D12_FILTER_MINIMUM_ANISOTROPIC = 341,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384,
    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
    D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468,
    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469,
}
Public Enum D3D12_FILTER As Integer
    D3D12_FILTER_MIN_MAG_MIP_POINT = 0
    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1
    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4
    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5
    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16
    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17
    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20
    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21
    D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84
    D3D12_FILTER_ANISOTROPIC = 85
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128
    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145
    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149
    D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212
    D3D12_FILTER_COMPARISON_ANISOTROPIC = 213
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256
    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273
    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277
    D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340
    D3D12_FILTER_MINIMUM_ANISOTROPIC = 341
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384
    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401
    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405
    D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468
    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469
End Enum
import enum

class D3D12_FILTER(enum.IntEnum):
    D3D12_FILTER_MIN_MAG_MIP_POINT = 0
    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1
    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4
    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5
    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16
    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17
    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20
    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21
    D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84
    D3D12_FILTER_ANISOTROPIC = 85
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128
    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145
    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149
    D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212
    D3D12_FILTER_COMPARISON_ANISOTROPIC = 213
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256
    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273
    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277
    D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340
    D3D12_FILTER_MINIMUM_ANISOTROPIC = 341
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384
    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401
    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405
    D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468
    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469
// D3D12_FILTER
pub const D3D12_FILTER_MIN_MAG_MIP_POINT: i32 = 0;
pub const D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: i32 = 1;
pub const D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 4;
pub const D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: i32 = 5;
pub const D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: i32 = 16;
pub const D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 17;
pub const D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: i32 = 20;
pub const D3D12_FILTER_MIN_MAG_MIP_LINEAR: i32 = 21;
pub const D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 84;
pub const D3D12_FILTER_ANISOTROPIC: i32 = 85;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: i32 = 128;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR: i32 = 129;
pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 132;
pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR: i32 = 133;
pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT: i32 = 144;
pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 145;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT: i32 = 148;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR: i32 = 149;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 212;
pub const D3D12_FILTER_COMPARISON_ANISOTROPIC: i32 = 213;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: i32 = 256;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR: i32 = 257;
pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 260;
pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR: i32 = 261;
pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT: i32 = 272;
pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 273;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT: i32 = 276;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: i32 = 277;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 340;
pub const D3D12_FILTER_MINIMUM_ANISOTROPIC: i32 = 341;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: i32 = 384;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR: i32 = 385;
pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 388;
pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR: i32 = 389;
pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT: i32 = 400;
pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 401;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT: i32 = 404;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: i32 = 405;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 468;
pub const D3D12_FILTER_MAXIMUM_ANISOTROPIC: i32 = 469;
// D3D12_FILTER
const (
	D3D12_FILTER_MIN_MAG_MIP_POINT int32 = 0
	D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR int32 = 1
	D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT int32 = 4
	D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR int32 = 5
	D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT int32 = 16
	D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR int32 = 17
	D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT int32 = 20
	D3D12_FILTER_MIN_MAG_MIP_LINEAR int32 = 21
	D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT int32 = 84
	D3D12_FILTER_ANISOTROPIC int32 = 85
	D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT int32 = 128
	D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR int32 = 129
	D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT int32 = 132
	D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR int32 = 133
	D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT int32 = 144
	D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR int32 = 145
	D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT int32 = 148
	D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR int32 = 149
	D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT int32 = 212
	D3D12_FILTER_COMPARISON_ANISOTROPIC int32 = 213
	D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT int32 = 256
	D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR int32 = 257
	D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT int32 = 260
	D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR int32 = 261
	D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT int32 = 272
	D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR int32 = 273
	D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT int32 = 276
	D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR int32 = 277
	D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT int32 = 340
	D3D12_FILTER_MINIMUM_ANISOTROPIC int32 = 341
	D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT int32 = 384
	D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR int32 = 385
	D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT int32 = 388
	D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR int32 = 389
	D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT int32 = 400
	D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR int32 = 401
	D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT int32 = 404
	D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR int32 = 405
	D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT int32 = 468
	D3D12_FILTER_MAXIMUM_ANISOTROPIC int32 = 469
)
const
  D3D12_FILTER_MIN_MAG_MIP_POINT = 0;
  D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1;
  D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4;
  D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5;
  D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16;
  D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17;
  D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20;
  D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21;
  D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84;
  D3D12_FILTER_ANISOTROPIC = 85;
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128;
  D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129;
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132;
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133;
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144;
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145;
  D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148;
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149;
  D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212;
  D3D12_FILTER_COMPARISON_ANISOTROPIC = 213;
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256;
  D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257;
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260;
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261;
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272;
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273;
  D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276;
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277;
  D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340;
  D3D12_FILTER_MINIMUM_ANISOTROPIC = 341;
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384;
  D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385;
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388;
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389;
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400;
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401;
  D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404;
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405;
  D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468;
  D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469;
// D3D12_FILTER
pub const D3D12_FILTER_MIN_MAG_MIP_POINT: i32 = 0;
pub const D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: i32 = 1;
pub const D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 4;
pub const D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: i32 = 5;
pub const D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: i32 = 16;
pub const D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 17;
pub const D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: i32 = 20;
pub const D3D12_FILTER_MIN_MAG_MIP_LINEAR: i32 = 21;
pub const D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 84;
pub const D3D12_FILTER_ANISOTROPIC: i32 = 85;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: i32 = 128;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR: i32 = 129;
pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 132;
pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR: i32 = 133;
pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT: i32 = 144;
pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 145;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT: i32 = 148;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR: i32 = 149;
pub const D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 212;
pub const D3D12_FILTER_COMPARISON_ANISOTROPIC: i32 = 213;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: i32 = 256;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR: i32 = 257;
pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 260;
pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR: i32 = 261;
pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT: i32 = 272;
pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 273;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT: i32 = 276;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: i32 = 277;
pub const D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 340;
pub const D3D12_FILTER_MINIMUM_ANISOTROPIC: i32 = 341;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: i32 = 384;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR: i32 = 385;
pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: i32 = 388;
pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR: i32 = 389;
pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT: i32 = 400;
pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: i32 = 401;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT: i32 = 404;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: i32 = 405;
pub const D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT: i32 = 468;
pub const D3D12_FILTER_MAXIMUM_ANISOTROPIC: i32 = 469;
const
  D3D12_FILTER_MIN_MAG_MIP_POINT* = 0
  D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR* = 1
  D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT* = 4
  D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR* = 5
  D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT* = 16
  D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR* = 17
  D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT* = 20
  D3D12_FILTER_MIN_MAG_MIP_LINEAR* = 21
  D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT* = 84
  D3D12_FILTER_ANISOTROPIC* = 85
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT* = 128
  D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR* = 129
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT* = 132
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR* = 133
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT* = 144
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR* = 145
  D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT* = 148
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR* = 149
  D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT* = 212
  D3D12_FILTER_COMPARISON_ANISOTROPIC* = 213
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT* = 256
  D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR* = 257
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT* = 260
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR* = 261
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT* = 272
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR* = 273
  D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT* = 276
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR* = 277
  D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT* = 340
  D3D12_FILTER_MINIMUM_ANISOTROPIC* = 341
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT* = 384
  D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR* = 385
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT* = 388
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR* = 389
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT* = 400
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR* = 401
  D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT* = 404
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR* = 405
  D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT* = 468
  D3D12_FILTER_MAXIMUM_ANISOTROPIC* = 469
enum D3D12_FILTER : int {
    D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16,
    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20,
    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21,
    D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 84,
    D3D12_FILTER_ANISOTROPIC = 85,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128,
    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149,
    D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 212,
    D3D12_FILTER_COMPARISON_ANISOTROPIC = 213,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256,
    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277,
    D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 340,
    D3D12_FILTER_MINIMUM_ANISOTROPIC = 341,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384,
    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
    D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 468,
    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469,
}
#define global D3D12_FILTER_MIN_MAG_MIP_POINT                          0x0
#define global D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR                   0x1
#define global D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             0x4
#define global D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR                   0x5
#define global D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT                   0x10
#define global D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            0x11
#define global D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT                   0x14
#define global D3D12_FILTER_MIN_MAG_MIP_LINEAR                         0x15
#define global D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT              0x54
#define global D3D12_FILTER_ANISOTROPIC                                0x55
#define global D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT               0x80
#define global D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        0x81
#define global D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  0x84
#define global D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        0x85
#define global D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        0x90
#define global D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR 0x91
#define global D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        0x94
#define global D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              0x95
#define global D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT   0xD4
#define global D3D12_FILTER_COMPARISON_ANISOTROPIC                     0xD5
#define global D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT                  0x100
#define global D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR           0x101
#define global D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT     0x104
#define global D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR           0x105
#define global D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT           0x110
#define global D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR    0x111
#define global D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT           0x114
#define global D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR                 0x115
#define global D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT      0x154
#define global D3D12_FILTER_MINIMUM_ANISOTROPIC                        0x155
#define global D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT                  0x180
#define global D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR           0x181
#define global D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT     0x184
#define global D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR           0x185
#define global D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT           0x190
#define global D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR    0x191
#define global D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT           0x194
#define global D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR                 0x195
#define global D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT      0x1D4
#define global D3D12_FILTER_MAXIMUM_ANISOTROPIC                        0x1D5