cleanup and update dependencies
This commit is contained in:
parent
4cfd912ebe
commit
5d54a56e56
|
@ -1,4 +1,5 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
|
resolver = "2"
|
||||||
|
|
||||||
members = [
|
members = [
|
||||||
"cowgen",
|
"cowgen",
|
||||||
|
|
|
@ -8,4 +8,4 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ril = { version = "0", features = ["all"] }
|
ril = { version = "0", features = ["all"] }
|
||||||
magick_rust = { version = "0.16" }
|
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
use magick_rust::{magick_wand_genesis, MagickError, MagickWand};
|
|
||||||
use ril::prelude::*;
|
use ril::prelude::*;
|
||||||
use std::sync::Once;
|
use std::path::Path;
|
||||||
use std::{fs::File, path::Path};
|
|
||||||
|
|
||||||
// Used to make sure MagickWand is initialized exactly once. Note that we
|
|
||||||
// do not bother shutting down, we simply exit when we're done.
|
|
||||||
static START: Once = Once::new();
|
|
||||||
|
|
||||||
pub struct Generate<T: AsRef<str>, V: AsRef<Path>> {
|
pub struct Generate<T: AsRef<str>, V: AsRef<Path>> {
|
||||||
elements: Vec<Element<T, V>>,
|
elements: Vec<Element<T, V>>,
|
||||||
|
@ -15,19 +9,7 @@ pub struct Generate<T: AsRef<str>, V: AsRef<Path>> {
|
||||||
impl<T: AsRef<str>, V: AsRef<Path>> Generate<T, V> {
|
impl<T: AsRef<str>, V: AsRef<Path>> Generate<T, V> {
|
||||||
pub fn new(base: Vec<u8>, elements: Vec<Element<T, V>>) -> Result<Self, CowError> {
|
pub fn new(base: Vec<u8>, elements: Vec<Element<T, V>>) -> Result<Self, CowError> {
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
base: match Image::<Rgba>::from_bytes_inferred(&base) {
|
base: Image::<Rgba>::from_bytes_inferred(&base)?,
|
||||||
Ok(img) => img,
|
|
||||||
_ => {
|
|
||||||
START.call_once(|| {
|
|
||||||
magick_wand_genesis();
|
|
||||||
});
|
|
||||||
let mut wand = MagickWand::new();
|
|
||||||
wand.read_image_blob(&base)?;
|
|
||||||
wand.set_format("png32")?;
|
|
||||||
let base = wand.write_image_blob("png")?;
|
|
||||||
Image::from_bytes_inferred(base)?
|
|
||||||
}
|
|
||||||
},
|
|
||||||
elements,
|
elements,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -47,7 +29,7 @@ impl<T: AsRef<str>, V: AsRef<Path>> Generate<T, V> {
|
||||||
pos.1 = 0;
|
pos.1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
base_image.draw(&Paste::new(img.convert()).with_position(pos.0 as u32, pos.1 as u32));
|
base_image.draw(&Paste::new(&img.convert()).with_position(pos.0 as u32, pos.1 as u32));
|
||||||
}
|
}
|
||||||
let mut buf = Vec::<u8>::new();
|
let mut buf = Vec::<u8>::new();
|
||||||
base_image.encode(ImageFormat::Png, &mut buf).unwrap();
|
base_image.encode(ImageFormat::Png, &mut buf).unwrap();
|
||||||
|
@ -134,9 +116,3 @@ impl From<ril::Error> for CowError {
|
||||||
CowError::Other(r.to_string())
|
CowError::Other(r.to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<MagickError> for CowError {
|
|
||||||
fn from(m: MagickError) -> Self {
|
|
||||||
CowError::Magick(m.0.to_owned())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,4 +8,4 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cowgen = { path = "../cowgen" }
|
cowgen = { path = "../cowgen" }
|
||||||
iced = { git = "https://github.com/iced-rs/iced", branch = "master" }
|
iced = "0.6"
|
||||||
|
|
|
@ -1,105 +1,3 @@
|
||||||
use std::path::Path;
|
fn main() {
|
||||||
use std::{fs::File, io::Write};
|
println!("hello, world");
|
||||||
|
|
||||||
use cowgen::{CowError, Text};
|
|
||||||
use iced::Sandbox;
|
|
||||||
use iced::Settings;
|
|
||||||
|
|
||||||
fn main() -> Result<(), CowError> {
|
|
||||||
Cowmic::run(Settings::default())
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Element {
|
|
||||||
position: (i32, i32),
|
|
||||||
dimensions: (i32, i32),
|
|
||||||
media: Media,
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Text {}
|
|
||||||
|
|
||||||
struct Image {}
|
|
||||||
|
|
||||||
enum Media {
|
|
||||||
Image(Path),
|
|
||||||
Text(Text),
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Template {
|
|
||||||
image_path: String,
|
|
||||||
elements: Vec<Element>
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Cowmic {
|
|
||||||
templates: Vec<Template>,
|
|
||||||
view: View,
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Message {}
|
|
||||||
|
|
||||||
impl Sandbox for Cowmic {
|
|
||||||
type Message = Message;
|
|
||||||
|
|
||||||
fn new() -> Self {
|
|
||||||
Self {
|
|
||||||
view: View::Library(Library::View::new()),
|
|
||||||
templates: vec![],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn title(&self) -> String {
|
|
||||||
"Cowmic".to_string()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update(&mut self, message: Self::Message) {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn view(&self) -> iced::Element<'_, Self::Message> {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// library -> view template -> create image (fill out template) -> save to filesystem
|
|
||||||
// \-> new template
|
|
||||||
enum View {
|
|
||||||
Library(Library::View),
|
|
||||||
// Template(Template),
|
|
||||||
// Generate(Generate),
|
|
||||||
}
|
|
||||||
|
|
||||||
// features:
|
|
||||||
// import template
|
|
||||||
// delete template
|
|
||||||
// rename template
|
|
||||||
// autosave all templates
|
|
||||||
mod Library {
|
|
||||||
use super::Template;
|
|
||||||
|
|
||||||
pub struct View;
|
|
||||||
|
|
||||||
impl View {
|
|
||||||
pub fn new(templates: Vec<Template>) -> Self {
|
|
||||||
Self
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update(&mut self, message: Message) {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn view(&self) -> iced::Element<'_, Message> {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
enum Message {}
|
|
||||||
}
|
|
||||||
|
|
||||||
mod NewTemplate {
|
|
||||||
struct View {
|
|
||||||
image: Image
|
|
||||||
};
|
|
||||||
enum Message {}
|
|
||||||
}
|
|
||||||
|
|
||||||
mod Generate {
|
|
||||||
enum Message {}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
use std::path::Path;
|
||||||
|
use std::{fs::File, io::Write};
|
||||||
|
|
||||||
|
use cowgen::{CowError, Text};
|
||||||
|
use iced::Sandbox;
|
||||||
|
use iced::Settings;
|
||||||
|
|
||||||
|
fn main() -> Result<(), CowError> {
|
||||||
|
Cowmic::run(Settings::default())
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Element {
|
||||||
|
position: (i32, i32),
|
||||||
|
dimensions: (i32, i32),
|
||||||
|
media: Media,
|
||||||
|
}
|
||||||
|
|
||||||
|
// struct Text {}
|
||||||
|
|
||||||
|
struct Image {}
|
||||||
|
|
||||||
|
enum Media {
|
||||||
|
Image(Path),
|
||||||
|
Text(Text),
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Template {
|
||||||
|
image_path: String,
|
||||||
|
elements: Vec<Element>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Cowmic {
|
||||||
|
templates: Vec<Template>,
|
||||||
|
view: View,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Message {}
|
||||||
|
|
||||||
|
impl Sandbox for Cowmic {
|
||||||
|
type Message = Message;
|
||||||
|
|
||||||
|
fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
view: View::Library(Library::View::new()),
|
||||||
|
templates: vec![],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn title(&self) -> String {
|
||||||
|
"Cowmic".to_string()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(&mut self, message: Self::Message) {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn view(&self) -> iced::Element<'_, Self::Message> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// library -> view template -> create image (fill out template) -> save to filesystem
|
||||||
|
// \-> new template
|
||||||
|
enum View {
|
||||||
|
Library(Library::View),
|
||||||
|
// Templatep(Template),
|
||||||
|
// Generate(Generate),
|
||||||
|
}
|
||||||
|
|
||||||
|
// features:
|
||||||
|
// import template
|
||||||
|
// delete template
|
||||||
|
// rename template
|
||||||
|
// autosave all templates
|
||||||
|
mod Library {
|
||||||
|
use super::Template;
|
||||||
|
|
||||||
|
pub struct View;
|
||||||
|
|
||||||
|
impl View {
|
||||||
|
pub fn new(templates: Vec<Template>) -> Self {
|
||||||
|
Self
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(&mut self, message: Message) {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn view(&self) -> iced::Element<'_, Message> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enum Message {}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod NewTemplate {
|
||||||
|
struct View {
|
||||||
|
image: Image,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Message {}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod Generate {
|
||||||
|
enum Message {}
|
||||||
|
}
|
Loading…
Reference in New Issue