struct KernelDesc {
name: &'static str,
- create: fn () -> Box<kernel::Kernel>,
+ create: fn () -> Box<dyn kernel::Kernel>,
}
impl KernelDesc {
- fn find(name: &str) -> ScaleResult<Box<kernel::Kernel>> {
+ fn find(name: &str) -> ScaleResult<Box<dyn kernel::Kernel>> {
for kern in KERNELS.iter() {
if kern.name == name {
return Ok((kern.create)());
fmt_out: ScaleInfo,
tmp_pic: NABufferType,
next: Option<Box<Stage>>,
- worker: Box<kernel::Kernel>,
+ worker: Box<dyn kernel::Kernel>,
}
pub fn get_scale_fmt_from_pic(pic: &NABufferType) -> ScaleInfo {
let outname = ofmt.fmt.get_model().get_short_name();
println!("convert {} -> {}", ifmt, ofmt);
- let mut needs_scale = !just_convert;
- if (ofmt.fmt.get_max_subsampling() > 0) &&
+ let needs_scale = if (ofmt.fmt.get_max_subsampling() > 0) &&
(ofmt.fmt.get_max_subsampling() != ifmt.fmt.get_max_subsampling()) {
- needs_scale = true;
- }
+ true
+ } else {
+ !just_convert
+ };
let needs_unpack = needs_scale || !ifmt.fmt.is_unpacked();
let needs_pack = !ofmt.fmt.is_unpacked();
- let mut needs_convert = false;
- if inname != outname {
- needs_convert = true;
- }
+ let needs_convert = inname != outname;
let scale_before_cvt = is_better_fmt(&ifmt, &ofmt) && needs_convert
&& (ofmt.fmt.get_max_subsampling() == 0);
//todo stages for model and gamma conversion
if needs_unpack {
println!("[adding unpack]");
- let new_stage;
- if !cur_fmt.fmt.is_paletted() {
- new_stage = Stage::new("unpack", &cur_fmt, &ofmt)?;
- } else {
- new_stage = Stage::new("depal", &cur_fmt, &ofmt)?;
- }
+ let new_stage = if !cur_fmt.fmt.is_paletted() {
+ Stage::new("unpack", &cur_fmt, &ofmt)?
+ } else {
+ Stage::new("depal", &cur_fmt, &ofmt)?
+ };
cur_fmt = new_stage.fmt_out;
add_stage!(stages, new_stage);
}