Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Address most Clippy warnings #311

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/bindless/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ fn main() {
let textures = (0..BINDLESS_TEXTURE_COUNT)
.map(|i| {
heap.new_texture(&texture_descriptor)
.expect(&format!("Failed to allocate texture {}", i))
.unwrap_or_else(|| panic!("Failed to allocate texture {}", i))
})
.collect::<Vec<_>>();

Expand Down
36 changes: 16 additions & 20 deletions examples/circle/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ use core_graphics_types::geometry::CGSize;

use objc::{rc::autoreleasepool, runtime::YES};

use std::mem;

// Declare the data structures needed to carry vertex layout to
// metal shading language(MSL) program. Use #[repr(C)], to make
// the data structure compatible with C++ type data structure
// for vertex defined in MSL program as MSL program is broadly
// based on C++
#[repr(C)]
#[derive(Debug)]
#[allow(non_camel_case_types)]
pub struct position(cty::c_float, cty::c_float);
#[repr(C)]
#[derive(Debug)]
#[allow(non_camel_case_types)]
pub struct color(cty::c_float, cty::c_float, cty::c_float);
#[repr(C)]
#[derive(Debug)]
Expand Down Expand Up @@ -52,7 +52,7 @@ fn main() {
device.sample_timestamps(&mut cpu_start, &mut gpu_start);
let counter_sample_buffer = create_counter_sample_buffer(&device);
let destination_buffer = device.new_buffer(
(std::mem::size_of::<u64>() * 4 as usize) as u64,
(std::mem::size_of::<u64>() * 4_usize) as u64,
MTLResourceOptions::StorageModeShared,
);
let counter_sampling_point = MTLCounterSamplingPoint::AtStageBoundary;
Expand Down Expand Up @@ -102,7 +102,7 @@ fn main() {
unsafe {
let view = window.ns_view() as cocoa_id;
view.setWantsLayer(YES);
view.setLayer(mem::transmute(layer.as_ref()));
view.setLayer(std::ptr::from_ref(layer.as_ref()).cast_mut().cast());
}

let draw_size = window.inner_size();
Expand All @@ -114,7 +114,7 @@ fn main() {

device.new_buffer_with_data(
vertex_data.as_ptr() as *const _,
(vertex_data.len() * mem::size_of::<AAPLVertex>()) as u64,
std::mem::size_of_val(vertex_data) as u64,
MTLResourceOptions::CPUCacheModeDefaultCache | MTLResourceOptions::StorageModeManaged,
)
};
Expand Down Expand Up @@ -152,18 +152,14 @@ fn main() {

// Obtain a renderPassDescriptor generated from the view's drawable textures.
let render_pass_descriptor = RenderPassDescriptor::new();
handle_render_pass_color_attachment(
&render_pass_descriptor,
drawable.texture(),
);
handle_render_pass_color_attachment(render_pass_descriptor, drawable.texture());
handle_render_pass_sample_buffer_attachment(
&render_pass_descriptor,
render_pass_descriptor,
&counter_sample_buffer,
);

// Create a render command encoder.
let encoder =
command_buffer.new_render_command_encoder(&render_pass_descriptor);
let encoder = command_buffer.new_render_command_encoder(render_pass_descriptor);
encoder.set_render_pipeline_state(&pipeline_state);
// Pass in the parameter data.
encoder.set_vertex_buffer(0, Some(&vbuf), 0);
Expand All @@ -172,13 +168,13 @@ fn main() {
encoder.end_encoding();

resolve_samples_into_buffer(
&command_buffer,
command_buffer,
&counter_sample_buffer,
&destination_buffer,
);

// Schedule a present once the framebuffer is complete using the current drawable.
command_buffer.present_drawable(&drawable);
command_buffer.present_drawable(drawable);

// Finalize rendering here & push the command buffer to the GPU.
command_buffer.commit();
Expand Down Expand Up @@ -247,7 +243,7 @@ fn handle_render_pass_sample_buffer_attachment(
) {
let sample_buffer_attachment_descriptor =
descriptor.sample_buffer_attachments().object_at(0).unwrap();
sample_buffer_attachment_descriptor.set_sample_buffer(&counter_sample_buffer);
sample_buffer_attachment_descriptor.set_sample_buffer(counter_sample_buffer);
sample_buffer_attachment_descriptor.set_start_of_vertex_sample_index(0 as NSUInteger);
sample_buffer_attachment_descriptor.set_end_of_vertex_sample_index(1 as NSUInteger);
sample_buffer_attachment_descriptor.set_start_of_fragment_sample_index(2 as NSUInteger);
Expand Down Expand Up @@ -300,9 +296,9 @@ fn resolve_samples_into_buffer(
) {
let blit_encoder = command_buffer.new_blit_command_encoder();
blit_encoder.resolve_counters(
&counter_sample_buffer,
counter_sample_buffer,
crate::NSRange::new(0_u64, 4),
&destination_buffer,
destination_buffer,
0_u64,
);
blit_encoder.end_encoding();
Expand All @@ -316,7 +312,7 @@ fn handle_timestamps(
gpu_end: u64,
) {
let samples = unsafe {
std::slice::from_raw_parts(resolved_sample_buffer.contents() as *const u64, 4 as usize)
std::slice::from_raw_parts(resolved_sample_buffer.contents() as *const u64, 4_usize)
};
let vertex_pass_start = samples[0];
let vertex_pass_end = samples[1];
Expand Down Expand Up @@ -372,6 +368,6 @@ fn fetch_timestamp_counter_set(device: &Device) -> metal::CounterSet {
fn microseconds_between_begin(begin: u64, end: u64, gpu_time_span: u64, cpu_time_span: u64) -> f64 {
let time_span = (end as f64) - (begin as f64);
let nanoseconds = time_span / (gpu_time_span as f64) * (cpu_time_span as f64);
let microseconds = nanoseconds / 1000.0;
return microseconds;
const NS_TO_MS: f64 = 1. / 1000.;
nanoseconds * NS_TO_MS
}
10 changes: 5 additions & 5 deletions examples/headless-render/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ const VIEW_WIDTH: u64 = 512;
const VIEW_HEIGHT: u64 = 512;
const TOTAL_BYTES: usize = (VIEW_WIDTH * VIEW_HEIGHT * 4) as usize;

const VERTEX_SHADER: &'static str = "triangle_vertex";
const FRAGMENT_SHADER: &'static str = "triangle_fragment";
const VERTEX_SHADER: &str = "triangle_vertex";
const FRAGMENT_SHADER: &str = "triangle_fragment";

// [2 bytes position, 3 bytes color] * 3
#[rustfmt::skip]
Expand Down Expand Up @@ -54,10 +54,10 @@ fn main() {
let vertex_buffer = create_vertex_buffer(&device);

let render_pass_descriptor = RenderPassDescriptor::new();
initialize_color_attachment(&render_pass_descriptor, &texture);
initialize_color_attachment(render_pass_descriptor, &texture);

let command_buffer = command_queue.new_command_buffer();
let rc_encoder = command_buffer.new_render_command_encoder(&render_pass_descriptor);
let rc_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor);
rc_encoder.set_render_pipeline_state(&pipeline_state);
rc_encoder.set_vertex_buffer(0, Some(&vertex_buffer), 0);
rc_encoder.draw_primitives(MTLPrimitiveType::Triangle, 0, 3);
Expand Down Expand Up @@ -100,7 +100,7 @@ fn save_image(texture: &TextureRef) {
let out_file =
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("examples/headless-render/out.png");
let file = File::create(&out_file).unwrap();
let ref mut w = BufWriter::new(file);
let w = &mut BufWriter::new(file);

let mut encoder = png::Encoder::new(w, VIEW_WIDTH as u32, VIEW_HEIGHT as u32);
encoder.set_color(ColorType::Rgba);
Expand Down
2 changes: 1 addition & 1 deletion examples/library/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

use metal::*;

const PROGRAM: &'static str = "";
const PROGRAM: &str = "";

fn main() {
let device = Device::system_default().expect("no device found");
Expand Down
10 changes: 4 additions & 6 deletions examples/mesh-shader/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ use core_graphics_types::geometry::CGSize;

use metal::*;
use objc::{rc::autoreleasepool, runtime::YES};
use std::mem;
use winit::platform::macos::WindowExtMacOS;

use winit::{
Expand Down Expand Up @@ -42,7 +41,7 @@ fn main() {
unsafe {
let view = window.ns_view() as cocoa_id;
view.setWantsLayer(YES);
view.setLayer(mem::transmute(layer.as_ref()));
view.setLayer(std::ptr::from_ref(layer.as_ref()).cast_mut().cast());
}

let draw_size = window.inner_size();
Expand Down Expand Up @@ -93,11 +92,10 @@ fn main() {

let render_pass_descriptor = RenderPassDescriptor::new();

prepare_render_pass_descriptor(&render_pass_descriptor, drawable.texture());
prepare_render_pass_descriptor(render_pass_descriptor, drawable.texture());

let command_buffer = command_queue.new_command_buffer();
let encoder =
command_buffer.new_render_command_encoder(&render_pass_descriptor);
let encoder = command_buffer.new_render_command_encoder(render_pass_descriptor);

encoder.set_render_pipeline_state(&pipeline_state);
encoder.draw_mesh_threads(
Expand All @@ -108,7 +106,7 @@ fn main() {

encoder.end_encoding();

command_buffer.present_drawable(&drawable);
command_buffer.present_drawable(drawable);
command_buffer.commit();
}
_ => {}
Expand Down
8 changes: 3 additions & 5 deletions examples/mps/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ fn main() {

// Intersect rays with triangles inside acceleration structure
ray_intersector.encode_intersection_to_command_buffer(
&command_buffer,
command_buffer,
mps::MPSIntersectionType::Nearest,
&ray_buffer,
0,
Expand All @@ -140,9 +140,7 @@ fn create_pipeline(func: &str, library: &LibraryRef, device: &DeviceRef) -> Comp
let function = library.get_function(func, None).unwrap();
compute_descriptor.set_compute_function(Some(&function));

let pipeline = device
device
.new_compute_pipeline_state(&compute_descriptor)
.unwrap();

pipeline
.unwrap()
}
6 changes: 6 additions & 0 deletions examples/raytracing/camera.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ pub struct Camera {
pub forward: Vec4,
}

impl Default for Camera {
fn default() -> Self {
Self::new()
}
}

impl Camera {
pub fn new() -> Self {
Self {
Expand Down
31 changes: 16 additions & 15 deletions examples/raytracing/geometry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ pub trait Geometry {
pub fn compute_triangle_normal(v0: &Vec3, v1: &Vec3, v2: &Vec3) -> Vec3 {
let e1 = Vec3::normalize(*v1 - *v0);
let e2 = Vec3::normalize(*v2 - *v0);
return Vec3::cross(e1, e2);
Vec3::cross(e1, e2)
}

#[derive(Default)]
Expand All @@ -55,7 +55,7 @@ pub struct Triangle {
}

pub fn get_managed_buffer_storage_mode() -> MTLResourceOptions {
return MTLResourceOptions::StorageModeManaged;
MTLResourceOptions::StorageModeManaged
}

pub struct TriangleGeometry {
Expand Down Expand Up @@ -91,6 +91,7 @@ impl TriangleGeometry {
}
}

#[allow(clippy::too_many_arguments)]
pub fn add_cube_face_with_cube_vertices(
&mut self,
cube_vertices: &[Vec3],
Expand All @@ -112,10 +113,10 @@ impl TriangleGeometry {
let first_index = self.indices.len();
let base_index = self.vertices.len() as u16;

self.indices.push(base_index + 0);
self.indices.push(base_index);
self.indices.push(base_index + 1);
self.indices.push(base_index + 2);
self.indices.push(base_index + 0);
self.indices.push(base_index);
self.indices.push(base_index + 2);
self.indices.push(base_index + 3);

Expand Down Expand Up @@ -164,10 +165,10 @@ impl TriangleGeometry {
Vec3::new(0.5, 0.5, 0.5),
];

for i in 0..8 {
let transformed_vertex = Vec4::from((cube_vertices[i], 1.0));
for vertex in &mut cube_vertices {
let transformed_vertex = Vec4::from((*vertex, 1.0));
let transformed_vertex = transform * transformed_vertex;
cube_vertices[i] = transformed_vertex.xyz();
*vertex = transformed_vertex.xyz();
}

const CUBE_INDICES: [[u16; 4]; 6] = [
Expand All @@ -179,15 +180,15 @@ impl TriangleGeometry {
[4, 5, 7, 6],
];

for face in 0..6 {
for (face, cube) in CUBE_INDICES.iter().enumerate() {
if face_mask & (1 << face) != 0 {
self.add_cube_face_with_cube_vertices(
&cube_vertices,
colour,
CUBE_INDICES[face][0],
CUBE_INDICES[face][1],
CUBE_INDICES[face][2],
CUBE_INDICES[face][3],
cube[0],
cube[1],
cube[2],
cube[3],
inward_normals,
);
}
Expand Down Expand Up @@ -416,14 +417,14 @@ impl Geometry for SphereGeometry {
let descriptor = AccelerationStructureBoundingBoxGeometryDescriptor::descriptor();
descriptor.set_bounding_box_buffer(Some(self.bounding_box_buffer.as_ref().unwrap()));
descriptor.set_bounding_box_count(self.spheres.len() as NSUInteger);
descriptor.set_primitive_data_buffer(Some(&self.sphere_buffer.as_ref().unwrap()));
descriptor.set_primitive_data_buffer(Some(self.sphere_buffer.as_ref().unwrap()));
descriptor.set_primitive_data_stride(size_of::<Sphere>() as NSUInteger);
descriptor.set_primitive_data_element_size(size_of::<Sphere>() as NSUInteger);
From::from(descriptor)
}

fn get_resources(&self) -> Vec<Resource> {
return vec![From::from(self.sphere_buffer.as_ref().unwrap().clone())];
vec![From::from(self.sphere_buffer.as_ref().unwrap().clone())]
}

fn get_intersection_function_name(&self) -> Option<&str> {
Expand All @@ -432,7 +433,7 @@ impl Geometry for SphereGeometry {
}

pub struct GeometryInstance {
pub geometry: Arc<dyn Geometry>,
pub geometry: Arc<dyn Geometry + Send + Sync>,
pub transform: Mat4,
pub mask: u32,
pub index_in_scene: NSUInteger,
Expand Down
3 changes: 1 addition & 2 deletions examples/raytracing/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use cocoa::{appkit::NSView, base::id as cocoa_id};
use core_graphics_types::geometry::CGSize;
use metal::*;
use objc::{rc::autoreleasepool, runtime::YES};
use std::mem;
use winit::{
event::{Event, WindowEvent},
event_loop::ControlFlow,
Expand Down Expand Up @@ -50,7 +49,7 @@ fn main() {
unsafe {
let view = window.ns_view() as cocoa_id;
view.setWantsLayer(YES);
view.setLayer(mem::transmute(layer.as_ref()));
view.setLayer(std::ptr::from_ref(layer.as_ref()).cast_mut().cast());
}

let draw_size = window.inner_size();
Expand Down
Loading
Loading