7个版本 (4个重大更新)

0.5.0 2024年6月8日
0.4.2 2023年11月6日
0.4.1 2022年7月31日
0.3.0 2022年7月30日
0.1.0 2022年7月30日

#1562 in 过程宏

Download history 183/week @ 2024-06-03 24/week @ 2024-06-10

每月369次下载
用于 dxfilter

MIT/Apache

12KB
176

DxFilter

docs.rs Crates.io Crates.io

使用DirectX过滤器完成缩放和颜色转换。您还可以使用提供的API创建自己的过滤器。

包包含各种工具以实现这些功能。

  • generate_shader!compile_shader! 宏用于编写在编译时编译的着色器
  • 多种用于将RGB转换为YUV或NV12的内置过滤器
  • DxFilter 接口用于编写自定义过滤器
  • create_device_contextcreate_input_texcreate_output_tex等实用工具,便于设置。
  • AdapterFactoryAdapterTextureReader等实用工具,从win_desktop_duplication导入。

例如,查看examples/rgb_to_nv12.rs

用法

// 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();

    // { ... }
}

可用过滤器

  • ARGB到AYUV
  • ARGB到NV12
  • 仅ARGB或AYUV缩放
  • ARGB到YUV平面
  • ARGB到YUV420平面
  • ARGB16到Y410
  • ARGB16到YUV444 10bit平面
  • ARGB16到YUV420 10bit平面

依赖关系

~128MB
~2M SLoC