Driver

Trait Driver 

Source
pub trait Driver: IntrusiveCounter {
Show 16 methods // Required methods fn get_caps(&self) -> &DriverCaps; fn create_device_buffer( &mut self, desc: DeviceBufferDesc, ) -> Option<IntrusivePtr<Resource<DeviceBufferDesc>>>; fn create_texture( &mut self, desc: TextureDesc, ) -> Option<IntrusivePtr<Resource<TextureDesc>>>; fn create_render_target( &mut self, desc: RenderTargetDesc, ) -> Option<IntrusivePtr<Resource<RenderTargetDesc>>>; fn create_shader( &mut self, desc: ShaderDesc, ) -> Option<IntrusivePtr<Resource<ShaderDesc>>>; fn create_pipeline( &mut self, desc: PipelineDesc, ) -> Option<IntrusivePtr<Resource<PipelineDesc>>>; fn create_frame_buffer( &mut self, desc: FrameBufferDesc, ) -> Option<IntrusivePtr<Resource<FrameBufferDesc>>>; fn delete_resource(&mut self, resource_type: &ResourceType, res_id: usize); fn update_device_buffer( &mut self, dev_buf: &mut IntrusivePtr<Resource<DeviceBufferDesc>>, offset: usize, pl: &dyn Payload, ); fn update_texture( &mut self, dev_buf: &mut IntrusivePtr<Resource<TextureDesc>>, pl: Box<dyn Payload>, ); fn begin_pass(&mut self, pass: &Pass); fn end_pass(&mut self); fn set_viewport(&mut self, x: u32, y: u32, w: u32, h: u32); fn set_scissor(&mut self, x: u32, y: u32, w: u32, h: u32); fn draw( &mut self, pipe: &Resource<PipelineDesc>, bindings: &Bindings, uniforms: *const c_void, prim_count: u32, instance_count: u32, ); fn read_back( &mut self, surface: &IntrusivePtr<Resource<TextureDesc>>, x: u32, y: u32, w: u32, h: u32, ) -> Option<ReadbackPayload>;
}
Expand description

Driver

Required Methods§

Source

fn get_caps(&self) -> &DriverCaps

Source

fn create_device_buffer( &mut self, desc: DeviceBufferDesc, ) -> Option<IntrusivePtr<Resource<DeviceBufferDesc>>>

Source

fn create_texture( &mut self, desc: TextureDesc, ) -> Option<IntrusivePtr<Resource<TextureDesc>>>

Source

fn create_render_target( &mut self, desc: RenderTargetDesc, ) -> Option<IntrusivePtr<Resource<RenderTargetDesc>>>

Source

fn create_shader( &mut self, desc: ShaderDesc, ) -> Option<IntrusivePtr<Resource<ShaderDesc>>>

Source

fn create_pipeline( &mut self, desc: PipelineDesc, ) -> Option<IntrusivePtr<Resource<PipelineDesc>>>

Source

fn create_frame_buffer( &mut self, desc: FrameBufferDesc, ) -> Option<IntrusivePtr<Resource<FrameBufferDesc>>>

Source

fn delete_resource(&mut self, resource_type: &ResourceType, res_id: usize)

Source

fn update_device_buffer( &mut self, dev_buf: &mut IntrusivePtr<Resource<DeviceBufferDesc>>, offset: usize, pl: &dyn Payload, )

Source

fn update_texture( &mut self, dev_buf: &mut IntrusivePtr<Resource<TextureDesc>>, pl: Box<dyn Payload>, )

Source

fn begin_pass(&mut self, pass: &Pass)

Source

fn end_pass(&mut self)

Source

fn set_viewport(&mut self, x: u32, y: u32, w: u32, h: u32)

Source

fn set_scissor(&mut self, x: u32, y: u32, w: u32, h: u32)

Source

fn draw( &mut self, pipe: &Resource<PipelineDesc>, bindings: &Bindings, uniforms: *const c_void, prim_count: u32, instance_count: u32, )

Source

fn read_back( &mut self, surface: &IntrusivePtr<Resource<TextureDesc>>, x: u32, y: u32, w: u32, h: u32, ) -> Option<ReadbackPayload>

Implementors§