no zip compression
Some checks failed
Build Zenyx ⚡ / 🔧 Setup Environment (push) Successful in 42s
Build Zenyx ⚡ / 🧪 Run Cargo Tests (push) Successful in 57s
Build Zenyx ⚡ / 🏗️ Build aarch64-unknown-linux-gnu (push) Failing after 3m5s
Build Zenyx ⚡ / 🏗️ Build x86_64-unknown-linux-gnu (push) Successful in 2m58s

This commit is contained in:
Chance 2025-04-21 16:08:31 -04:00
parent b9b5aee363
commit 9601c51172
Signed by: caznix
GPG key ID: 489D213143D753FD
5 changed files with 28 additions and 13 deletions

View file

@ -161,4 +161,5 @@ jobs:
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
name: ${{ matrix.binary_name }}.zip
path: artifacts
path: artifacts
compression-level: 0

View file

@ -309,7 +309,8 @@ impl WgpuState {
&queue,
&texture_bind_group_layout,
);
let checkerboard_img = crate::texture::create_checkerboard();
use tracing::Instrument;
let checkerboard_img = crate::texture::get_checkerboard();
let checkerboard_texture =
texture::Texture::from_image(&device, &queue, &checkerboard_img, Some("checkerboard"))
.unwrap();

View file

@ -1,4 +1,6 @@
use image::GenericImageView;
use std::sync::OnceLock;
use image::{DynamicImage, GenericImageView, RgbaImage};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum TextureError {
@ -16,6 +18,7 @@ pub struct Texture {
pub sampler: wgpu::Sampler,
}
impl Texture {
pub fn from_bytes(
device: &wgpu::Device,
queue: &wgpu::Queue,
@ -85,24 +88,33 @@ impl Texture {
})
}
}
pub fn create_checkerboard() -> image::DynamicImage {
let size = 512;
let tile_size = 24;
let mut img = image::RgbaImage::new(size, size);
static CHECKERBOARD_IMAGE: OnceLock<DynamicImage> = OnceLock::new();
pub fn create_checkerboard(size: u32, tile_size: u32) -> DynamicImage {
let mut img = RgbaImage::new(size, size);
let pixels = img.as_mut();
let bytes_per_pixel = 4; // RGBA
for y in 0..size {
let tile_y = y / tile_size;
for x in 0..size {
let tile_x = x / tile_size;
let tile_y = y / tile_size;
let color = if (tile_x + tile_y) % 2 == 0 {
[0, 0, 0, 255]
[0, 0, 0, 255]
} else {
[255, 5, 255, 255]
};
img.put_pixel(x, y, image::Rgba(color));
let pixel_index = (y * size + x) as usize * bytes_per_pixel;
pixels[pixel_index..pixel_index + bytes_per_pixel].copy_from_slice(&color);
}
}
image::DynamicImage::ImageRgba8(img)
}
#[tracing::instrument]
pub fn get_checkerboard() -> &'static DynamicImage {
CHECKERBOARD_IMAGE.get_or_init(|| {
let size = 512;
let tile_size = 24;
create_checkerboard(size, tile_size)
})
}

View file

@ -101,6 +101,7 @@ where
fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) {
let metadata = event.metadata();
let level = *metadata.level();
let name = metadata.name();
let timestamp = SystemTime::now();
#[cfg(feature = "json")]
let additional_fields = serde_json::Map::new();

View file

@ -50,7 +50,7 @@ fn test_logger_sequential_consistency() {
log.level, expected_level,
"Log {} has incorrect level: {:?}",
i, log.level
);
);
let expected_msg = match expected_level {
Level::ERROR => format!("Error message {}", expected_count),
@ -61,7 +61,7 @@ fn test_logger_sequential_consistency() {
};
assert_eq!(
log.message, expected_msg,
log.message, expected_msg,
"Log {} has incorrect message. Expected: '{}', Got: '{}'",
i, expected_msg, log.message
);