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 uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with: with:
name: ${{ matrix.binary_name }}.zip name: ${{ matrix.binary_name }}.zip
path: artifacts path: artifacts
compression-level: 0

View file

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

View file

@ -1,4 +1,6 @@
use image::GenericImageView; use std::sync::OnceLock;
use image::{DynamicImage, GenericImageView, RgbaImage};
use thiserror::Error; use thiserror::Error;
#[derive(Debug, Error)] #[derive(Debug, Error)]
pub enum TextureError { pub enum TextureError {
@ -16,6 +18,7 @@ pub struct Texture {
pub sampler: wgpu::Sampler, pub sampler: wgpu::Sampler,
} }
impl Texture { impl Texture {
pub fn from_bytes( pub fn from_bytes(
device: &wgpu::Device, device: &wgpu::Device,
queue: &wgpu::Queue, queue: &wgpu::Queue,
@ -85,24 +88,33 @@ impl Texture {
}) })
} }
} }
static CHECKERBOARD_IMAGE: OnceLock<DynamicImage> = OnceLock::new();
pub fn create_checkerboard() -> image::DynamicImage { pub fn create_checkerboard(size: u32, tile_size: u32) -> DynamicImage {
let size = 512; let mut img = RgbaImage::new(size, size);
let tile_size = 24; let pixels = img.as_mut();
let mut img = image::RgbaImage::new(size, size); let bytes_per_pixel = 4; // RGBA
for y in 0..size { for y in 0..size {
let tile_y = y / tile_size;
for x in 0..size { for x in 0..size {
let tile_x = x / tile_size; let tile_x = x / tile_size;
let tile_y = y / tile_size;
let color = if (tile_x + tile_y) % 2 == 0 { let color = if (tile_x + tile_y) % 2 == 0 {
[0, 0, 0, 255] [0, 0, 0, 255]
} else { } else {
[255, 5, 255, 255] [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) 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>) { fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) {
let metadata = event.metadata(); let metadata = event.metadata();
let level = *metadata.level(); let level = *metadata.level();
let name = metadata.name();
let timestamp = SystemTime::now(); let timestamp = SystemTime::now();
#[cfg(feature = "json")] #[cfg(feature = "json")]
let additional_fields = serde_json::Map::new(); let additional_fields = serde_json::Map::new();

View file

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