mirror of
https://github.com/amerkoleci/Vortice.Win32.git
synced 2026-01-14 16:16:04 +08:00
Improve generation.
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user