Improve generation.

This commit is contained in:
Amer Koleci
2022-12-30 09:28:01 +01:00
parent ad6909ef04
commit c2a59c7720
10 changed files with 139 additions and 41 deletions

View File

@@ -72,4 +72,51 @@ public static unsafe partial class Apis
ppImmediateContext);
}
}
public static Filter EncodeBasicFilter(FilterType min, FilterType mag, FilterType mip, FilterReductionType reduction)
{
return (Filter)((((uint)min & D3D11_FILTER_TYPE_MASK) << unchecked((int)D3D11_MIN_FILTER_SHIFT))
| (((uint)mag & D3D11_FILTER_TYPE_MASK) << unchecked((int)D3D11_MAG_FILTER_SHIFT))
| (((uint)mip & D3D11_FILTER_TYPE_MASK) << unchecked((int)D3D11_MIP_FILTER_SHIFT))
| (((uint)reduction & D3D11_FILTER_REDUCTION_TYPE_MASK) << unchecked((int)D3D11_FILTER_REDUCTION_TYPE_SHIFT)));
}
public static Filter EncodeAnisotropicFilter(FilterReductionType reduction)
{
return (Filter)(D3D11_ANISOTROPIC_FILTERING_BIT
| (int)EncodeBasicFilter(FilterType.Linear, FilterType.Linear, FilterType.Linear, reduction));
}
public static FilterType DecodeMinFilter(Filter D3D11Filter)
{
return (FilterType)(((uint)D3D11Filter >> unchecked((int)D3D11_MIN_FILTER_SHIFT)) & D3D11_FILTER_TYPE_MASK);
}
public static FilterType DecodeMagFilter(Filter D3D11Filter)
{
return (FilterType)(((uint)D3D11Filter >> unchecked((int)D3D11_MAG_FILTER_SHIFT)) & D3D11_FILTER_TYPE_MASK);
}
public static FilterType DecodeMipFilter(Filter D3D11Filter)
{
return (FilterType)(((uint)D3D11Filter >> unchecked((int)D3D11_MIP_FILTER_SHIFT)) & D3D11_FILTER_TYPE_MASK);
}
public static FilterReductionType DecodeFilterReduction(Filter D3D11Filter)
{
return (FilterReductionType)(((uint)D3D11Filter >> unchecked((int)D3D11_FILTER_REDUCTION_TYPE_SHIFT)) & D3D11_FILTER_REDUCTION_TYPE_MASK);
}
public static bool DecodeisComparisonFilter(Filter D3D11Filter)
{
return DecodeFilterReduction(D3D11Filter) == FilterReductionType.Comparison;
}
public static bool DecodeIsAnisotropicFilter(Filter D3D11Filter)
{
return (((int)D3D11Filter & D3D11_ANISOTROPIC_FILTERING_BIT) != 0)
&& (FilterType.Linear == DecodeMinFilter(D3D11Filter))
&& (FilterType.Linear == DecodeMagFilter(D3D11Filter))
&& (FilterType.Linear == DecodeMipFilter(D3D11Filter));
}
}