pub struct GpuPhysicsSystem {Show 28 fields
pub max_boxes: u32,
pub grid_size: u32,
pub boxes_buffer: Buffer,
pub params_buffer: Buffer,
pub grid_heads_buffer: Buffer,
pub linked_nodes_buffer: Buffer,
pub box_contacts_buffer: Buffer,
pub colliders_buffer: Buffer,
pub awake_flags_buffer: Buffer,
pub joints_buffer: Buffer,
pub joint_count: u32,
pub max_joints: u32,
pub pipelines: PhysicsPipelines,
pub box_vertex_buffer: Buffer,
pub box_index_buffer: Buffer,
pub index_count: u32,
pub readback_buffer: Buffer,
pub readback_state: Arc<AtomicU8>,
pub indirect_buffer: Buffer,
pub culled_boxes_buffer: Buffer,
pub debug_enabled: bool,
pub debug_line_buffer: Buffer,
pub debug_line_count_buffer: Buffer,
pub debug_params_buffer: Buffer,
pub debug_compute_bind_group: BindGroup,
pub debug_compute_pipeline: ComputePipeline,
pub debug_render_pipeline: RenderPipeline,
pub debug_max_lines: u32,
}Fields§
§max_boxes: u32§grid_size: u32§boxes_buffer: Buffer§params_buffer: Buffer§grid_heads_buffer: Buffer§linked_nodes_buffer: Buffer§box_contacts_buffer: Buffer§colliders_buffer: Buffer§awake_flags_buffer: Buffer§joints_buffer: Buffer§joint_count: u32§max_joints: u32§pipelines: PhysicsPipelines§box_vertex_buffer: Buffer§box_index_buffer: Buffer§index_count: u32§readback_buffer: Buffer§readback_state: Arc<AtomicU8>§indirect_buffer: Buffer§culled_boxes_buffer: Buffer§debug_enabled: bool§debug_line_buffer: Buffer§debug_line_count_buffer: Buffer§debug_params_buffer: Buffer§debug_compute_bind_group: BindGroup§debug_compute_pipeline: ComputePipeline§debug_render_pipeline: RenderPipeline§debug_max_lines: u32Implementations§
Source§impl GpuPhysicsSystem
impl GpuPhysicsSystem
pub fn new( device: &Device, max_boxes: u32, global_bind_group_layout: &BindGroupLayout, output_format: TextureFormat, depth_format: TextureFormat, ) -> Self
pub fn update_box(&self, queue: &Queue, index: u32, box_struct: &GpuBox)
pub fn update_collider(&self, queue: &Queue, index: u32, collider: &GpuCollider)
Sourcepub fn add_joint(&mut self, queue: &Queue, joint: GpuJoint) -> Option<u32>
pub fn add_joint(&mut self, queue: &Queue, joint: GpuJoint) -> Option<u32>
Joint ekle — indeksini döndürür.
Sourcepub fn remove_joint(&self, queue: &Queue, index: u32)
pub fn remove_joint(&self, queue: &Queue, index: u32)
Joint’i deaktive et.
Sourcepub fn update_params(&self, queue: &Queue, dt: f32, gravity: [f32; 3])
pub fn update_params(&self, queue: &Queue, dt: f32, gravity: [f32; 3])
Simülasyon parametrelerini güncelle (dt, num_joints, vb.)
Sourcepub fn enable_debug(&mut self, device: &Device, _show_flags: u32)
pub fn enable_debug(&mut self, device: &Device, _show_flags: u32)
Debug görselleştirmeyi etkinleştir. Bind group’u gerçek buffer referanslarıyla oluşturur.
Sourcepub fn toggle_debug(&mut self)
pub fn toggle_debug(&mut self)
Debug’u aç/kapat.
pub fn compute_pass(&self, encoder: &mut CommandEncoder)
pub fn cull_pass( &self, encoder: &mut CommandEncoder, global_bind_group: &BindGroup, )
pub fn render_pass<'a>( &'a self, rpass: &mut RenderPass<'a>, global_bind_group: &'a BindGroup, )
pub fn debug_compute_pass(&self, encoder: &mut CommandEncoder)
pub fn debug_render_pass<'a>( &'a self, rpass: &mut RenderPass<'a>, global_bind_group: &'a BindGroup, )
pub fn request_readback(&self, encoder: &mut CommandEncoder)
pub fn poll_readback_data(&self, device: &Device) -> Option<Vec<GpuBox>>
Auto Trait Implementations§
impl !Freeze for GpuPhysicsSystem
impl !RefUnwindSafe for GpuPhysicsSystem
impl Send for GpuPhysicsSystem
impl Sync for GpuPhysicsSystem
impl Unpin for GpuPhysicsSystem
impl UnsafeUnpin for GpuPhysicsSystem
impl !UnwindSafe for GpuPhysicsSystem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more