Skip to content

Commit 65219b6

Browse files
committed
update
1 parent 9f05bba commit 65219b6

File tree

12 files changed

+93
-104
lines changed

12 files changed

+93
-104
lines changed

.github/workflows/ci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Linux
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
env:
12+
CARGO_TERM_COLOR: always
13+
14+
jobs:
15+
ci:
16+
name: CI on ${{ matrix.os }}
17+
runs-on: ${{matrix.os}}
18+
strategy:
19+
matrix:
20+
os: [ubuntu-latest, windows-latest, macos-latest]
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
- uses: Swatinem/rust-cache@v2
25+
- name: cargo build
26+
run: cargo build
27+
28+
- name: cargo fmt
29+
run: cargo fmt --all -- --check
30+
31+
- name: cargo clippy
32+
run: cargo clippy -- -D warnings
33+
34+
- name: Run tests
35+
run: cargo test
36+
37+
typos:
38+
name: Typos
39+
runs-on: ubuntu-22.04
40+
steps:
41+
- uses: actions/checkout@v4
42+
- uses: crate-ci/[email protected]
43+
44+
cargo-machete:
45+
runs-on: ubuntu-latest
46+
steps:
47+
- uses: Swatinem/rust-cache@v2
48+
- uses: actions/checkout@v4
49+
- name: Machete
50+
uses: bnjbvr/cargo-machete@main

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- windows-latest
1515
runs-on: ${{ matrix.os }}
1616
steps:
17-
- uses: actions/checkout@v2
17+
- uses: actions/checkout@v4
1818
- uses: taiki-e/[email protected]
1919
with:
2020
bin: raytracing

.github/workflows/rust-linux.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/workflows/rust-macos.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/workflows/rust-windows.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

Cargo.toml

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ short_description = "A Raytracer written in Rust."
4141
[dependencies]
4242

4343
# error handling
44-
anyhow = "1.0.89"
44+
anyhow = "1.0.95"
4545

