pub trait RenderingEngine:
Debug
+ Send
+ Sync {
// Required methods
fn initialize(&mut self, config: RenderingConfig) -> Result<()>;
fn render_widget(
&self,
widget_render: &WidgetRender,
context: &RenderContext,
) -> Result<()>;
fn clear(&self, color: [f32; 4]) -> Result<()>;
fn present(&self) -> Result<()>;
fn capabilities(&self) -> RenderingCapabilities;
fn create_shader(&self, program: &ShaderProgram) -> Result<String>;
fn update_uniforms(
&self,
shader_id: &str,
uniforms: &HashMap<String, UniformValue>,
) -> Result<()>;
fn set_viewport(
&self,
x: u32,
y: u32,
width: u32,
height: u32,
) -> Result<()>;
}Expand description
Rendering engine trait
Required Methods§
Sourcefn initialize(&mut self, config: RenderingConfig) -> Result<()>
fn initialize(&mut self, config: RenderingConfig) -> Result<()>
Initialize rendering engine
Sourcefn render_widget(
&self,
widget_render: &WidgetRender,
context: &RenderContext,
) -> Result<()>
fn render_widget( &self, widget_render: &WidgetRender, context: &RenderContext, ) -> Result<()>
Render widget
Sourcefn capabilities(&self) -> RenderingCapabilities
fn capabilities(&self) -> RenderingCapabilities
Get rendering capabilities
Sourcefn create_shader(&self, program: &ShaderProgram) -> Result<String>
fn create_shader(&self, program: &ShaderProgram) -> Result<String>
Create shader program
Sourcefn update_uniforms(
&self,
shader_id: &str,
uniforms: &HashMap<String, UniformValue>,
) -> Result<()>
fn update_uniforms( &self, shader_id: &str, uniforms: &HashMap<String, UniformValue>, ) -> Result<()>
Update uniform values