summaryrefslogtreecommitdiff
path: root/graphics/src/render.rs
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/src/render.rs')
-rw-r--r--graphics/src/render.rs29
1 files changed, 25 insertions, 4 deletions
diff --git a/graphics/src/render.rs b/graphics/src/render.rs
index 945528b..bbfa2b9 100644
--- a/graphics/src/render.rs
+++ b/graphics/src/render.rs
@@ -46,6 +46,27 @@ macro_rules! draw_text {
}};
}
+#[cfg(not(feature = "static"))]
+macro_rules! load_texture {
+ ($handle:expr, $thread:expr, $filepath:expr) => (
+ $handle.load_texture($thread, $filepath)?
+ )
+}
+
+#[cfg(feature = "static")]
+macro_rules! load_texture {
+ ($handle:expr, $thread:expr, $filepath:expr) => (
+ {
+ let bytes = include_bytes!(concat!("../../", $filepath));
+ let len = $filepath.len();
+ let ext = &$filepath[len-4..];
+ let image = ::raylib::texture::Image::load_image_from_mem(ext, bytes)?;
+ $handle.load_texture_from_image($thread, &image)?
+ }
+
+ )
+}
+
/// The baseline size of all ingame sprites and tile textures
const TEXTURE_SIZE: u16 = 16;
@@ -121,10 +142,10 @@ struct Textures {
}
impl Textures {
fn new(handle: &mut RaylibHandle, thread: &RaylibThread) -> crate::Result<Self> {
- let atlas = handle.load_texture(thread, "assets/atlas.bmp")?;
- let player = handle.load_texture(thread, "assets/player.bmp")?;
- let error = handle.load_texture(thread, "assets/error.bmp")?;
- let font = handle.load_texture(thread, "assets/font.bmp")?;
+ let atlas = load_texture!(handle, thread, "assets/atlas.bmp");
+ let player = load_texture!(handle, thread, "assets/player.bmp");
+ let error = load_texture!(handle, thread, "assets/error.bmp");
+ let font = load_texture!(handle, thread, "assets/font.bmp");
Ok(Self {
atlas,