Skip to content
Snippets Groups Projects
image.rs 1.81 KiB
Newer Older
StarArawn's avatar
StarArawn committed
use bevy::{
    prelude::{App as BevyApp, AssetServer, Commands, Handle, Res, ResMut},
StarToaster's avatar
StarToaster committed
    render::texture::ImageSettings,
    window::WindowDescriptor,
StarArawn's avatar
StarArawn committed
    DefaultPlugins,
StarArawn's avatar
StarArawn committed
};
use kayak_core::styles::PositionType;
StarArawn's avatar
StarArawn committed
use kayak_ui::bevy::{BevyContext, BevyKayakUIPlugin, ImageManager, UICameraBundle};
StarArawn's avatar
StarArawn committed
use kayak_ui::core::{
    render,
MrGVSV's avatar
MrGVSV committed
    styles::{Corner, Style, StyleProp, Units},
StarArawn's avatar
StarArawn committed
};
use kayak_ui::widgets::{App, Image};
StarArawn's avatar
StarArawn committed

fn startup(
    mut commands: Commands,
    asset_server: Res<AssetServer>,
    mut image_manager: ResMut<ImageManager>,
) {
    commands.spawn_bundle(UICameraBundle::new());

StarArawn's avatar
StarArawn committed
    let handle: Handle<bevy::render::texture::Image> = asset_server.load("generic-rpg-vendor.png");
StarArawn's avatar
StarArawn committed
    let ui_image_handle = image_manager.get(&handle);

    let context = BevyContext::new(|context| {
StarArawn's avatar
StarArawn committed
        let image_styles = Style {
            position_type: StyleProp::Value(PositionType::SelfDirected),
            left: StyleProp::Value(Units::Pixels(10.0)),
            top: StyleProp::Value(Units::Pixels(10.0)),
MrGVSV's avatar
MrGVSV committed
            border_radius: StyleProp::Value(Corner::all(500.0)),
StarArawn's avatar
StarArawn committed
            width: StyleProp::Value(Units::Pixels(200.0)),
            height: StyleProp::Value(Units::Pixels(182.0)),
            ..Style::default()
        };

StarArawn's avatar
StarArawn committed
                <Image styles={Some(image_styles)} handle={ui_image_handle} />
StarArawn's avatar
StarArawn committed
            </App>
        }
    });

    commands.insert_resource(context);
}

fn main() {
    BevyApp::new()
        .insert_resource(WindowDescriptor {
            width: 1270.0,
            height: 720.0,
            title: String::from("UI Example"),
            ..Default::default()
        })
StarToaster's avatar
StarToaster committed
        .insert_resource(ImageSettings::default_nearest())
StarArawn's avatar
StarArawn committed
        .add_plugins(DefaultPlugins)
StarArawn's avatar
StarArawn committed
        .add_plugin(BevyKayakUIPlugin)
        .add_startup_system(startup)
        .run();
}