Skip to content

Commit d1e4b6e

Browse files
authored
Import Embark clippy lints v5 and fix all fallout (#99)
* vulkan: Hide unuszed `size` field from `MemoryBlock` outside `visualizer` On newer Rust versions the linter now accurately detects fields that are only used in (specific?) `derive` macros like `Debug`, but not anywhere else in the codebase. As such, they should still be considered unused. * Add Embark clippy lints v5 https://github.com/EmbarkStudios/rust-ecosystem/blob/64cc11e72ff4304e6c0cd0c54dbb01c6c3f151bc/lints.toml * Fix all clippy lints to adhere to Embark v5 lints
1 parent a22a965 commit d1e4b6e

13 files changed

Lines changed: 204 additions & 111 deletions

File tree

.cargo/config.toml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
[target.'cfg(all())']
2+
rustflags = [
3+
# BEGIN - Embark standard lints v5 for Rust 1.55+
4+
# do not change or add/remove here, but one can add exceptions after this section
5+
# for more info see: <https://github.com/EmbarkStudios/rust-ecosystem/issues/59>
6+
# "-Dunsafe_code",
7+
"-Wclippy::all",
8+
"-Wclippy::await_holding_lock",
9+
"-Wclippy::char_lit_as_u8",
10+
"-Wclippy::checked_conversions",
11+
"-Wclippy::dbg_macro",
12+
"-Wclippy::debug_assert_with_mut_call",
13+
"-Wclippy::disallowed_method",
14+
"-Wclippy::disallowed_type",
15+
"-Wclippy::doc_markdown",
16+
"-Wclippy::empty_enum",
17+
"-Wclippy::enum_glob_use",
18+
"-Wclippy::exit",
19+
"-Wclippy::expl_impl_clone_on_copy",
20+
"-Wclippy::explicit_deref_methods",
21+
"-Wclippy::explicit_into_iter_loop",
22+
"-Wclippy::fallible_impl_from",
23+
"-Wclippy::filter_map_next",
24+
"-Wclippy::flat_map_option",
25+
"-Wclippy::float_cmp_const",
26+
"-Wclippy::fn_params_excessive_bools",
27+
"-Wclippy::from_iter_instead_of_collect",
28+
"-Wclippy::if_let_mutex",
29+
"-Wclippy::implicit_clone",
30+
"-Wclippy::imprecise_flops",
31+
"-Wclippy::inefficient_to_string",
32+
"-Wclippy::invalid_upcast_comparisons",
33+
"-Wclippy::large_digit_groups",
34+
"-Wclippy::large_stack_arrays",
35+
"-Wclippy::large_types_passed_by_value",
36+
"-Wclippy::let_unit_value",
37+
"-Wclippy::linkedlist",
38+
"-Wclippy::lossy_float_literal",
39+
"-Wclippy::macro_use_imports",
40+
"-Wclippy::manual_ok_or",
41+
"-Wclippy::map_err_ignore",
42+
"-Wclippy::map_flatten",
43+
"-Wclippy::map_unwrap_or",
44+
"-Wclippy::match_on_vec_items",
45+
"-Wclippy::match_same_arms",
46+
"-Wclippy::match_wild_err_arm",
47+
"-Wclippy::match_wildcard_for_single_variants",
48+
"-Wclippy::mem_forget",
49+
"-Wclippy::mismatched_target_os",
50+
"-Wclippy::missing_enforced_import_renames",
51+
"-Wclippy::mut_mut",
52+
"-Wclippy::mutex_integer",
53+
"-Wclippy::needless_borrow",
54+
"-Wclippy::needless_continue",
55+
"-Wclippy::needless_for_each",
56+
"-Wclippy::option_option",
57+
"-Wclippy::path_buf_push_overwrite",
58+
"-Wclippy::ptr_as_ptr",
59+
"-Wclippy::rc_mutex",
60+
"-Wclippy::ref_option_ref",
61+
"-Wclippy::rest_pat_in_fully_bound_structs",
62+
"-Wclippy::same_functions_in_if_condition",
63+
# "-Wclippy::semicolon_if_nothing_returned",
64+
# "-Wclippy::single_match_else",
65+
"-Wclippy::string_add_assign",
66+
"-Wclippy::string_add",
67+
"-Wclippy::string_lit_as_bytes",
68+
"-Wclippy::string_to_string",
69+
# "-Wclippy::todo",
70+
"-Wclippy::trait_duplication_in_bounds",
71+
"-Wclippy::unimplemented",
72+
"-Wclippy::unnested_or_patterns",
73+
"-Wclippy::unused_self",
74+
"-Wclippy::useless_transmute",
75+
"-Wclippy::verbose_file_reads",
76+
"-Wclippy::zero_sized_map_values",
77+
"-Wfuture_incompatible",
78+
"-Wnonstandard_style",
79+
"-Wrust_2018_idioms",
80+
# END - Embark standard lints v5 for Rust 1.55+
81+
]

examples/d3d12-buffer/src/main.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use winapi::shared::{dxgiformat, winerror};
22
use winapi::um::{d3d12, d3dcommon};
3+
use winapi::Interface;
34

45
mod all_dxgi {
56
pub use winapi::shared::{dxgi1_3::*, dxgi1_6::*, dxgitype::*};
@@ -19,14 +20,14 @@ fn create_d3d12_device(
1920
for idx in 0.. {
2021
let mut adapter4: *mut all_dxgi::IDXGIAdapter4 = std::ptr::null_mut();
2122
let hr = unsafe {
22-
dxgi_factory
23-
.as_ref()
24-
.unwrap()
25-
.EnumAdapters1(idx, &mut adapter4 as *mut _ as *mut *mut _)
23+
dxgi_factory.as_ref().unwrap().EnumAdapters1(
24+
idx,
25+
<*mut *mut all_dxgi::IDXGIAdapter4>::cast(&mut adapter4),
26+
)
2627
};
2728

2829
if hr == winerror::DXGI_ERROR_NOT_FOUND {
29-
return None;
30+
break;
3031
}
3132

3233
assert_eq!(hr, winerror::S_OK);
@@ -59,10 +60,10 @@ fn create_d3d12_device(
5960
let mut device: *mut d3d12::ID3D12Device = std::ptr::null_mut();
6061
let hr = unsafe {
6162
d3d12::D3D12CreateDevice(
62-
adapter4 as *mut _,
63+
adapter4.cast(),
6364
feature_level,
64-
&<d3d12::ID3D12Device as winapi::Interface>::uuidof(),
65-
&mut device as *mut _ as *mut *mut _,
65+
&d3d12::ID3D12Device::uuidof(),
66+
<*mut *mut d3d12::ID3D12Device>::cast(&mut device),
6667
)
6768
};
6869
match hr {
@@ -98,7 +99,7 @@ fn main() {
9899
all_dxgi::CreateDXGIFactory2(
99100
0,
100101
&all_dxgi::IID_IDXGIFactory6,
101-
&mut dxgi_factory as *mut _ as *mut *mut _,
102+
<*mut *mut all_dxgi::IDXGIFactory6>::cast(&mut dxgi_factory),
102103
)
103104
};
104105

@@ -114,7 +115,7 @@ fn main() {
114115

115116
// Setting up the allocator
116117
let mut allocator = Allocator::new(&AllocatorCreateDesc {
117-
device: Dx12DevicePtr(device as *mut _),
118+
device: Dx12DevicePtr(device.cast()),
118119
debug_settings: Default::default(),
119120
})
120121
.unwrap();
@@ -154,7 +155,7 @@ fn main() {
154155
d3d12::D3D12_RESOURCE_STATE_COMMON,
155156
std::ptr::null(),
156157
&d3d12::IID_ID3D12Resource,
157-
&mut resource as *mut _ as *mut _,
158+
<*mut *mut d3d12::ID3D12Resource>::cast(&mut resource),
158159
)
159160
};
160161
if hr != winerror::S_OK {
@@ -211,7 +212,7 @@ fn main() {
211212
d3d12::D3D12_RESOURCE_STATE_COMMON,
212213
std::ptr::null(),
213214
&d3d12::IID_ID3D12Resource,
214-
&mut resource as *mut _ as *mut _,
215+
<*mut *mut d3d12::ID3D12Resource>::cast(&mut resource),
215216
)
216217
};
217218
if hr != winerror::S_OK {
@@ -268,7 +269,7 @@ fn main() {
268269
d3d12::D3D12_RESOURCE_STATE_COMMON,
269270
std::ptr::null(),
270271
&d3d12::IID_ID3D12Resource,
271-
&mut resource as *mut _ as *mut _,
272+
<*mut *mut d3d12::ID3D12Resource>::cast(&mut resource),
272273
)
273274
};
274275
if hr != winerror::S_OK {

examples/d3d12-visualization/src/imgui_renderer.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,14 @@ impl ImGuiRenderer {
110110
Flags: D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT,
111111
};
112112

113-
let mut blob = std::ptr::null_mut() as *mut ID3DBlob;
114-
let mut error_blob = std::ptr::null_mut() as *mut ID3DBlob;
113+
let mut blob = std::ptr::null_mut();
114+
let mut error_blob = std::ptr::null_mut();
115115
let hr = unsafe {
116116
D3D12SerializeRootSignature(
117117
&rsig_desc,
118118
D3D_ROOT_SIGNATURE_VERSION_1,
119-
&mut blob as *mut _ as *mut _,
120-
&mut error_blob as *mut _ as *mut _,
119+
&mut blob,
120+
&mut error_blob,
121121
)
122122
};
123123
if FAILED(hr) {
@@ -137,14 +137,14 @@ impl ImGuiRenderer {
137137
}
138138

139139
let blob = unsafe { blob.as_ref() }.unwrap();
140-
let mut rsig = std::ptr::null_mut() as *mut ID3D12RootSignature;
140+
let mut rsig = std::ptr::null_mut();
141141
let hr = unsafe {
142142
device.CreateRootSignature(
143143
0,
144144
blob.GetBufferPointer(),
145145
blob.GetBufferSize(),
146146
&ID3D12RootSignature::uuidof(),
147-
&mut rsig as *mut _ as *mut _,
147+
<*mut *mut ID3D12RootSignature>::cast(&mut rsig),
148148
)
149149
};
150150
if FAILED(hr) {
@@ -275,7 +275,7 @@ impl ImGuiRenderer {
275275
let hr = device.CreateGraphicsPipelineState(
276276
&desc as *const _,
277277
&ID3D12PipelineState::uuidof(),
278-
&mut pipeline as *mut _ as *mut _,
278+
<*mut *mut ID3D12PipelineState>::cast(&mut pipeline),
279279
);
280280
if FAILED(hr) {
281281
panic!("Failed to create imgui pipeline.");
@@ -327,7 +327,7 @@ impl ImGuiRenderer {
327327
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE,
328328
std::ptr::null(),
329329
&ID3D12Resource::uuidof(),
330-
&mut font_image as *mut _ as *mut _,
330+
<*mut *mut ID3D12Resource>::cast(&mut font_image),
331331
);
332332
if FAILED(hr) {
333333
panic!("Failed to create font image. hr: {:#x}", hr);
@@ -436,7 +436,7 @@ impl ImGuiRenderer {
436436
D3D12_RESOURCE_STATE_GENERIC_READ,
437437
std::ptr::null(),
438438
&ID3D12Resource::uuidof(),
439-
&mut upload_buffer as *mut _ as *mut _,
439+
<*mut *mut ID3D12Resource>::cast(&mut upload_buffer),
440440
)
441441
};
442442

@@ -465,7 +465,7 @@ impl ImGuiRenderer {
465465

466466
std::ptr::copy_nonoverlapping(
467467
source_ptr,
468-
mapped_ptr as *mut u8,
468+
mapped_ptr,
469469
(layout.Footprint.Width * 4) as usize,
470470
);
471471
}
@@ -541,7 +541,7 @@ impl ImGuiRenderer {
541541
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER,
542542
std::ptr::null(),
543543
&ID3D12Resource::uuidof(),
544-
&mut buffer as *mut _ as *mut _,
544+
<*mut *mut ID3D12Resource>::cast(&mut buffer),
545545
)
546546
};
547547
if FAILED(hr) {
@@ -553,7 +553,7 @@ impl ImGuiRenderer {
553553
buffer.as_ref().unwrap().Map(
554554
0,
555555
std::ptr::null(),
556-
&mut mapped_ptr as *mut _ as *mut _,
556+
<*mut *mut u8>::cast(&mut mapped_ptr),
557557
)
558558
};
559559

@@ -596,7 +596,7 @@ impl ImGuiRenderer {
596596
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER,
597597
std::ptr::null(),
598598
&ID3D12Resource::uuidof(),
599-
&mut buffer as *mut _ as *mut _,
599+
<*mut *mut ID3D12Resource>::cast(&mut buffer),
600600
)
601601
};
602602
if FAILED(hr) {
@@ -608,7 +608,7 @@ impl ImGuiRenderer {
608608
buffer.as_ref().unwrap().Map(
609609
0,
610610
std::ptr::null(),
611-
&mut mapped_ptr as *mut _ as *mut _,
611+
<*mut *mut u8>::cast(&mut mapped_ptr),
612612
)
613613
};
614614
(buffer, allocation, mapped_ptr)
@@ -650,7 +650,7 @@ impl ImGuiRenderer {
650650
D3D12_RESOURCE_STATE_INDEX_BUFFER,
651651
std::ptr::null(),
652652
&ID3D12Resource::uuidof(),
653-
&mut buffer as *mut _ as *mut _,
653+
<*mut *mut ID3D12Resource>::cast(&mut buffer),
654654
)
655655
};
656656
if FAILED(hr) {
@@ -662,7 +662,7 @@ impl ImGuiRenderer {
662662
buffer.as_ref().unwrap().Map(
663663
0,
664664
std::ptr::null(),
665-
&mut mapped_ptr as *mut _ as *mut _,
665+
<*mut *mut u8>::cast(&mut mapped_ptr),
666666
)
667667
};
668668
(buffer, allocation, mapped_ptr)
@@ -877,7 +877,7 @@ impl ImGuiRenderer {
877877
pub(crate) fn handle_imgui_event(
878878
io: &mut imgui::Io,
879879
window: &winit::window::Window,
880-
event: &winit::event::Event<()>,
880+
event: &winit::event::Event<'_, ()>,
881881
) -> bool {
882882
use winit::event::{
883883
DeviceEvent, ElementState, Event, KeyboardInput, MouseButton, MouseScrollDelta, TouchPhase,
@@ -955,7 +955,7 @@ pub(crate) fn handle_imgui_event(
955955
MouseButton::Right => io.mouse_down[1] = pressed,
956956
MouseButton::Middle => io.mouse_down[2] = pressed,
957957
MouseButton::Other(idx @ 0..=4) => io.mouse_down[idx as usize] = pressed,
958-
_ => (),
958+
MouseButton::Other(_) => (),
959959
}
960960

961961
io.want_capture_mouse

0 commit comments

Comments
 (0)