From 443b87ccde744b04d65329f7a7d43841367279a2 Mon Sep 17 00:00:00 2001 From: crumblingstatue Date: Thu, 24 Oct 2024 04:13:24 +0200 Subject: [PATCH] Make all `RenderStates` fields public, remove unnecessary support methods --- examples/shader.rs | 8 +++---- examples/spritemark.rs | 4 ++-- src/graphics/render_states.rs | 42 +++++------------------------------ src/graphics/shader.rs | 2 +- 4 files changed, 12 insertions(+), 44 deletions(-) diff --git a/examples/shader.rs b/examples/shader.rs index 01bad84e..e41e01a9 100644 --- a/examples/shader.rs +++ b/examples/shader.rs @@ -40,7 +40,7 @@ impl Drawable for Pixelate<'_> { states: &RenderStates<'texture, 'shader, 'shader_texture>, ) { let mut states = *states; - states.set_shader(Some(&self.shader)); + states.shader = Some(&self.shader); target.draw_with_renderstates(&self.sprite, &states); } } @@ -101,7 +101,7 @@ impl Drawable for WaveBlur<'_> { states: &RenderStates<'texture, 'shader, 'shader_texture>, ) { let mut states = *states; - states.set_shader(Some(&self.shader)); + states.shader = Some(&self.shader); target.draw_with_renderstates(&self.text, &states); } } @@ -155,7 +155,7 @@ impl Drawable for StormBlink { states: &RenderStates<'texture, 'shader, 'shader_texture>, ) { let mut states = *states; - states.set_shader(Some(&self.shader)); + states.shader = Some(&self.shader); target.draw_primitives(&self.points, PrimitiveType::POINTS, &states); } } @@ -221,7 +221,7 @@ impl Drawable for Edge<'_> { states: &RenderStates<'texture, 'shader, 'shader_texture>, ) { let mut states = *states; - states.set_shader(Some(&self.shader)); + states.shader = Some(&self.shader); target.draw_with_renderstates(&Sprite::with_texture(self.surface.texture()), &states); } } diff --git a/examples/spritemark.rs b/examples/spritemark.rs index 2e02cfb9..b458dc13 100644 --- a/examples/spritemark.rs +++ b/examples/spritemark.rs @@ -157,9 +157,9 @@ fn main() -> SfResult<()> { obj.update(window.size().y as f32, window.size().x as f32); } window.clear(Color::BLACK); - rs.set_texture(Some(&texture)); + rs.texture = Some(&texture); window.draw_primitives(&buf, PrimitiveType::QUADS, &rs); - rs.set_texture(None); + rs.texture = None; text.set_string(&format!("{} sprites\n{fps} fps", objects.len())); window.draw_text(&text, &rs); window.display(); diff --git a/src/graphics/render_states.rs b/src/graphics/render_states.rs index 5cfec010..b8dffeba 100644 --- a/src/graphics/render_states.rs +++ b/src/graphics/render_states.rs @@ -36,7 +36,7 @@ use crate::graphics::{BlendMode, Shader, Texture, Transform}; /// # let shader: Shader = unimplemented!(); /// # let sprite: Sprite = unimplemented!(); /// let mut states = RenderStates::default(); -/// states.set_shader(Some(&shader)); +/// states.shader = Some(&shader); /// window.draw_with_renderstates(&sprite, &states); /// ``` /// @@ -55,42 +55,10 @@ pub struct RenderStates<'texture, 'shader, 'shader_texture: 'shader> { pub blend_mode: BlendMode, /// The transform pub transform: Transform, - texture: Option<&'texture Texture>, - shader: Option<&'shader Shader<'shader_texture>>, -} - -impl<'texture, 'shader, 'shader_texture> RenderStates<'texture, 'shader, 'shader_texture> { - /// Create a new `RenderStates`. - /// - /// # Arguments - /// * `blend_mode` - The `BlendMode` - /// * transform - The transform - /// * texture - Some(texture) if there is a texture, None otherwise - /// * shader - Some(shader) if there is a shader, None otherwise - /// - /// Return a new default `RenderStates` - #[must_use] - pub fn new( - blend_mode: BlendMode, - transform: Transform, - texture: Option<&'texture Texture>, - shader: Option<&'shader Shader<'shader_texture>>, - ) -> Self { - Self { - blend_mode, - transform, - texture, - shader, - } - } - /// Sets the texture - pub fn set_texture(&mut self, texture: Option<&'texture Texture>) { - self.texture = texture; - } - /// Sets the shader - pub fn set_shader(&mut self, shader: Option<&'shader Shader<'shader_texture>>) { - self.shader = shader; - } + /// The texture that will be bound + pub texture: Option<&'texture Texture>, + /// The shader that will be used + pub shader: Option<&'shader Shader<'shader_texture>>, } impl RenderStates<'static, 'static, 'static> { diff --git a/src/graphics/shader.rs b/src/graphics/shader.rs index 1035fcf6..d6ee47f4 100644 --- a/src/graphics/shader.rs +++ b/src/graphics/shader.rs @@ -87,7 +87,7 @@ use { /// # let mut window: RenderWindow = unimplemented!(); /// # let sprite: Sprite = unimplemented!(); /// let mut states = RenderStates::default();; -/// states.set_shader(Some(&shader)); +/// states.shader = Some(&shader); /// window.draw_with_renderstates(&sprite, &states); /// ``` ///