refactoring

This commit is contained in:
CDaut 2025-10-01 11:29:24 +02:00
parent 387893cd55
commit 09bdaed3f5
Signed by: clara
GPG key ID: 223391B52FAD4463
3 changed files with 48 additions and 22 deletions

35
raytracer/Cargo.lock generated
View file

@ -2,6 +2,21 @@
# It is not intended for manual editing.
version = 4
[[package]]
name = "approx"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
dependencies = [
"num-traits",
]
[[package]]
name = "autocfg"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "bit_field"
version = "0.10.3"
@ -20,6 +35,16 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
[[package]]
name = "cgmath"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317"
dependencies = [
"approx",
"num-traits",
]
[[package]]
name = "libc"
version = "0.2.176"
@ -32,6 +57,15 @@ version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
[[package]]
name = "num-traits"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
[[package]]
name = "proc-macro2"
version = "1.0.101"
@ -74,6 +108,7 @@ dependencies = [
name = "raytracer"
version = "0.1.0"
dependencies = [
"cgmath",
"libc",
"log",
"uefi",

View file

@ -4,6 +4,7 @@ version = "0.1.0"
edition = "2024"
[dependencies]
cgmath = "0.18.0"
libc = "0.2.176"
log = "0.4.28"
uefi = { version = "0.35.0", features = ["logger", "panic_handler"] }

View file

@ -6,6 +6,7 @@ mod buffer;
extern crate alloc;
use uefi::allocator::Allocator;
use uefi::boot::ScopedProtocol;
use uefi::prelude::*;
use uefi::proto::console::gop::GraphicsOutput;
use uefi::{boot, Result};
@ -14,36 +15,25 @@ use crate::buffer::Buffer;
#[global_allocator]
static ALLOCATOR: Allocator = uefi::allocator::Allocator;
fn clear_buffer() -> Result<()>{
// Open graphics output protocol.
fn init_gop() -> Result<ScopedProtocol<GraphicsOutput>> {
// Open graphics output protocol.
let gop_handle = boot::get_handle_for_protocol::<GraphicsOutput>()?;
let mut gop = boot::open_protocol_exclusive::<GraphicsOutput>(gop_handle)?;
boot::open_protocol_exclusive::<GraphicsOutput>(gop_handle)
}
fn init_buffer(gop: &GraphicsOutput) -> Buffer{
// Create a buffer to draw into.
let (width, height) = gop.current_mode_info().resolution();
let mut buffer = Buffer::new(width, height);
// Initialize the buffer with a simple gradient background.
for y in 0..height {
let r = ((y as f32) / ((height - 1) as f32)) * 255.0;
for x in 0..width {
let g = ((x as f32) / ((width - 1) as f32)) * 255.0;
let pixel = buffer.pixel(x, y).unwrap();
pixel.red = r as u8;
pixel.green = g as u8;
pixel.blue = r as u8;
}
}
// Draw background.
buffer.blit(&mut gop)?;
Ok(())
Buffer::new(width, height)
}
#[entry]
fn main() -> Status {
uefi::helpers::init().unwrap();
clear_buffer().unwrap();
let mut gop = init_gop().unwrap();
let buffer = init_buffer(&gop);
buffer.blit(&mut gop).unwrap();
Status::SUCCESS
}