Trait nc_renderer::common::Driver[][src]

pub trait Driver: IntrusiveCounter {
Show 16 methods fn get_caps(&self) -> &DriverCaps;
fn create_device_buffer(
        &mut self,
        desc: DeviceBufferDesc
    ) -> Option<DeviceBufferPtr>;
fn create_texture(&mut self, desc: TextureDesc) -> Option<TexturePtr>;
fn create_render_target(
        &mut self,
        desc: RenderTargetDesc
    ) -> Option<RenderTargetPtr>;
fn create_shader(&mut self, desc: ShaderDesc) -> Option<ShaderPtr>;
fn create_pipeline(&mut self, desc: PipelineDesc) -> Option<PipelinePtr>;
fn create_frame_buffer(
        &mut self,
        desc: FrameBufferDesc
    ) -> Option<FrameBufferPtr>;
fn delete_resource(&mut self, resource_type: &ResourceType, res_id: usize);
fn update_device_buffer(
        &mut self,
        dev_buf: &mut DeviceBufferPtr,
        offset: usize,
        pl: &dyn Payload
    );
fn update_texture(&mut self, dev_buf: &mut TexturePtr, 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: &Pipeline,
        bindings: &Bindings,
        uniforms: *const c_void,
        prim_count: u32,
        instance_count: u32
    );
fn read_back(
        &mut self,
        surface: &TexturePtr,
        x: u32,
        y: u32,
        w: u32,
        h: u32
    ) -> Option<ReadbackPayload>;
}
Expand description

Driver

Required methods

Implementors