4646
# image loading and saving
47-
image = { version = "0.25.2", default-features = false, features = [
47+
image = { version = "0.25.5", default-features = false, features = [
4848
"png",
4949
"jpeg",
5050
"tiff",
@@ -56,44 +56,44 @@ log = "0.4.22"
5656
simplelog = "0.12.2"
5757

5858
# linear algebra
59-
nalgebra = { version = "0.33.0", features = ["glam022"] }
59+
nalgebra = { version = "0.33.2", features = ["glam022"] }
6060
rand = "0.8.5"
6161

6262
# obj file loading
6363
obj = "0.10.2"
6464

6565
# automatic parallelization
6666
rayon = "1.10.0"
67-
bytemuck = { version = "1.18", features = ["derive"] }
67+
bytemuck = { version = "1.21", features = ["derive"] }
6868

6969
# total order for floats
70-
ordered-float = "4.2.2"
70+
ordered-float = "4.6.0"
7171

7272
# generic serialization / deserialization
73-
serde = { version = "1.0.210", features = ["derive"] }
73+
serde = { version = "1.0.216", features = ["derive"] }
7474
serde_yml = "0.0.12"
7575

7676
# GUI
77-
eframe = { version = "0.28.1", features = [
77+
eframe = { version = "0.30.0", features = [
7878
"wgpu",
7979
"accesskit",
8080
"default_fonts",
8181
"wayland",
8282
"x11",
8383
], default-features = false }
84-
egui = { version = "0.28.1", features = ["log", "color-hex"] }
85-
egui-wgpu = { version = "0.28.1" }
86-
egui_file = "0.18.0"
87-
egui_extras = { version = "0.28.1", features = ["svg", "image"] }
84+
egui = { version = "0.30.0", features = ["log", "color-hex"] }
85+
egui-wgpu = { version = "0.30.0" }
86+
egui_file = "0.20.0"
87+
egui_extras = { version = "0.30.0", features = ["svg", "image"] }
8888

8989
# BVH
9090
bvh = "0.10.0"
9191
rust-i18n = "3.1.2"
92-
sys-locale = "0.3.1"
92+
sys-locale = "0.3.2"
9393

9494
[build-dependencies]
95-
anyhow = "1.0.89"
96-
winresource = "0.1.17"
95+
anyhow = "1.0.95"
96+
winresource = "0.1.19"
9797

9898
[profile.dev]
9999
opt-level = 3
@@ -106,15 +106,16 @@ debug = true
106106
unsafe_code = "forbid"
107107

108108
[lints.clippy]
109-
nursery = { level = "deny", priority = 0 }
110-
pedantic = { level = "deny", priority = 1 }
111-
enum_glob_use = { level = "deny", priority = 2 }
109+
all = { level = "warn", priority = -1 }
110+
nursery = { level = "warn", priority = 0 }
111+
pedantic = { level = "warn", priority = 1 }
112+
enum_glob_use = { level = "warn", priority = 2 }
112113
module_name_repetitions = { level = "allow", priority = 3 }
113114
cast_precision_loss = { level = "allow", priority = 4 }
114115
cast_possible_truncation = { level = "allow", priority = 5 }
115116
cast_sign_loss = { level = "allow", priority = 6 }
116117
out_of_bounds_indexing = { level = "allow", priority = 7 }
117118
perf = { level = "warn", priority = 8 }
118119
style = { level = "warn", priority = 9 }
119-
unwrap_used = { level = "deny", priority = 10 }
120-
expect_used = { level = "deny", priority = 11 }
120+
unwrap_used = { level = "warn", priority = 10 }
121+
expect_used = { level = "warn", priority = 11 }

src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ fn main() -> anyhow::Result<()> {
5252
viewport,
5353
renderer: Renderer::Wgpu,
5454
depth_buffer: 32,
55-
follow_system_theme: true,
5655
centered: true,
5756
..Default::default()
5857
},

src/ui/preview/gpu.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ impl CallbackTrait for WgpuPainter {
205205
fn paint<'a>(
206206
&'a self,
207207
_info: egui::PaintCallbackInfo,
208-
render_pass: &mut wgpu::RenderPass<'a>,
208+
render_pass: &mut wgpu::RenderPass<'static>,
209209
callback_resources: &'a egui_wgpu::CallbackResources,
210210
) {
211211
let resources = callback_resources
@@ -281,7 +281,7 @@ pub fn init_wgpu(render_state: &egui_wgpu::RenderState) {
281281
layout: Some(&pipeline_layout),
282282
vertex: VertexState {
283283
module: &shader,
284-
entry_point: "vs_main",
284+
entry_point: Some("vs_main"),
285285
buffers: &[VertexBufferLayout {
286286
// 3x f32 for position, 3x f32 for normal, 3x f32 for color, 1x u32 for transform index
287287
array_stride: std::mem::size_of::<f32>() as u64 * (3 + 3 + 3 + 1),
@@ -317,7 +317,7 @@ pub fn init_wgpu(render_state: &egui_wgpu::RenderState) {
317317
},
318318
fragment: Some(FragmentState {
319319
module: &shader,
320-
entry_point: "fs_main",
320+
entry_point: Some("fs_main"),
321321
targets: &[Some(ColorTargetState {
322322
format: render_state.target_format,
323323
blend: None,
@@ -343,6 +343,7 @@ pub fn init_wgpu(render_state: &egui_wgpu::RenderState) {
343343
}),
344344
multisample: MultisampleState::default(),
345345
multiview: None,
346+
cache: None,
346347
});
347348

348349
let uniform_buffer = device.create_buffer(&BufferDescriptor {

src/ui/preview/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl Preview {
5151
}
5252

5353
pub fn show(&mut self, ui: &mut Ui, scene: &mut Option<Scene>) {
54-
Self::show_hover_overlay(ui.ctx(), scene, ui.available_rect_before_wrap());
54+
Self::show_hover_overlay(ui.ctx(), scene.as_ref(), ui.available_rect_before_wrap());
5555
ui.ctx().input(|i| {
5656
if !i.raw.dropped_files.is_empty() {
5757
//self.dropped_files = i.raw.dropped_files.clone();
@@ -181,7 +181,7 @@ impl Preview {
181181
}
182182
}
183183

184-
pub fn show_hover_overlay(ctx: &Context, scene: &Option<Scene>, rect: Rect) {
184+
pub fn show_hover_overlay(ctx: &Context, scene: Option<&Scene>, rect: Rect) {
185185
//TODO: show only when hovering over preview
186186
if !ctx.input(|i| i.raw.hovered_files.is_empty()) {
187187
let painter =

src/ui/properties.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::{
66
use anyhow::Context;
77
use egui::{
88
color_picker, hex_color, include_image, Align, Button, CollapsingHeader, DragValue, FontFamily,
9-
ImageButton, Layout, RichText, Slider, Ui,
9+
ImageButton, Layout, RichText, Slider, SliderClamping, Ui,
1010
};
1111
use egui_file::FileDialog;
1212
use log::warn;
@@ -80,7 +80,7 @@ impl Properties {
8080
Slider::new(&mut scene.camera.fov, 0.0..=consts::PI)
8181
.step_by(0.01)
8282
.custom_formatter(|x, _| format!("{:.2}°", x.to_degrees()))
83-
.clamp_to_range(true),
83+
.clamping(SliderClamping::Edits),
8484
);
8585
});
8686
});
@@ -109,7 +109,10 @@ impl Properties {
109109
color_picker::color_edit_button_rgb(ui, scene.settings.ambient_color.as_mut());
110110

111111
ui.label(format!("{}:", t!("ambient_intensity")));
112-
ui.add(Slider::new(&mut scene.settings.ambient_intensity, 0.0..=1.0).clamp_to_range(true));
112+
ui.add(
113+
Slider::new(&mut scene.settings.ambient_intensity, 0.0..=1.0)
114+
.clamping(SliderClamping::Edits),
115+
);
113116
}
114117

115118
fn render_options(ui: &mut Ui, render: &Render, scene: &mut Scene) {
@@ -118,7 +121,7 @@ impl Properties {
118121
ui.add_enabled_ui(render.thread.is_none(), |ui| {
119122
ui.vertical(|ui| {
120123
let text = Self::format_render_size(scene.camera.resolution);
121-
egui::ComboBox::from_id_source(0)
124+
egui::ComboBox::from_id_salt(0)
122125
.selected_text(text)
123126
.show_ui(ui, |ui| {
124127
ui.selectable_value(&mut scene.camera.resolution, (1280, 720), "HD");
@@ -140,7 +143,8 @@ impl Properties {
140143
if scene.settings.anti_aliasing {
141144
ui.label("Samples per pixel:");
142145
ui.add(
143-
Slider::new(&mut scene.settings.samples, 1..=128).clamp_to_range(true),
146+
Slider::new(&mut scene.settings.samples, 1..=128)
147+
.clamping(SliderClamping::Edits),
144148
);
145149
}
146150
});
@@ -268,7 +272,8 @@ impl Properties {
268272
ui.label(format!("{}:", t!("intensity")));
269273

270274
ui.add(
271-
Slider::new(&mut light.intensity, 0.0..=100.0).clamp_to_range(true),
275+
Slider::new(&mut light.intensity, 0.0..=100.0)
276+
.clamping(SliderClamping::Edits),
272277
);
273278

274279
ui.label(format!("{}:", t!("color")));

src/ui/yamlmenu.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ impl YamlMenu {
5555
settings: Settings::default(),
5656
});
5757

58-
Self::save_scene(scene);
58+
Self::save_scene(scene.as_ref());
5959
}
6060
None => {
6161
warn!("Create yaml dialog selected but returned no path");
@@ -145,7 +145,7 @@ impl YamlMenu {
145145
)
146146
.on_hover_text(t!("save_scene"))
147147
.clicked()
148-
.then(|| Self::save_scene(scene));
148+
.then(|| Self::save_scene(scene.as_ref()));
149149
});
150150

151151
// new button
@@ -182,7 +182,7 @@ impl YamlMenu {
182182
});
183183
}
184184

185-
fn save_scene(scene: &Option<Scene>) {
185+
fn save_scene(scene: Option<&Scene>) {
186186
match scene {
187187
Some(scene) => {
188188
serde_yml::to_string(scene)

typos.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[files]
2+
extend-exclude = ["locales/*"]

0 commit comments

Comments
 (0)