diff --git a/readme.md b/readme.md index f9466bd..0229fc3 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # gd-icon-renderer -rust geometryd ash icon redner!! shout out to [gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer) oat +A rust Geometry Dash icon renderer. Shhout out to [gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer), this project is just a rewrite but not in libvips and crystal ## usage @@ -8,7 +8,7 @@ Provide your `GJ_GameSheet02-uhd`, `GJ_GameSheetGlow-uhd`, `Robot_AnimDesc2`, an ## todo -- use custom plist parser. current one takes like 5 seconds to parse an animation file +- swap to a custom plist parser - change zany anim to argument -- trim empty alpha space (robtop didnt make the bounds correctly :sob:) -- i think theres some slight shifting in the transform to do with rotation. investigate plz. really big on spider 16 for some reason???? \ No newline at end of file +- trim empty alpha space +- i think theres some weird shifting and offsets going on. investigate plz. really big on spider 16 for some reason???? related issue here: [issue #2, oatmealine/gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer/issues/2) \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 660e207..81bf857 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,14 +14,14 @@ mod tests { use std::time::Instant; #[test] - fn it_works() { + fn render_test() { let game_sheet_02 = load_spritesheet("assets/GJ_GameSheet02-uhd.plist"); let game_sheet_glow = load_spritesheet("assets/GJ_GameSheetGlow-uhd.plist"); let robot_sheet = load_animations("assets/Robot_AnimDesc2.plist"); let spider_sheet = load_animations("assets/Spider_AnimDesc2.plist"); let start = Instant::now(); - let rendered_icon = render_icon("ship", 44, [0.0, 0.0, 0.0], [255.0/255.0, 125.0/255.0, 125.0/255.0], true, game_sheet_02, game_sheet_glow, robot_sheet, spider_sheet); + let rendered_icon = render_icon("spider", 16, [0.0, 0.0, 0.0], [255.0/255.0, 125.0/255.0, 125.0/255.0], true, game_sheet_02, game_sheet_glow, robot_sheet, spider_sheet); let end = start.elapsed(); println!("time taken to render: {:?}", end); diff --git a/src/renderer.rs b/src/renderer.rs index ca7f5be..80498e1 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -67,7 +67,7 @@ fn transform(image: &DynamicImage, color: Option<[f32; 3]>, scale: Option<(f32, let mut canvas = ImageBuffer::new(cmp::max(trig_width, width), cmp::max(trig_height, height)); canvas.copy_from(&transformed_image, transform_x, transform_y).expect("couldnt copy from img"); canvas = rotate_about_center(&canvas, radians, Interpolation::Bilinear, Rgba([0, 0, 0, 0])); - + transformed_image = DynamicImage::ImageRgba8(canvas); } @@ -90,14 +90,13 @@ pub fn render_layered(images: Vec, positions: Vec