Skip to content

Commit

Permalink
Make all RenderStates fields public, remove unnecessary support met…
Browse files Browse the repository at this point in the history
…hods
  • Loading branch information
crumblingstatue committed Oct 24, 2024
1 parent 0847e15 commit 443b87c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 44 deletions.
8 changes: 4 additions & 4 deletions examples/shader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Expand Down Expand Up @@ -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);
}
}
Expand Down Expand Up @@ -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);
}
}
Expand Down Expand Up @@ -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);
}
}
Expand Down
4 changes: 2 additions & 2 deletions examples/spritemark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
42 changes: 5 additions & 37 deletions src/graphics/render_states.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
/// ```
///
Expand All @@ -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> {
Expand Down
2 changes: 1 addition & 1 deletion src/graphics/shader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
/// ```
///
Expand Down

0 comments on commit 443b87c

Please sign in to comment.