7 releases (4 breaking)
0.5.0 | Jun 8, 2024 |
---|---|
0.4.2 | Nov 6, 2023 |
0.4.1 | Jul 31, 2022 |
0.3.0 | Jul 30, 2022 |
0.1.0 | Jul 30, 2022 |
#2991 in #api
Used in dxfilter
12KB
176 lines
DxFilter
Scale and ColorConversion done with DirectX filters. You can also create your own filters with the provided api.
Crate contains various tools to make these features possible.
generate_shader!
andcompile_shader!
macros to write shaders that compile at compile time- various built filters for converting and scaling from RGB to YUV or NV12
DxFilter
interface for writing custom filters- utils like
create_device_context
,create_input_tex
,create_output_tex
for easier setup. - utils like
AdapterFactory
,Adapter
,TextureReader
imported fromwin_desktop_duplication
.
For example usage, look at examples/rgb_to_nv12.rs
Usage
// for more detailed example see examples/rgb_to_nv12.rs
fn main() {
// {...}
// Texture Texture directx device
let filter = ConvertARGBToNV12::new(&input_tex, &output_tex, &device).unwrap();
// directx device
filter.apply_filter(&context).unwrap();
// { ... }
}
AvailableFilters
- ARGB to AYUV
- ARGB to NV12
- ARGB or AYUV scale only
- ARGB to YUV planar
- ARGB to YUV420 planar
- ARGB16 to Y410
- ARGB16 to YUV444 10bit planar
- ARGB16 to YUV420 10bit planar
Dependencies
~128MB
~2M SLoC