From aac810ffb337c8a01396454c769ba80f3acacf8c Mon Sep 17 00:00:00 2001 From: jaby Date: Tue, 17 Dec 2024 22:31:14 +0100 Subject: [PATCH] Share settings --- src/Tools/psxfileconv/src/images/args.rs | 27 +++++++++++++++++ src/Tools/psxfileconv/src/images/mod.rs | 1 + .../psxfileconv/src/images/reduced_tim/mod.rs | 30 ++++++------------- 3 files changed, 37 insertions(+), 21 deletions(-) create mode 100644 src/Tools/psxfileconv/src/images/args.rs diff --git a/src/Tools/psxfileconv/src/images/args.rs b/src/Tools/psxfileconv/src/images/args.rs new file mode 100644 index 00000000..4cc296c3 --- /dev/null +++ b/src/Tools/psxfileconv/src/images/args.rs @@ -0,0 +1,27 @@ +use clap::ValueEnum; + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum ColorType{ + Clut4, + Clut8, + Full16, +} + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum ClutAlignment { + None, + Linear, + Block +} + +#[allow(non_snake_case)] +pub mod SemiTransparent { + pub type Type = bool; + pub const NAME:&'static str = "semi-trans"; +} + +#[allow(non_snake_case)] +pub mod TransparentPalette { + pub type Type = bool; + pub const NAME:&'static str = ""; +} diff --git a/src/Tools/psxfileconv/src/images/mod.rs b/src/Tools/psxfileconv/src/images/mod.rs index 1c1259b3..57d61d18 100644 --- a/src/Tools/psxfileconv/src/images/mod.rs +++ b/src/Tools/psxfileconv/src/images/mod.rs @@ -1,3 +1,4 @@ +pub mod args; pub mod color_clut; pub mod color_full16; pub mod reduced_tim; diff --git a/src/Tools/psxfileconv/src/images/reduced_tim/mod.rs b/src/Tools/psxfileconv/src/images/reduced_tim/mod.rs index d2a76e2b..52cb441d 100644 --- a/src/Tools/psxfileconv/src/images/reduced_tim/mod.rs +++ b/src/Tools/psxfileconv/src/images/reduced_tim/mod.rs @@ -1,24 +1,11 @@ -use clap::{Args, ValueEnum}; -use image::{DynamicImage, io::Reader as ImageReader}; +use super::args::{ColorType, ClutAlignment, SemiTransparent, TransparentPalette}; use super::color_clut::{IndexedImage, OutputType}; use super::color_full16::{RgbaImage, RgbImage}; +use super::types::{Header, Color as PSXColor, PSXImageConverter}; +use clap::Args; +use image::{DynamicImage, io::Reader as ImageReader}; use std::io::{Cursor, Write}; use tool_helper::{Error, Input}; -use super::types::{Header, Color as PSXColor, PSXImageConverter}; - -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] -pub enum ColorType{ - Clut4, - Clut8, - Full16, -} - -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] -pub enum ClutAlignment { - None, - Linear, - Block -} #[derive(Args)] pub struct Arguments { @@ -28,10 +15,11 @@ pub struct Arguments { #[clap(value_enum, value_parser, default_value_t=ClutAlignment::None)] clut_align: ClutAlignment, - #[clap(long="semi-trans", default_value_t=false)] - semi_transparent: bool, - #[clap(long="color-trans", default_value_t=false)] - transparent_palette: bool + #[clap(long=SemiTransparent::NAME, default_value_t=false)] + semi_transparent: SemiTransparent::Type, + + #[clap(long=TransparentPalette::NAME, default_value_t=false)] + transparent_palette: TransparentPalette::Type } fn modify_palette(mut image: IndexedImage, clut_align: ClutAlignment, semi_transparent: bool, transparent_palette: bool) -> IndexedImage {