Improve API and separate bin and lib
Reworked API, does not compile
This commit is contained in:
parent
7ebd83a979
commit
282534c969
46
src/lib.rs
Normal file
46
src/lib.rs
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
|
||||||
|
fn setup_logger() -> Result<(), fern::InitError> {
|
||||||
|
use fern::colors::{Color, ColoredLevelConfig};
|
||||||
|
|
||||||
|
let colors = ColoredLevelConfig::new()
|
||||||
|
.info(Color::Green)
|
||||||
|
.debug(Color::Magenta)
|
||||||
|
.warn(Color::Yellow)
|
||||||
|
.error(Color::Red);
|
||||||
|
|
||||||
|
fern::Dispatch::new()
|
||||||
|
.format(move |out, message, record| {
|
||||||
|
out.finish(format_args!(
|
||||||
|
"{}[{}][{}] {}",
|
||||||
|
chrono::Local::now().format("[%H:%M:%S]"),
|
||||||
|
colors.color(record.level()),
|
||||||
|
record.target(),
|
||||||
|
message
|
||||||
|
))
|
||||||
|
})
|
||||||
|
.level(log::LevelFilter::Trace)
|
||||||
|
.chain(std::io::stdout())
|
||||||
|
.chain(fern::log_file("output.log")?)
|
||||||
|
.apply()?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn vk_create() {
|
||||||
|
let canvas = crate::create_vk_canvas("vk_create", 1280, 720)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn vk_run() {
|
||||||
|
|
||||||
|
let canvas = crate::create_vk_canvas("vk_run", 1280, 720)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
canvas.update();
|
||||||
|
canvas.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
117
src/main.rs
117
src/main.rs
@ -1,44 +1,40 @@
|
|||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
|
|
||||||
fn setup_logger() -> Result<(), fern::InitError> {
|
fn setup_logger() -> Result<(), fern::InitError> {
|
||||||
use fern::colors::{Color, ColoredLevelConfig};
|
use fern::colors::{Color, ColoredLevelConfig};
|
||||||
|
|
||||||
let colors = ColoredLevelConfig::new()
|
let colors = ColoredLevelConfig::new()
|
||||||
.info(Color::Green)
|
.info(Color::Green)
|
||||||
.debug(Color::Magenta)
|
.debug(Color::Magenta)
|
||||||
.warn(Color::Yellow)
|
.warn(Color::Yellow)
|
||||||
.error(Color::Red);
|
.error(Color::Red);
|
||||||
|
|
||||||
fern::Dispatch::new()
|
fern::Dispatch::new()
|
||||||
.format(move |out, message, record| {
|
.format(move |out, message, record| {
|
||||||
out.finish(format_args!(
|
out.finish(format_args!(
|
||||||
"{}[{}][{}] {}",
|
"{}[{}][{}] {}",
|
||||||
chrono::Local::now().format("[%H:%M:%S]"),
|
chrono::Local::now().format("[%H:%M:%S]"),
|
||||||
colors.color(record.level()),
|
colors.color(record.level()),
|
||||||
record.target(),
|
record.target(),
|
||||||
message
|
message
|
||||||
))
|
))
|
||||||
})
|
})
|
||||||
.level(log::LevelFilter::Trace)
|
.level(log::LevelFilter::Trace)
|
||||||
.chain(std::io::stdout())
|
.chain(std::io::stdout())
|
||||||
.chain(fern::log_file("output.log")?)
|
.chain(fern::log_file("output.log")?)
|
||||||
.apply()?;
|
.apply()?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
fn main() -> Result<(), &'static str> {
|
||||||
fn vk_create() {
|
|
||||||
let canvas = crate::create_vk_canvas("vk_create", 1280, 720, |_| {}, |_| {})
|
|
||||||
.unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
setup_logger()
|
||||||
fn vk_run() {
|
.map_err(|_| "Failed to setup logger")?;
|
||||||
|
|
||||||
let canvas = crate::create_vk_canvas("vk_run", 1280, 720, |_| {}, |_| {})
|
let canvas = crate::create_vk_canvas("vk_example", 1280, 720)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
while canvas.should_exit() == false {
|
||||||
|
// inputs
|
||||||
if canvas.key_pressed(Key::A) {
|
if canvas.key_pressed(Key::A) {
|
||||||
unimplemented!();
|
unimplemented!();
|
||||||
}
|
}
|
||||||
@ -54,19 +50,50 @@ mod tests {
|
|||||||
|
|
||||||
let mouse = canvas.get_mouse();
|
let mouse = canvas.get_mouse();
|
||||||
|
|
||||||
let sprite = canvas.create_sprite(Size {w: 20, h: 20}, 1.0);
|
// outputs
|
||||||
sprite.draw(&[[0u8, 0u8, 0u8, 225u8]; 20 * 20]);
|
canvas.set_clear_color(Color::black);
|
||||||
sprite.clear_color(Color::black);
|
|
||||||
sprite.draw_rectangle(Position {x: 0, y: 0}, Size {w: 10, h: 10}, Color::black);
|
// white rectangle inset by one in the sprite
|
||||||
sprite.draw_text(Position {x: 0, y: 0}, 5, Color::black, "text");
|
let bas_sprite = canvas.create_basic_sprite(Size {w: 40, h: 40}, 1.0);
|
||||||
sprite.move_to(Position {x: 0, y: 0});
|
bas_sprite.set_shape(
|
||||||
sprite.rotate(50);
|
Shape::Rectangle (Position {x: 1, y: 1},
|
||||||
sprite.set_alpha(255);
|
Size {w: 38, h: 38},
|
||||||
sprite.hide();
|
Color::White,
|
||||||
sprite.show();
|
));
|
||||||
|
canvas.draw(bas_sprite);
|
||||||
|
|
||||||
|
// 20 x 20 sprite of a picture
|
||||||
|
let texture = canvas.create_texture_from_file(
|
||||||
|
Position {x: 0, y: 0},
|
||||||
|
Some("texture.png"),
|
||||||
|
Some(Color::White)
|
||||||
|
);
|
||||||
|
pix_sprite = canvas.create_texture_sprite(Size {w: 20, h: 20}, 1.0);
|
||||||
|
pix_sprite.set_texture(texture, Some(Position {w: 0, h: 0}));
|
||||||
|
canvas.draw(pix_sprite);
|
||||||
|
|
||||||
|
// scaled sprite of a manually drawed texture
|
||||||
|
let texture = canvas.create_texture(Size {w: 20, h: 20}, Some(Color::White));
|
||||||
|
texture.set_pixel(Position {x: 0, y: 0}, Pixel::rgb(0, 255, 0));
|
||||||
|
let _ = texture.pixels();
|
||||||
|
pix_sprite = canvas.create_texture_sprite(Size {w: 20, h: 20}, 2.0);
|
||||||
|
pix_sprite.set_texture(texture, None);
|
||||||
|
canvas.draw(pix_sprite);
|
||||||
|
|
||||||
|
// floating text
|
||||||
|
let txt_sprite = canvas.create_text_sprite(Size {w: 10, h: 10}, 5.0);
|
||||||
|
txt_sprite.set_text("text", None);
|
||||||
|
|
||||||
|
// generic operations
|
||||||
|
txt_sprite.set_position(Position {x: 0, y: 0});
|
||||||
|
txt_sprite.set_rotation(50);
|
||||||
|
txt_sprite.set_alpha(255);
|
||||||
|
canvas.draw(txt_sprite);
|
||||||
|
|
||||||
canvas.update();
|
canvas.update();
|
||||||
canvas.destroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
canvas.destroy();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user